Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +67 −32 Original line number Diff line number Diff line Loading @@ -683,7 +683,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean mKeyguardOccludedChanged; boolean mMenuPressed; boolean mAssistPressed; Intent mHomeIntent; Intent mCarDockIntent; Intent mDeskDockIntent; Loading Loading @@ -1763,6 +1762,38 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private void assistPress() { if (!keyguardOn() && mAssistPressAction != Action.NOTHING) { if (mAssistPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } long now = SystemClock.uptimeMillis(); KeyEvent event = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ASSIST, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_KEYBOARD); performKeyAction(mAssistPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); } } private void assistLongPress() { if (!keyguardOn() && mAssistLongPressAction != Action.NOTHING) { if (mAssistLongPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } long now = SystemClock.uptimeMillis(); KeyEvent event = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ASSIST, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_KEYBOARD); performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, "Assist - Long Press"); performKeyAction(mAssistLongPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); } } private void sleepPress() { if (mShortPressOnSleepBehavior == SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME) { launchHomeFromHotKey(DEFAULT_DISPLAY, false /* awakenDreams */, Loading Loading @@ -2983,6 +3014,35 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } /** * Rule for single assist key gesture. */ private final class AssistKeyRule extends SingleKeyGestureDetector.SingleKeyRule { AssistKeyRule() { super(KeyEvent.KEYCODE_ASSIST); } @Override boolean supportLongPress() { return mAssistLongPressAction != Action.NOTHING; } @Override void onKeyGesture(@NonNull SingleKeyGestureEvent event) { if (event.getAction() != ACTION_COMPLETE) { return; } switch (event.getType()) { case SINGLE_KEY_GESTURE_TYPE_PRESS: assistPress(); break; case SINGLE_KEY_GESTURE_TYPE_LONG_PRESS: assistLongPress(); break; } } } /** * Rule for single stem primary key gesture. */ Loading Loading @@ -3199,6 +3259,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mSingleKeyGestureDetector.addRule(new BackKeyRule()); mSingleKeyGestureDetector.addRule(new StylusTailButtonRule()); mSingleKeyGestureDetector.addRule(new AppSwitchKeyRule()); mSingleKeyGestureDetector.addRule(new AssistKeyRule()); } private void updateKeyAssignments() { Loading Loading @@ -5433,38 +5494,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { break; } case KeyEvent.KEYCODE_ASSIST: { if (keyguardOn()) { break; } if (!keyguardOn()) { if (down) { if (mAssistPressAction == Action.APP_SWITCH || mAssistLongPressAction == Action.APP_SWITCH) { preloadRecentApps(); } if (event.getRepeatCount() == 0) { mAssistPressed = true; } else if (longPress) { if (mAssistLongPressAction != Action.NOTHING) { if (mAssistLongPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, "Assist - Long Press"); performKeyAction(mAssistLongPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); mAssistPressed = false; } } } else { if (mAssistPressed) { if (mAssistPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } mAssistPressed = false; if (!canceled) { performKeyAction(mAssistPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); } } } break; Loading Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +67 −32 Original line number Diff line number Diff line Loading @@ -683,7 +683,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean mKeyguardOccludedChanged; boolean mMenuPressed; boolean mAssistPressed; Intent mHomeIntent; Intent mCarDockIntent; Intent mDeskDockIntent; Loading Loading @@ -1763,6 +1762,38 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private void assistPress() { if (!keyguardOn() && mAssistPressAction != Action.NOTHING) { if (mAssistPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } long now = SystemClock.uptimeMillis(); KeyEvent event = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ASSIST, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_KEYBOARD); performKeyAction(mAssistPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); } } private void assistLongPress() { if (!keyguardOn() && mAssistLongPressAction != Action.NOTHING) { if (mAssistLongPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } long now = SystemClock.uptimeMillis(); KeyEvent event = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ASSIST, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_KEYBOARD); performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, "Assist - Long Press"); performKeyAction(mAssistLongPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); } } private void sleepPress() { if (mShortPressOnSleepBehavior == SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME) { launchHomeFromHotKey(DEFAULT_DISPLAY, false /* awakenDreams */, Loading Loading @@ -2983,6 +3014,35 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } /** * Rule for single assist key gesture. */ private final class AssistKeyRule extends SingleKeyGestureDetector.SingleKeyRule { AssistKeyRule() { super(KeyEvent.KEYCODE_ASSIST); } @Override boolean supportLongPress() { return mAssistLongPressAction != Action.NOTHING; } @Override void onKeyGesture(@NonNull SingleKeyGestureEvent event) { if (event.getAction() != ACTION_COMPLETE) { return; } switch (event.getType()) { case SINGLE_KEY_GESTURE_TYPE_PRESS: assistPress(); break; case SINGLE_KEY_GESTURE_TYPE_LONG_PRESS: assistLongPress(); break; } } } /** * Rule for single stem primary key gesture. */ Loading Loading @@ -3199,6 +3259,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mSingleKeyGestureDetector.addRule(new BackKeyRule()); mSingleKeyGestureDetector.addRule(new StylusTailButtonRule()); mSingleKeyGestureDetector.addRule(new AppSwitchKeyRule()); mSingleKeyGestureDetector.addRule(new AssistKeyRule()); } private void updateKeyAssignments() { Loading Loading @@ -5433,38 +5494,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { break; } case KeyEvent.KEYCODE_ASSIST: { if (keyguardOn()) { break; } if (!keyguardOn()) { if (down) { if (mAssistPressAction == Action.APP_SWITCH || mAssistLongPressAction == Action.APP_SWITCH) { preloadRecentApps(); } if (event.getRepeatCount() == 0) { mAssistPressed = true; } else if (longPress) { if (mAssistLongPressAction != Action.NOTHING) { if (mAssistLongPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, "Assist - Long Press"); performKeyAction(mAssistLongPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); mAssistPressed = false; } } } else { if (mAssistPressed) { if (mAssistPressAction != Action.APP_SWITCH) { cancelPreloadRecentApps(); } mAssistPressed = false; if (!canceled) { performKeyAction(mAssistPressAction, event, AssistUtils.INVOCATION_TYPE_ASSIST_BUTTON); } } } break; Loading