From e97f9b673e1c97e0d1694b9791b2f25e25a4387c Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Thu, 19 Jan 2023 19:33:39 +0000 Subject: [PATCH 1/2] Revert "Pass down whether iterating through tasks in overview is..." Revert submission 20956764-alt_tab_forward Reason for revert: Actually we dont need these changes after all. SHIFT doesn't matter in the initial tab to overview. The subsequent tabs are handled by RecentsView and we already have a check on shift Reverted changes: /q/submissionid:20956764-alt_tab_forward Change-Id: Iaf62d47b239a680c84df2f226fd36484a36b84dd --- .../internal/statusbar/IStatusBar.aidl | 2 +- .../shared/recents/IOverviewProxy.aidl | 2 +- .../recents/OverviewProxyRecentsImpl.java | 4 +- .../com/android/systemui/recents/Recents.java | 4 +- .../recents/RecentsImplementation.java | 2 +- .../systemui/statusbar/CommandQueue.java | 10 ++--- .../systemui/statusbar/CommandQueueTest.java | 4 +- .../server/policy/PhoneWindowManager.java | 45 ++++++++----------- .../statusbar/StatusBarManagerInternal.java | 2 +- .../statusbar/StatusBarManagerService.java | 4 +- 10 files changed, 35 insertions(+), 44 deletions(-) diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index 8fb345b3a9001..db288c0dca901 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -53,7 +53,7 @@ oneway interface IStatusBar boolean showImeSwitcher); void setWindowState(int display, int window, int state); - void showRecentApps(boolean triggeredFromAltTab, boolean forward); + void showRecentApps(boolean triggeredFromAltTab); void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey); void toggleRecentApps(); void toggleSplitScreen(); diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl index fa484c794a5b0..a71fb5611bd9c 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl @@ -37,7 +37,7 @@ oneway interface IOverviewProxy { /** * Sent when overview is to be shown. */ - void onOverviewShown(boolean triggeredFromAltTab, boolean forward) = 7; + void onOverviewShown(boolean triggeredFromAltTab) = 7; /** * Sent when overview is to be hidden. diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java index c335a6d74e9b2..5ea1c0b4ce852 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java @@ -59,11 +59,11 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation { } @Override - public void showRecentApps(boolean triggeredFromAltTab, boolean forward) { + public void showRecentApps(boolean triggeredFromAltTab) { IOverviewProxy overviewProxy = mOverviewProxyService.getProxy(); if (overviewProxy != null) { try { - overviewProxy.onOverviewShown(triggeredFromAltTab, forward); + overviewProxy.onOverviewShown(triggeredFromAltTab); } catch (RemoteException e) { Log.e(TAG, "Failed to send overview show event to launcher.", e); } diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index 95d6c187a224a..b041f957d7712 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -65,14 +65,14 @@ public class Recents implements CoreStartable, CommandQueue.Callbacks { } @Override - public void showRecentApps(boolean triggeredFromAltTab, boolean forward) { + public void showRecentApps(boolean triggeredFromAltTab) { // Ensure the device has been provisioned before allowing the user to interact with // recents if (!isUserSetup()) { return; } - mImpl.showRecentApps(triggeredFromAltTab, forward); + mImpl.showRecentApps(triggeredFromAltTab); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImplementation.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImplementation.java index 010ceda84068a..8848dbbda5e78 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImplementation.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImplementation.java @@ -31,7 +31,7 @@ public interface RecentsImplementation { default void preloadRecentApps() {} default void cancelPreloadRecentApps() {} - default void showRecentApps(boolean triggeredFromAltTab, boolean forward) {} + default void showRecentApps(boolean triggeredFromAltTab) {} default void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {} default void toggleRecentApps() {} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index 04adaae209fbb..bad942fe3da95 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -224,7 +224,7 @@ public class CommandQueue extends IStatusBar.Stub implements */ default void setImeWindowStatus(int displayId, IBinder token, int vis, @BackDispositionMode int backDisposition, boolean showImeSwitcher) { } - default void showRecentApps(boolean triggeredFromAltTab, boolean forward) { } + default void showRecentApps(boolean triggeredFromAltTab) { } default void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) { } default void toggleRecentApps() { } default void toggleSplitScreen() { } @@ -686,11 +686,11 @@ public class CommandQueue extends IStatusBar.Stub implements } } - public void showRecentApps(boolean triggeredFromAltTab, boolean forward) { + public void showRecentApps(boolean triggeredFromAltTab) { synchronized (mLock) { mHandler.removeMessages(MSG_SHOW_RECENT_APPS); - mHandler.obtainMessage(MSG_SHOW_RECENT_APPS, triggeredFromAltTab ? 1 : 0, - forward ? 1 : 0, null).sendToTarget(); + mHandler.obtainMessage(MSG_SHOW_RECENT_APPS, triggeredFromAltTab ? 1 : 0, 0, + null).sendToTarget(); } } @@ -1384,7 +1384,7 @@ public class CommandQueue extends IStatusBar.Stub implements break; case MSG_SHOW_RECENT_APPS: for (int i = 0; i < mCallbacks.size(); i++) { - mCallbacks.get(i).showRecentApps(msg.arg1 != 0, msg.arg2 != 0); + mCallbacks.get(i).showRecentApps(msg.arg1 != 0); } break; case MSG_HIDE_RECENT_APPS: diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java index fc7cd890af36e..0000c32aa60d2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/CommandQueueTest.java @@ -209,9 +209,9 @@ public class CommandQueueTest extends SysuiTestCase { @Test public void testShowRecentApps() { - mCommandQueue.showRecentApps(true, false); + mCommandQueue.showRecentApps(true); waitForIdleSync(); - verify(mCallbacks).showRecentApps(eq(true), eq(false)); + verify(mCallbacks).showRecentApps(eq(true)); } @Test diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index a099e724fd26c..320b8e172cc99 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -661,7 +661,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { dispatchMediaKeyRepeatWithWakeLock((KeyEvent)msg.obj); break; case MSG_DISPATCH_SHOW_RECENTS: - showRecents(); + showRecentApps(false); break; case MSG_DISPATCH_SHOW_GLOBAL_ACTIONS: showGlobalActionsInternal(); @@ -2910,7 +2910,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { break; case KeyEvent.KEYCODE_RECENT_APPS: if (down && repeatCount == 0) { - showRecents(); + showRecentApps(false /* triggeredFromAltTab */); } return key_consumed; case KeyEvent.KEYCODE_APP_SWITCH: @@ -3094,23 +3094,22 @@ public class PhoneWindowManager implements WindowManagerPolicy { } break; case KeyEvent.KEYCODE_TAB: - if (down) { - if (event.isMetaPressed()) { - if (!keyguardOn && isUserSetupComplete()) { - showRecents(); + if (down && event.isMetaPressed()) { + if (!keyguardOn && isUserSetupComplete()) { + showRecentApps(false); + return key_consumed; + } + } else if (down && repeatCount == 0) { + // Display task switcher for ALT-TAB. + if (mRecentAppsHeldModifiers == 0 && !keyguardOn && isUserSetupComplete()) { + final int shiftlessModifiers = + event.getModifiers() & ~KeyEvent.META_SHIFT_MASK; + if (KeyEvent.metaStateHasModifiers( + shiftlessModifiers, KeyEvent.META_ALT_ON)) { + mRecentAppsHeldModifiers = shiftlessModifiers; + showRecentApps(true); return key_consumed; } - } else { - // Display task switcher for ALT-TAB. - if (mRecentAppsHeldModifiers == 0 && !keyguardOn && isUserSetupComplete()) { - final int modifiers = event.getModifiers(); - if (KeyEvent.metaStateHasModifiers(modifiers, KeyEvent.META_ALT_ON)) { - mRecentAppsHeldModifiers = modifiers; - showRecentsFromAltTab(KeyEvent.metaStateHasModifiers(modifiers, - KeyEvent.META_SHIFT_ON)); - return key_consumed; - } - } } } break; @@ -3647,19 +3646,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { mHandler.obtainMessage(MSG_DISPATCH_SHOW_RECENTS).sendToTarget(); } - private void showRecents() { + private void showRecentApps(boolean triggeredFromAltTab) { mPreloadedRecentApps = false; // preloading no longer needs to be canceled StatusBarManagerInternal statusbar = getStatusBarManagerInternal(); if (statusbar != null) { - statusbar.showRecentApps(false /* triggeredFromAltTab */, false /* forward */); - } - } - - private void showRecentsFromAltTab(boolean forward) { - mPreloadedRecentApps = false; // preloading no longer needs to be canceled - StatusBarManagerInternal statusbar = getStatusBarManagerInternal(); - if (statusbar != null) { - statusbar.showRecentApps(true /* triggeredFromAltTab */, forward); + statusbar.showRecentApps(triggeredFromAltTab); } } diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java index 0fd6d9b396056..392fda9520fef 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java @@ -39,7 +39,7 @@ public interface StatusBarManagerInternal { void cancelPreloadRecentApps(); - void showRecentApps(boolean triggeredFromAltTab, boolean forward); + void showRecentApps(boolean triggeredFromAltTab); void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey); diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java index 97ca8df268a91..8d71d9cc6dc80 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java @@ -454,10 +454,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D } @Override - public void showRecentApps(boolean triggeredFromAltTab, boolean forward) { + public void showRecentApps(boolean triggeredFromAltTab) { if (mBar != null) { try { - mBar.showRecentApps(triggeredFromAltTab, forward); + mBar.showRecentApps(triggeredFromAltTab); } catch (RemoteException ex) {} } } From 2ae74b18db246e9eafda706107fbfce9fa62a5a7 Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Thu, 19 Jan 2023 19:33:39 +0000 Subject: [PATCH 2/2] Revert "Update params in test usage of showRecentApps" Revert submission 20956764-alt_tab_forward Reason for revert: Actually we dont need these changes after all. SHIFT doesn't matter in the initial tab to overview. The subsequent tabs are handled by RecentsView and we already have a check on shift Reverted changes: /q/submissionid:20956764-alt_tab_forward Change-Id: Ia5adaa9bd8b8e9f4c9c604acb1bc89dd000f283e --- .../src/com/android/server/policy/TestPhoneWindowManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java index fd1ca68c08db0..a76b82babe08a 100644 --- a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java +++ b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java @@ -407,7 +407,7 @@ class TestPhoneWindowManager { void assertShowRecentApps() { waitForIdle(); - verify(mStatusBarManagerInternal).showRecentApps(anyBoolean(), anyBoolean()); + verify(mStatusBarManagerInternal).showRecentApps(anyBoolean()); } void assertSwitchKeyboardLayout() {