Merge "Map new home and back keyboard shortcuts"

This commit is contained in:
Tracy Zhou
2022-12-09 20:33:25 +00:00
committed by Android (Google) Code Review

View File

@@ -2873,16 +2873,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
switch(keyCode) {
case KeyEvent.KEYCODE_HOME:
// First we always handle the home key here, so applications
// can never break it, although if keyguard is on, we do let
// it handle it, because that gives us the correct 5 second
// timeout.
DisplayHomeButtonHandler handler = mDisplayHomeButtonHandlers.get(displayId);
if (handler == null) {
handler = new DisplayHomeButtonHandler(displayId);
mDisplayHomeButtonHandlers.put(displayId, handler);
}
return handler.handleHomeButton(focusedToken, event);
return handleHomeShortcuts(displayId, focusedToken, event);
case KeyEvent.KEYCODE_MENU:
// Hijack modified menu keys for debugging features
final int chordBug = KeyEvent.META_SHIFT_ON;
@@ -2913,6 +2904,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
return key_consumed;
}
break;
case KeyEvent.KEYCODE_H:
if (down && event.isMetaPressed()) {
return handleHomeShortcuts(displayId, focusedToken, event);
}
break;
case KeyEvent.KEYCODE_I:
if (down && event.isMetaPressed()) {
showSystemSettings();
@@ -2952,6 +2948,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (down && event.isMetaPressed() && event.isCtrlPressed() && repeatCount == 0) {
enterStageSplitFromRunningApp(true /* leftOrTop */);
return key_consumed;
} else if (!down && event.isMetaPressed()) {
boolean backKeyHandled = backKeyPress();
if (backKeyHandled) {
return key_consumed;
}
}
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
@@ -2960,6 +2961,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
return key_consumed;
}
break;
case KeyEvent.KEYCODE_GRAVE:
if (!down && event.isMetaPressed()) {
boolean backKeyHandled = backKeyPress();
if (backKeyHandled) {
return key_consumed;
}
}
break;
case KeyEvent.KEYCODE_SLASH:
if (down && repeatCount == 0 && event.isMetaPressed() && !keyguardOn) {
toggleKeyboardShortcutsMenu(event.getDeviceId());
@@ -3175,6 +3184,19 @@ public class PhoneWindowManager implements WindowManagerPolicy {
return key_not_consumed;
}
private int handleHomeShortcuts(int displayId, IBinder focusedToken, KeyEvent event) {
// First we always handle the home key here, so applications
// can never break it, although if keyguard is on, we do let
// it handle it, because that gives us the correct 5 second
// timeout.
DisplayHomeButtonHandler handler = mDisplayHomeButtonHandlers.get(displayId);
if (handler == null) {
handler = new DisplayHomeButtonHandler(displayId);
mDisplayHomeButtonHandlers.put(displayId, handler);
}
return handler.handleHomeButton(focusedToken, event);
}
private void toggleMicrophoneMuteFromKey() {
if (mSensorPrivacyManager.supportsSensorToggle(
SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE,