@@ -0,0 +1,2324 @@
+package com.autochime.autochimeapplication;%0A%0Aclass StateEventListener %7B%0A    public void onDefault() %7B%7D;%0A    public void onAutoAlarm() %7B%7D;%0A    public void onManualAlarm() %7B%7D;%0A    public void onNotify() %7B%7D;%0A    public void onPostNotify() %7B%7D;%0A%7D%0A%0A/**%0A * Created by Wilbur on 08/27/16.%0A */%0Apublic class StateMachine %7B%0A    enum State extends StateEventListener %7B%0A        Default %7B%0A            @Override public void onDefault() %7B%7D%0A            @Override public void onAutoAlarm() %7B%7D%0A            @Override public void onManualAlarm() %7B%7D%0A            @Override public void onNotify() %7B%7D%0A            @Override public void onPostNotify() %7B%7D%0A        %7D,%0A        AutoAlarm %7B%0A            @Override public void onDefault() %7B%7D%0A            @Override public void onAutoAlarm() %7B%7D%0A            @Override public void onManualAlarm() %7B%7D%0A            @Override public void onNotify() %7B%7D%0A            @Override public void onPostNotify() %7B%7D%0A        %7D,%0A        ManualAlarm %7B%0A            @Override public void onDefault() %7B%7D%0A            @Override public void onAutoAlarm() %7B%7D%0A            @Override public void onManualAlarm() %7B%7D%0A            @Override public void onNotify() %7B%7D%0A            @Override public void onPostNotify() %7B%7D%0A        %7D,%0A        Notify %7B%0A            @Override public void onDefault() %7B%7D%0A            @Override public void onAutoAlarm() %7B%7D%0A            @Override public void onManualAlarm() %7B%7D%0A            @Override public void onNotify() %7B%7D%0A            @Override public void onPostNotify() %7B%7D%0A        %7D,%0A        PostNotify %7B%0A            @Override public void onDefault() %7B%7D%0A            @Override public void onAutoAlarm() %7B%7D%0A            @Override public void onManualAlarm() %7B%7D%0A            @Override public void onNotify() %7B%7D%0A            @Override public void onPostNotify() %7B%7D%0A        %7D%0A    %7D%0A    private State mState;%0A%0A    public StateMachine() %7B%0A        mState = State.Default;%0A    %7D%0A%0A    private void Transition(final State newState) %7B%0A        mState = newState;%0A        switch(mState) %7B%0A            case Default:%0A                break;%0A            case AutoAlarm:%0A                break;%0A            case ManualAlarm:%0A                break;%0A            case Notify:%0A                break;%0A            case PostNotify:%0A                break;%0A            default:%0A                throw new IllegalArgumentException();%0A        %7D%0A    %7D%0A%7D%0A

Add state machine