OnLongPressBackKeyTracker.java :  » Remote » android-xbmcremote » org » xbmc » android » util » Android Open Source

Android Open Source » Remote » android xbmcremote 
android xbmcremote » org » xbmc » android » util » OnLongPressBackKeyTracker.java
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);

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.