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

Commit c0095e51 authored by Issei Suzuki's avatar Issei Suzuki
Browse files

Stop animation when screen times out and the user turns on the phone.

Test: manual.
  1. set lock mode to none (keep showing Settings activity)
  2. wait until the screen times out
  3. tap screen to turn on the screen
  4. verity no animation is applied on the Settings activity
Bug: 189438446
Change-Id: I5d7d0983e1d3f1dc5731eac1606417863a890e65
parent 9328e1c7
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -220,6 +220,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
    // transaction from the global transaction.
    private final SurfaceControl.Transaction mDisplayTransaction;

    // The tag for the token to put root tasks on the displays to sleep.
    private static final String DISPLAY_OFF_SLEEP_TOKEN_TAG = "Display-off";

    /** The token acquirer to put root tasks on the displays to sleep */
    final ActivityTaskManagerInternal.SleepTokenAcquirer mDisplayOffTokenAcquirer;

@@ -449,7 +452,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
        mService = service.mAtmService;
        mTaskSupervisor = mService.mTaskSupervisor;
        mTaskSupervisor.mRootWindowContainer = this;
        mDisplayOffTokenAcquirer = mService.new SleepTokenAcquirerImpl("Display-off");
        mDisplayOffTokenAcquirer = mService.new SleepTokenAcquirerImpl(DISPLAY_OFF_SLEEP_TOKEN_TAG);
    }

    boolean updateFocusedWindowLocked(int mode, boolean updateInputWindows) {
@@ -2653,12 +2656,14 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
            Slog.d(TAG, "Remove non-exist sleep token: " + token + " from " + Debug.getCallers(6));
        }
        mSleepTokens.remove(token.mHashKey);

        final DisplayContent display = getDisplayContent(token.mDisplayId);
        if (display != null) {
            display.mAllSleepTokens.remove(token);
            if (display.mAllSleepTokens.isEmpty()) {
                mService.updateSleepIfNeededLocked();
                if (token.mTag.equals(DISPLAY_OFF_SLEEP_TOKEN_TAG)) {
                    display.mSkipAppTransitionAnimation = true;
                }
            }
        }
    }