From 0469ca8398efc93397e3989f01c1fa14e7227cdc Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Sun, 8 Sep 2024 12:05:04 -0700 Subject: Pipe appTransition signal to taskbar to pause region sampling when it's ongoing For nav bar, RegionSamplingHelper calls LightTransitionsController#setIconsDark to apply color changes, which listens to mTransitionPending signal. For taskbar, due to the RegionSamplingHelper in Launcher and LightTransitionsController in SysUI, we need to pipe this signal (mTransitionPending) through. Bug: 361593564 Test: https://android-build.corp.google.com/builds/abtd/run/L78300030006280283 Flag: EXEMPT bugfix Change-Id: I4a3607ddc6c92ee1bee6464d121024582aa70870 --- .../systemui/shared/recents/IOverviewProxy.aidl | 5 ++++ .../systemui/navigationbar/TaskbarDelegate.java | 27 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) 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 c00007b55482..283e4556d05c 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 @@ -132,4 +132,9 @@ oneway interface IOverviewProxy { * Sent when {@link TaskbarDelegate#transitionTo} is called. */ void transitionTo(int barMode, boolean animate) = 33; + + /** + * Sent when {@link TaskbarDelegate#appTransitionPending} is called. + */ + void appTransitionPending(boolean pending) = 34; } diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java index e44069f78ee3..b3c697e06a92 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java @@ -425,6 +425,18 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, } } + private void appTransitionPending(boolean pending) { + if (mOverviewProxyService.getProxy() == null) { + return; + } + + try { + mOverviewProxyService.getProxy().appTransitionPending(pending); + } catch (RemoteException e) { + Log.e(TAG, "appTransitionPending() failed, pending: " + pending, e); + } + } + @Override public void setImeWindowStatus(int displayId, @ImeWindowVisibility int vis, @BackDispositionMode int backDisposition, boolean showImeSwitcher) { @@ -533,6 +545,21 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, } } + @Override + public void appTransitionPending(int displayId, boolean forced) { + appTransitionPending(true); + } + + @Override + public void appTransitionCancelled(int displayId) { + appTransitionPending(false); + } + + @Override + public void appTransitionFinished(int displayId) { + appTransitionPending(false); + } + private void clearTransient() { if (mTaskbarTransientShowing) { mTaskbarTransientShowing = false; -- cgit v1.2.3-59-g8ed1b