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

Commit bf513a44 authored by Mike Schneider's avatar Mike Schneider Committed by Automerger Merge Worker
Browse files

Merge "Auto-stash taskbar when locking device" into tm-qpr-dev am: 1a09d4a2 am: d49c8177

parents 1103621f d49c8177
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import static com.android.systemui.shared.system.QuickStepContract.SCREEN_STATE_
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DREAMING;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_ON;
@@ -34,7 +35,8 @@ public class TaskbarKeyguardController implements TaskbarControllers.LoggableTas
    // locked.
    public static final int MASK_ANY_SYSUI_LOCKED = SYSUI_STATE_BOUNCER_SHOWING
            | SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING
            | SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED;
            | SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED
            | SYSUI_STATE_DEVICE_DREAMING;

    private final TaskbarActivityContext mContext;
    private int mKeyguardSysuiFlags;
+7 −2
Original line number Diff line number Diff line
@@ -457,8 +457,13 @@ public class TaskbarLauncherStateController {
            animatorSet.play(mTaskbarCornerRoundness.animateToValue(cornerRoundness));
        }

        if (hasAnyFlag(changedFlags, FLAG_DEVICE_LOCKED)) {
            // When transitioning between locked/unlocked, there is no stashing animation.
        // Keep isUnlockTransition in sync with its counterpart in
        // TaskbarStashController#createAnimToIsStashed.
        boolean isUnlockTransition =
                hasAnyFlag(changedFlags, FLAG_DEVICE_LOCKED) && !hasAnyFlag(FLAG_DEVICE_LOCKED);
        if (isUnlockTransition) {
            // When transitioning to unlocked, ensure the hotseat is fully visible from the
            // beginning. The hotseat itself is animated by LauncherUnlockAnimationController.
            mIconAlignment.cancelAnimation();
            // updateValue ensures onIconAlignmentRatioChanged will be called if there is an actual
            // change in value
+17 −5
Original line number Diff line number Diff line
@@ -585,9 +585,12 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
        // already stashed Taskbar.
        boolean hotseatTopElement = mControllers.uiController.isHotseatIconOnTopWhenAligned()
                || !hasAnyFlag(changedFlags, FLAG_IN_APP);
        // If transitioning between locked/unlocked device, do not play a stash animation.
        boolean unLockedTransition = hasAnyFlag(changedFlags, FLAG_STASHED_DEVICE_LOCKED);
        boolean skipStashAnimation = !hotseatTopElement || unLockedTransition;
        // If transitioning to unlocked device, do not play a stash animation.
        // Keep isUnlockTransition in sync with its counterpart in
        // TaskbarLauncherStateController#onStateChangeApplied.
        boolean isUnlockTransition = hasAnyFlag(changedFlags, FLAG_STASHED_DEVICE_LOCKED)
                && !hasAnyFlag(FLAG_STASHED_DEVICE_LOCKED);
        boolean skipStashAnimation = !hotseatTopElement || isUnlockTransition;

        if (isTransientTaskbar) {
            createTransientAnimToIsStashed(mAnimator, isStashed, duration, animateBg, changedFlags,
@@ -909,8 +912,17 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
                SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE));
        updateStateForFlag(FLAG_STASHED_SYSUI,
                hasAnyFlag(systemUiStateFlags, SYSUI_STATE_SCREEN_PINNING));
        updateStateForFlag(FLAG_STASHED_DEVICE_LOCKED,
                hasAnyFlag(systemUiStateFlags, MASK_ANY_SYSUI_LOCKED));

        boolean isLocked = hasAnyFlag(systemUiStateFlags, MASK_ANY_SYSUI_LOCKED);
        boolean wasLocked = hasAnyFlag(FLAG_STASHED_DEVICE_LOCKED);
        updateStateForFlag(FLAG_STASHED_DEVICE_LOCKED, isLocked);

        if (isLocked && !wasLocked && DisplayController.isTransientTaskbar(mActivity)) {
            // Stash the transient taskbar when locking the device. This improves the transition
            // to AoD (otherwise the taskbar stays a bit too long above the collapsing AoD scrim),
            // and ensures the taskar state is reset when unlocking the device afterwards.
            updateStateForFlag(FLAG_STASHED_IN_APP_AUTO, true);
        }

        // Only update FLAG_STASHED_IN_APP_IME when system gesture is not in progress.
        mIsImeShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SHOWING);