package org.xbmc.android.util;
import org.xbmc.android.util.KeyTracker.OnKeyTracker;
import org.xbmc.android.util.KeyTracker.Stage;
import org.xbmc.android.util.KeyTracker.State;
import android.view.KeyEvent;
public abstract class OnLongPressBackKeyTracker implements OnKeyTracker {
public static Stage lastStage = Stage.SHORT_REPEAT;
public State onKeyTracker(int keyCode, KeyEvent event, Stage stage,
int duration) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (stage == KeyTracker.Stage.LONG_REPEAT) {
// here we have the long pressed back button
onLongPressBack(keyCode, event, stage, duration);
lastStage = stage;
return KeyTracker.State.KEEP_TRACKING;
}else if (stage == KeyTracker.Stage.UP) {
if(lastStage == Stage.LONG_REPEAT) {
lastStage = Stage.SHORT_REPEAT;
return KeyTracker.State.DONE_TRACKING;
}
onShortPressBack(keyCode, event, stage, duration);
return KeyTracker.State.NOT_TRACKING;
}
return KeyTracker.State.KEEP_TRACKING;
}
return KeyTracker.State.NOT_TRACKING;
}
public abstract void onLongPressBack(int keyCode, KeyEvent event, Stage stage, int duration);
public abstract void onShortPressBack(int keyCode, KeyEvent event, Stage stage, int duration);
}