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

Commit eba6a95a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Provide the back callback instance when unregistering it from SysUI." into tm-dev

parents 002e1fcd 883e7e41
Loading
Loading
Loading
Loading
+32 −26
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.quickstep.util.RectFSpringAnim;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
import com.android.systemui.shared.system.SyncRtSurfaceTransactionApplierCompat;

/**
 * Controls the animation of swiping back and returning to launcher.
 *
@@ -87,6 +88,7 @@ public class LauncherBackAnimationController {
    private boolean mAnimatorSetInProgress = false;
    private float mBackProgress = 0;
    private boolean mBackInProgress = false;
    private IOnBackInvokedCallback mBackCallback;

    public LauncherBackAnimationController(
            BaseQuickstepLauncher launcher,
@@ -112,8 +114,7 @@ public class LauncherBackAnimationController {
     * @param handler Handler to the thread to run the animations on.
     */
    public void registerBackCallbacks(Handler handler) {
        SystemUiProxy.INSTANCE.get(mLauncher).setBackToLauncherCallback(
                new IOnBackInvokedCallback.Stub() {
        mBackCallback = new IOnBackInvokedCallback.Stub() {
            @Override
            public void onBackCancelled() {
                handler.post(() -> resetPositionAnimated());
@@ -138,8 +139,10 @@ public class LauncherBackAnimationController {
                }
            }

            @Override
            public void onBackStarted() { }
                });
        };
        SystemUiProxy.INSTANCE.get(mLauncher).setBackToLauncherCallback(mBackCallback);
    }

    private void resetPositionAnimated() {
@@ -162,7 +165,10 @@ public class LauncherBackAnimationController {

    /** Unregisters the back to launcher callback in shell. */
    public void unregisterBackCallbacks() {
        SystemUiProxy.INSTANCE.get(mLauncher).clearBackToLauncherCallback();
        if (mBackCallback != null) {
            SystemUiProxy.INSTANCE.get(mLauncher).clearBackToLauncherCallback(mBackCallback);
        }
        mBackCallback = null;
    }

    private void startBack(BackEvent backEvent) {
+8 −2
Original line number Diff line number Diff line
@@ -847,8 +847,14 @@ public class SystemUiProxy implements ISystemUiProxy, DisplayController.DisplayI
        }
    }

    /** Clears the previously registered {@link IOnBackInvokedCallback}. */
    public void clearBackToLauncherCallback() {
    /** Clears the previously registered {@link IOnBackInvokedCallback}.
     *
     * @param callback The previously registered callback instance.
     */
    public void clearBackToLauncherCallback(IOnBackInvokedCallback callback) {
        if (mBackToLauncherCallback != callback) {
            return;
        }
        mBackToLauncherCallback = null;
        if (mBackAnimation == null) {
            return;