Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0469ca83 authored by Tracy Zhou's avatar Tracy Zhou
Browse files

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
parent ce3c17d7
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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;
}
+27 −0
Original line number Diff line number Diff line
@@ -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;