package com.aviary.android.feather.effects; public class SimpleStatusMachine { public static int INVALID_STATUS = -1; private int currentStatus = INVALID_STATUS; private int previousStatus = INVALID_STATUS; private OnStatusChangeListener mStatusListener; public void setOnStatusChangeListener( OnStatusChangeListener listener ) { mStatusListener = listener; } public void setStatus( int newStatus ) { if ( newStatus != currentStatus ) { previousStatus = currentStatus; currentStatus = newStatus; if ( null != mStatusListener ) { mStatusListener.OnStatusChanged( previousStatus, currentStatus ); } } else { if ( null != mStatusListener ) { mStatusListener.OnStatusUpdated( newStatus ); } } } public int getCurrentStatus() { return currentStatus; } public static interface OnStatusChangeListener { public void OnStatusChanged( int oldStatus, int newStatus ); public void OnStatusUpdated( int status ); } }