Loading core/java/android/hardware/input/InputGestureData.java +67 −54 Original line number Diff line number Diff line Loading @@ -48,27 +48,7 @@ public final class InputGestureData { /** Returns the trigger information for this input gesture */ public Trigger getTrigger() { switch (mInputGestureData.trigger.getTag()) { case AidlInputGestureData.Trigger.Tag.key: { AidlInputGestureData.KeyTrigger trigger = mInputGestureData.trigger.getKey(); if (trigger == null) { throw new RuntimeException("InputGestureData is corrupted, null key trigger!"); } return createKeyTrigger(trigger.keycode, trigger.modifierState); } case AidlInputGestureData.Trigger.Tag.touchpadGesture: { AidlInputGestureData.TouchpadGestureTrigger trigger = mInputGestureData.trigger.getTouchpadGesture(); if (trigger == null) { throw new RuntimeException( "InputGestureData is corrupted, null touchpad trigger!"); } return createTouchpadTrigger(trigger.gestureType); } default: throw new RuntimeException("InputGestureData is corrupted, invalid trigger type!"); } return createTriggerFromAidlTrigger(mInputGestureData.trigger); } /** Returns the action to perform for this input gesture */ Loading Loading @@ -147,18 +127,7 @@ public final class InputGestureData { "No app launch data for system action launch application"); } AidlInputGestureData data = new AidlInputGestureData(); data.trigger = new AidlInputGestureData.Trigger(); if (mTrigger instanceof KeyTrigger keyTrigger) { data.trigger.setKey(new AidlInputGestureData.KeyTrigger()); data.trigger.getKey().keycode = keyTrigger.getKeycode(); data.trigger.getKey().modifierState = keyTrigger.getModifierState(); } else if (mTrigger instanceof TouchpadTrigger touchpadTrigger) { data.trigger.setTouchpadGesture(new AidlInputGestureData.TouchpadGestureTrigger()); data.trigger.getTouchpadGesture().gestureType = touchpadTrigger.getTouchpadGestureType(); } else { throw new IllegalArgumentException("Invalid trigger type!"); } data.trigger = mTrigger.getAidlTrigger(); data.gestureType = mKeyGestureType; if (mAppLaunchData != null) { if (mAppLaunchData instanceof AppLaunchData.CategoryData categoryData) { Loading Loading @@ -198,6 +167,7 @@ public final class InputGestureData { } public interface Trigger { AidlInputGestureData.Trigger getAidlTrigger(); } /** Creates a input gesture trigger based on a key press */ Loading @@ -210,85 +180,128 @@ public final class InputGestureData { return new TouchpadTrigger(touchpadGestureType); } public static Trigger createTriggerFromAidlTrigger(AidlInputGestureData.Trigger aidlTrigger) { switch (aidlTrigger.getTag()) { case AidlInputGestureData.Trigger.Tag.key: { AidlInputGestureData.KeyTrigger trigger = aidlTrigger.getKey(); if (trigger == null) { throw new RuntimeException("aidlTrigger is corrupted, null key trigger!"); } return new KeyTrigger(trigger); } case AidlInputGestureData.Trigger.Tag.touchpadGesture: { AidlInputGestureData.TouchpadGestureTrigger trigger = aidlTrigger.getTouchpadGesture(); if (trigger == null) { throw new RuntimeException( "aidlTrigger is corrupted, null touchpad trigger!"); } return new TouchpadTrigger(trigger); } default: throw new RuntimeException("aidlTrigger is corrupted, invalid trigger type!"); } } /** Key based input gesture trigger */ public static class KeyTrigger implements Trigger { private static final int SHORTCUT_META_MASK = KeyEvent.META_META_ON | KeyEvent.META_CTRL_ON | KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON; private final int mKeycode; private final int mModifierState; AidlInputGestureData.KeyTrigger mAidlKeyTrigger; private KeyTrigger(@NonNull AidlInputGestureData.KeyTrigger aidlKeyTrigger) { mAidlKeyTrigger = aidlKeyTrigger; } private KeyTrigger(int keycode, int modifierState) { if (keycode <= KeyEvent.KEYCODE_UNKNOWN || keycode > KeyEvent.getMaxKeyCode()) { throw new IllegalArgumentException("Invalid keycode = " + keycode); } mKeycode = keycode; mModifierState = modifierState; mAidlKeyTrigger = new AidlInputGestureData.KeyTrigger(); mAidlKeyTrigger.keycode = keycode; mAidlKeyTrigger.modifierState = modifierState; } public int getKeycode() { return mKeycode; return mAidlKeyTrigger.keycode; } public int getModifierState() { return mModifierState; return mAidlKeyTrigger.modifierState; } public AidlInputGestureData.Trigger getAidlTrigger() { AidlInputGestureData.Trigger trigger = new AidlInputGestureData.Trigger(); trigger.setKey(mAidlKeyTrigger); return trigger; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof KeyTrigger that)) return false; return mKeycode == that.mKeycode && mModifierState == that.mModifierState; return Objects.equals(mAidlKeyTrigger, that.mAidlKeyTrigger); } @Override public int hashCode() { return Objects.hash(mKeycode, mModifierState); return mAidlKeyTrigger.hashCode(); } @Override public String toString() { return "KeyTrigger{" + "mKeycode=" + KeyEvent.keyCodeToString(mKeycode) + ", mModifierState=" + mModifierState + "mKeycode=" + KeyEvent.keyCodeToString(mAidlKeyTrigger.keycode) + ", mModifierState=" + mAidlKeyTrigger.modifierState + '}'; } } /** Touchpad based input gesture trigger */ public static class TouchpadTrigger implements Trigger { private final int mTouchpadGestureType; AidlInputGestureData.TouchpadGestureTrigger mAidlTouchpadTrigger; private TouchpadTrigger( @NonNull AidlInputGestureData.TouchpadGestureTrigger aidlTouchpadTrigger) { mAidlTouchpadTrigger = aidlTouchpadTrigger; } private TouchpadTrigger(int touchpadGestureType) { if (touchpadGestureType != TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP) { throw new IllegalArgumentException( "Invalid touchpadGestureType = " + touchpadGestureType); } mTouchpadGestureType = touchpadGestureType; mAidlTouchpadTrigger = new AidlInputGestureData.TouchpadGestureTrigger(); mAidlTouchpadTrigger.gestureType = touchpadGestureType; } public int getTouchpadGestureType() { return mTouchpadGestureType; return mAidlTouchpadTrigger.gestureType; } public AidlInputGestureData.Trigger getAidlTrigger() { AidlInputGestureData.Trigger trigger = new AidlInputGestureData.Trigger(); trigger.setTouchpadGesture(mAidlTouchpadTrigger); return trigger; } @Override public String toString() { return "TouchpadTrigger{" + "mTouchpadGestureType=" + mTouchpadGestureType + "mTouchpadGestureType=" + mAidlTouchpadTrigger.gestureType + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TouchpadTrigger that = (TouchpadTrigger) o; return mTouchpadGestureType == that.mTouchpadGestureType; if (!(o instanceof TouchpadTrigger that)) return false; return Objects.equals(mAidlTouchpadTrigger, that.mAidlTouchpadTrigger); } @Override public int hashCode() { return Objects.hashCode(mTouchpadGestureType); return mAidlTouchpadTrigger.hashCode(); } } Loading Loading
core/java/android/hardware/input/InputGestureData.java +67 −54 Original line number Diff line number Diff line Loading @@ -48,27 +48,7 @@ public final class InputGestureData { /** Returns the trigger information for this input gesture */ public Trigger getTrigger() { switch (mInputGestureData.trigger.getTag()) { case AidlInputGestureData.Trigger.Tag.key: { AidlInputGestureData.KeyTrigger trigger = mInputGestureData.trigger.getKey(); if (trigger == null) { throw new RuntimeException("InputGestureData is corrupted, null key trigger!"); } return createKeyTrigger(trigger.keycode, trigger.modifierState); } case AidlInputGestureData.Trigger.Tag.touchpadGesture: { AidlInputGestureData.TouchpadGestureTrigger trigger = mInputGestureData.trigger.getTouchpadGesture(); if (trigger == null) { throw new RuntimeException( "InputGestureData is corrupted, null touchpad trigger!"); } return createTouchpadTrigger(trigger.gestureType); } default: throw new RuntimeException("InputGestureData is corrupted, invalid trigger type!"); } return createTriggerFromAidlTrigger(mInputGestureData.trigger); } /** Returns the action to perform for this input gesture */ Loading Loading @@ -147,18 +127,7 @@ public final class InputGestureData { "No app launch data for system action launch application"); } AidlInputGestureData data = new AidlInputGestureData(); data.trigger = new AidlInputGestureData.Trigger(); if (mTrigger instanceof KeyTrigger keyTrigger) { data.trigger.setKey(new AidlInputGestureData.KeyTrigger()); data.trigger.getKey().keycode = keyTrigger.getKeycode(); data.trigger.getKey().modifierState = keyTrigger.getModifierState(); } else if (mTrigger instanceof TouchpadTrigger touchpadTrigger) { data.trigger.setTouchpadGesture(new AidlInputGestureData.TouchpadGestureTrigger()); data.trigger.getTouchpadGesture().gestureType = touchpadTrigger.getTouchpadGestureType(); } else { throw new IllegalArgumentException("Invalid trigger type!"); } data.trigger = mTrigger.getAidlTrigger(); data.gestureType = mKeyGestureType; if (mAppLaunchData != null) { if (mAppLaunchData instanceof AppLaunchData.CategoryData categoryData) { Loading Loading @@ -198,6 +167,7 @@ public final class InputGestureData { } public interface Trigger { AidlInputGestureData.Trigger getAidlTrigger(); } /** Creates a input gesture trigger based on a key press */ Loading @@ -210,85 +180,128 @@ public final class InputGestureData { return new TouchpadTrigger(touchpadGestureType); } public static Trigger createTriggerFromAidlTrigger(AidlInputGestureData.Trigger aidlTrigger) { switch (aidlTrigger.getTag()) { case AidlInputGestureData.Trigger.Tag.key: { AidlInputGestureData.KeyTrigger trigger = aidlTrigger.getKey(); if (trigger == null) { throw new RuntimeException("aidlTrigger is corrupted, null key trigger!"); } return new KeyTrigger(trigger); } case AidlInputGestureData.Trigger.Tag.touchpadGesture: { AidlInputGestureData.TouchpadGestureTrigger trigger = aidlTrigger.getTouchpadGesture(); if (trigger == null) { throw new RuntimeException( "aidlTrigger is corrupted, null touchpad trigger!"); } return new TouchpadTrigger(trigger); } default: throw new RuntimeException("aidlTrigger is corrupted, invalid trigger type!"); } } /** Key based input gesture trigger */ public static class KeyTrigger implements Trigger { private static final int SHORTCUT_META_MASK = KeyEvent.META_META_ON | KeyEvent.META_CTRL_ON | KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON; private final int mKeycode; private final int mModifierState; AidlInputGestureData.KeyTrigger mAidlKeyTrigger; private KeyTrigger(@NonNull AidlInputGestureData.KeyTrigger aidlKeyTrigger) { mAidlKeyTrigger = aidlKeyTrigger; } private KeyTrigger(int keycode, int modifierState) { if (keycode <= KeyEvent.KEYCODE_UNKNOWN || keycode > KeyEvent.getMaxKeyCode()) { throw new IllegalArgumentException("Invalid keycode = " + keycode); } mKeycode = keycode; mModifierState = modifierState; mAidlKeyTrigger = new AidlInputGestureData.KeyTrigger(); mAidlKeyTrigger.keycode = keycode; mAidlKeyTrigger.modifierState = modifierState; } public int getKeycode() { return mKeycode; return mAidlKeyTrigger.keycode; } public int getModifierState() { return mModifierState; return mAidlKeyTrigger.modifierState; } public AidlInputGestureData.Trigger getAidlTrigger() { AidlInputGestureData.Trigger trigger = new AidlInputGestureData.Trigger(); trigger.setKey(mAidlKeyTrigger); return trigger; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof KeyTrigger that)) return false; return mKeycode == that.mKeycode && mModifierState == that.mModifierState; return Objects.equals(mAidlKeyTrigger, that.mAidlKeyTrigger); } @Override public int hashCode() { return Objects.hash(mKeycode, mModifierState); return mAidlKeyTrigger.hashCode(); } @Override public String toString() { return "KeyTrigger{" + "mKeycode=" + KeyEvent.keyCodeToString(mKeycode) + ", mModifierState=" + mModifierState + "mKeycode=" + KeyEvent.keyCodeToString(mAidlKeyTrigger.keycode) + ", mModifierState=" + mAidlKeyTrigger.modifierState + '}'; } } /** Touchpad based input gesture trigger */ public static class TouchpadTrigger implements Trigger { private final int mTouchpadGestureType; AidlInputGestureData.TouchpadGestureTrigger mAidlTouchpadTrigger; private TouchpadTrigger( @NonNull AidlInputGestureData.TouchpadGestureTrigger aidlTouchpadTrigger) { mAidlTouchpadTrigger = aidlTouchpadTrigger; } private TouchpadTrigger(int touchpadGestureType) { if (touchpadGestureType != TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP) { throw new IllegalArgumentException( "Invalid touchpadGestureType = " + touchpadGestureType); } mTouchpadGestureType = touchpadGestureType; mAidlTouchpadTrigger = new AidlInputGestureData.TouchpadGestureTrigger(); mAidlTouchpadTrigger.gestureType = touchpadGestureType; } public int getTouchpadGestureType() { return mTouchpadGestureType; return mAidlTouchpadTrigger.gestureType; } public AidlInputGestureData.Trigger getAidlTrigger() { AidlInputGestureData.Trigger trigger = new AidlInputGestureData.Trigger(); trigger.setTouchpadGesture(mAidlTouchpadTrigger); return trigger; } @Override public String toString() { return "TouchpadTrigger{" + "mTouchpadGestureType=" + mTouchpadGestureType + "mTouchpadGestureType=" + mAidlTouchpadTrigger.gestureType + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TouchpadTrigger that = (TouchpadTrigger) o; return mTouchpadGestureType == that.mTouchpadGestureType; if (!(o instanceof TouchpadTrigger that)) return false; return Objects.equals(mAidlTouchpadTrigger, that.mAidlTouchpadTrigger); } @Override public int hashCode() { return Objects.hashCode(mTouchpadGestureType); return mAidlTouchpadTrigger.hashCode(); } } Loading