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

Commit fd91b7be authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Remove user TIS unlocked runnable when a TIS instance is destroyed" into main

parents a1826751 a9355d4d
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -607,6 +607,9 @@ public class TouchInteractionService extends Service {
            this::createFallbackSwipeHandler;
    private final AbsSwipeUpHandler.Factory mRecentsWindowSwipeHandlerFactory =
            this::createRecentsWindowSwipeHandler;
    // This needs to be a member to be queued and potentially removed later if the service is
    // destroyed before the user is unlocked
    private final Runnable mUserUnlockedRunnable = this::onUserUnlocked;

    private final ScreenOnTracker.ScreenOnListener mScreenOnListener = this::onScreenOnChanged;

@@ -678,8 +681,7 @@ public class TouchInteractionService extends Service {
        mInputConsumer = InputConsumerController.getRecentsAnimationInputConsumer();

        // Call runOnUserUnlocked() before any other callbacks to ensure everything is initialized.
        LockedUserState.get(this).runOnUserUnlocked(this::onUserUnlocked);
        LockedUserState.get(this).runOnUserUnlocked(mTaskbarManager::onUserUnlocked);
        LockedUserState.get(this).runOnUserUnlocked(mUserUnlockedRunnable);
        mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged);
        sConnected = true;

@@ -746,6 +748,8 @@ public class TouchInteractionService extends Service {

        mOverviewComponentObserver.setOverviewChangeListener(this::onOverviewTargetChange);
        onOverviewTargetChange(mOverviewComponentObserver.isHomeAndOverviewSame());

        mTaskbarManager.onUserUnlocked();
    }

    public OverviewCommandHelper getOverviewCommandHelper() {
@@ -836,6 +840,7 @@ public class TouchInteractionService extends Service {
        mDesktopVisibilityController.onDestroy();
        sConnected = false;

        LockedUserState.get(this).removeOnUserUnlockedRunnable(mUserUnlockedRunnable);
        ScreenOnTracker.INSTANCE.get(this).removeListener(mScreenOnListener);
        super.onDestroy();
    }
+7 −0
Original line number Diff line number Diff line
@@ -88,6 +88,13 @@ class LockedUserState(private val mContext: Context) : SafeCloseable {
        mUserUnlockedActions.add(action)
    }

    /**
     * Removes a previously queued `Runnable` to be run when the user is unlocked.
     */
    fun removeOnUserUnlockedRunnable(action: Runnable) {
        mUserUnlockedActions.remove(action)
    }

    companion object {
        @VisibleForTesting
        @JvmField