summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/javispedro/vndroid/keymaps/AndroidKeyHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/javispedro/vndroid/keymaps/AndroidKeyHandler.java')
-rw-r--r--app/src/main/java/com/javispedro/vndroid/keymaps/AndroidKeyHandler.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/app/src/main/java/com/javispedro/vndroid/keymaps/AndroidKeyHandler.java b/app/src/main/java/com/javispedro/vndroid/keymaps/AndroidKeyHandler.java
new file mode 100644
index 0000000..b0ac08e
--- /dev/null
+++ b/app/src/main/java/com/javispedro/vndroid/keymaps/AndroidKeyHandler.java
@@ -0,0 +1,69 @@
+package com.javispedro.vndroid.keymaps;
+
+import android.accessibilityservice.AccessibilityService;
+
+public class AndroidKeyHandler extends KeyHandler {
+ private boolean shiftPressed = false;
+
+ @Override
+ public boolean keyDown(int key) {
+ switch (key) {
+ case KeySyms.Key_Shift_L:
+ case KeySyms.Key_Shift_R:
+ shiftPressed = true;
+ return false;
+ case KeySyms.Key_Escape:
+ action.postGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK);
+ return true;
+ case KeySyms.Key_F1:
+ action.postGlobalAction(AccessibilityService.GLOBAL_ACTION_HOME);
+ return true;
+ case KeySyms.Key_BackSpace:
+ action.postLocalAction(KeyActionHandler.ACTION_BACKSPACE);
+ return true;
+ case KeySyms.Key_Delete:
+ action.postLocalAction(KeyActionHandler.ACTION_DEL);
+ return true;
+ case KeySyms.Key_Left:
+ if (shiftPressed) {
+ action.postLocalAction(KeyActionHandler.ACTION_SELECT_LEFT);
+ } else {
+ action.postLocalAction(KeyActionHandler.ACTION_MOVE_LEFT);
+ }
+ return true;
+ case KeySyms.Key_Right:
+ if (shiftPressed) {
+ action.postLocalAction(KeyActionHandler.ACTION_SELECT_RIGHT);
+ } else {
+ action.postLocalAction(KeyActionHandler.ACTION_MOVE_RIGHT);
+ }
+ return true;
+ case KeySyms.Key_Home:
+ if (shiftPressed) {
+ action.postLocalAction(KeyActionHandler.ACTION_SELECT_LEFTMOST);
+ } else {
+ action.postLocalAction(KeyActionHandler.ACTION_MOVE_LEFTMOST);
+ }
+ return true;
+ case KeySyms.Key_End:
+ if (shiftPressed) {
+ action.postLocalAction(KeyActionHandler.ACTION_SELECT_RIGHTMOST);
+ } else {
+ action.postLocalAction(KeyActionHandler.ACTION_MOVE_RIGHTMOST);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean keyUp(int key) {
+ switch (key) {
+ case KeySyms.Key_Shift_L:
+ case KeySyms.Key_Shift_R:
+ shiftPressed = false;
+ return false;
+ }
+ return false;
+ }
+}