Loading quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +8 −15 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.launcher3.taskbar; import static com.android.app.animation.Interpolators.EMPHASIZED; import static com.android.app.animation.Interpolators.FINAL_FRAME; import static com.android.launcher3.Flags.enableScalingRevealHomeAnimation; import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_ALIGNMENT; import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_STASH; Loading @@ -31,11 +32,8 @@ import static com.android.launcher3.taskbar.bubbles.BubbleBarView.FADE_IN_ANIM_A import static com.android.launcher3.taskbar.bubbles.BubbleBarView.FADE_OUT_ANIM_POSITION_DURATION_MS; import static com.android.launcher3.util.FlagDebugUtils.appendFlag; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; import static com.android.quickstep.util.SystemUiFlagUtils.isTaskbarHidden; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_AWAKE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_COMMUNAL_HUB_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DREAMING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_WAKEFULNESS_MASK; import static com.android.systemui.shared.system.QuickStepContract.WAKEFULNESS_AWAKE; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; Loading Loading @@ -380,16 +378,7 @@ public class TaskbarLauncherStateController { updateStateForFlag(FLAG_DEVICE_LOCKED, SystemUiFlagUtils.isLocked(systemUiStateFlags)); // Taskbar is hidden whenever the device is dreaming. The dreaming state includes the // interactive dreams, AoD, screen off. Since the SYSUI_STATE_DEVICE_DREAMING only kicks in // when the device is asleep, the second condition extends ensures that the transition from // and to the WAKEFULNESS_ASLEEP state also hide the taskbar, and improves the taskbar // hide/reveal animation timings. The Taskbar can show when dreaming if the glanceable hub // is showing on top. boolean isTaskbarHidden = (hasAnyFlag(systemUiStateFlags, SYSUI_STATE_DEVICE_DREAMING) && !hasAnyFlag(systemUiStateFlags, SYSUI_STATE_COMMUNAL_HUB_SHOWING)) || (systemUiStateFlags & SYSUI_STATE_WAKEFULNESS_MASK) != WAKEFULNESS_AWAKE; updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden); updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden(systemUiStateFlags)); if (applyState) { applyState(); Loading Loading @@ -684,8 +673,12 @@ public class TaskbarLauncherStateController { + mIconAlignment.value + " -> " + toAlignment + ": " + duration); } if (hasAnyFlag(FLAG_TASKBAR_HIDDEN)) { iconAlignAnim.setInterpolator(FINAL_FRAME); } else { animatorSet.play(iconAlignAnim); } } Interpolator interpolator = enableScalingRevealHomeAnimation() ? ScalingWorkspaceRevealAnim.SCALE_INTERPOLATOR : EMPHASIZED; Loading quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +16 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.FlagDebugUtils.appendFlag; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; import static com.android.quickstep.util.SystemActionConstants.SYSTEM_ACTION_ID_TASKBAR; import static com.android.quickstep.util.SystemUiFlagUtils.isTaskbarHidden; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DIALOG_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SHOWING; Loading Loading @@ -104,6 +105,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // An internal no-op flag to determine whether we should delay the taskbar background animation private static final int FLAG_DELAY_TASKBAR_BG_TAG = 1 << 12; public static final int FLAG_STASHED_FOR_BUBBLES = 1 << 13; // show handle for stashed hotseat public static final int FLAG_TASKBAR_HIDDEN = 1 << 14; // taskbar hidden during dream, etc... // If any of these flags are enabled, isInApp should return true. private static final int FLAGS_IN_APP = FLAG_IN_APP | FLAG_IN_SETUP; Loading Loading @@ -215,6 +217,13 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba */ private static final int TRANSITION_UNSTASH_SUW_MANUAL = 3; /** * total duration of entering dream state animation, which we use as start delay to * applyState() when SYSUI_STATE_DEVICE_DREAMING flag is present. Keep this in sync with * DreamAnimationController.TOTAL_ANIM_DURATION. */ private static final int SKIP_TOTAL_DREAM_ANIM_DURATION = 450; @Retention(RetentionPolicy.SOURCE) @IntDef(value = { TRANSITION_DEFAULT, Loading Loading @@ -1123,8 +1132,14 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba startDelay = getTaskbarStashStartDelayForIme(); } if (isTaskbarHidden(systemUiStateFlags) && !hasAnyFlag(FLAG_TASKBAR_HIDDEN)) { updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden(systemUiStateFlags)); applyState(0, SKIP_TOTAL_DREAM_ANIM_DURATION); } else { updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden(systemUiStateFlags)); applyState(skipAnim ? 0 : animDuration, skipAnim ? 0 : startDelay); } } /** * We stash when IME or IME switcher is showing. Loading quickstep/src/com/android/quickstep/util/SystemUiFlagUtils.kt +16 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,22 @@ object SystemUiFlagUtils { !hasAnyFlag(flags, QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY) } /** * Taskbar is hidden whenever the device is dreaming. The dreaming state includes the * interactive dreams, AoD, screen off. Since the SYSUI_STATE_DEVICE_DREAMING only kicks in when * the device is asleep, the second condition extends ensures that the transition from and to * the WAKEFULNESS_ASLEEP state also hide the taskbar, and improves the taskbar hide/reveal * animation timings. The Taskbar can show when dreaming if the glanceable hub is showing on * top. */ @JvmStatic fun isTaskbarHidden(@SystemUiStateFlags flags: Long): Boolean { return ((hasAnyFlag(flags, QuickStepContract.SYSUI_STATE_DEVICE_DREAMING) && !hasAnyFlag(flags, QuickStepContract.SYSUI_STATE_COMMUNAL_HUB_SHOWING)) || (flags and QuickStepContract.SYSUI_STATE_WAKEFULNESS_MASK) != QuickStepContract.WAKEFULNESS_AWAKE) } private fun hasAnyFlag(@SystemUiStateFlags flags: Long, flagMask: Long): Boolean { return (flags and flagMask) != 0L } Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +8 −15 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.launcher3.taskbar; import static com.android.app.animation.Interpolators.EMPHASIZED; import static com.android.app.animation.Interpolators.FINAL_FRAME; import static com.android.launcher3.Flags.enableScalingRevealHomeAnimation; import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_ALIGNMENT; import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_STASH; Loading @@ -31,11 +32,8 @@ import static com.android.launcher3.taskbar.bubbles.BubbleBarView.FADE_IN_ANIM_A import static com.android.launcher3.taskbar.bubbles.BubbleBarView.FADE_OUT_ANIM_POSITION_DURATION_MS; import static com.android.launcher3.util.FlagDebugUtils.appendFlag; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; import static com.android.quickstep.util.SystemUiFlagUtils.isTaskbarHidden; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_AWAKE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_COMMUNAL_HUB_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DREAMING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_WAKEFULNESS_MASK; import static com.android.systemui.shared.system.QuickStepContract.WAKEFULNESS_AWAKE; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; Loading Loading @@ -380,16 +378,7 @@ public class TaskbarLauncherStateController { updateStateForFlag(FLAG_DEVICE_LOCKED, SystemUiFlagUtils.isLocked(systemUiStateFlags)); // Taskbar is hidden whenever the device is dreaming. The dreaming state includes the // interactive dreams, AoD, screen off. Since the SYSUI_STATE_DEVICE_DREAMING only kicks in // when the device is asleep, the second condition extends ensures that the transition from // and to the WAKEFULNESS_ASLEEP state also hide the taskbar, and improves the taskbar // hide/reveal animation timings. The Taskbar can show when dreaming if the glanceable hub // is showing on top. boolean isTaskbarHidden = (hasAnyFlag(systemUiStateFlags, SYSUI_STATE_DEVICE_DREAMING) && !hasAnyFlag(systemUiStateFlags, SYSUI_STATE_COMMUNAL_HUB_SHOWING)) || (systemUiStateFlags & SYSUI_STATE_WAKEFULNESS_MASK) != WAKEFULNESS_AWAKE; updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden); updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden(systemUiStateFlags)); if (applyState) { applyState(); Loading Loading @@ -684,8 +673,12 @@ public class TaskbarLauncherStateController { + mIconAlignment.value + " -> " + toAlignment + ": " + duration); } if (hasAnyFlag(FLAG_TASKBAR_HIDDEN)) { iconAlignAnim.setInterpolator(FINAL_FRAME); } else { animatorSet.play(iconAlignAnim); } } Interpolator interpolator = enableScalingRevealHomeAnimation() ? ScalingWorkspaceRevealAnim.SCALE_INTERPOLATOR : EMPHASIZED; Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +16 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.FlagDebugUtils.appendFlag; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; import static com.android.quickstep.util.SystemActionConstants.SYSTEM_ACTION_ID_TASKBAR; import static com.android.quickstep.util.SystemUiFlagUtils.isTaskbarHidden; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DIALOG_SHOWING; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IME_SHOWING; Loading Loading @@ -104,6 +105,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // An internal no-op flag to determine whether we should delay the taskbar background animation private static final int FLAG_DELAY_TASKBAR_BG_TAG = 1 << 12; public static final int FLAG_STASHED_FOR_BUBBLES = 1 << 13; // show handle for stashed hotseat public static final int FLAG_TASKBAR_HIDDEN = 1 << 14; // taskbar hidden during dream, etc... // If any of these flags are enabled, isInApp should return true. private static final int FLAGS_IN_APP = FLAG_IN_APP | FLAG_IN_SETUP; Loading Loading @@ -215,6 +217,13 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba */ private static final int TRANSITION_UNSTASH_SUW_MANUAL = 3; /** * total duration of entering dream state animation, which we use as start delay to * applyState() when SYSUI_STATE_DEVICE_DREAMING flag is present. Keep this in sync with * DreamAnimationController.TOTAL_ANIM_DURATION. */ private static final int SKIP_TOTAL_DREAM_ANIM_DURATION = 450; @Retention(RetentionPolicy.SOURCE) @IntDef(value = { TRANSITION_DEFAULT, Loading Loading @@ -1123,8 +1132,14 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba startDelay = getTaskbarStashStartDelayForIme(); } if (isTaskbarHidden(systemUiStateFlags) && !hasAnyFlag(FLAG_TASKBAR_HIDDEN)) { updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden(systemUiStateFlags)); applyState(0, SKIP_TOTAL_DREAM_ANIM_DURATION); } else { updateStateForFlag(FLAG_TASKBAR_HIDDEN, isTaskbarHidden(systemUiStateFlags)); applyState(skipAnim ? 0 : animDuration, skipAnim ? 0 : startDelay); } } /** * We stash when IME or IME switcher is showing. Loading
quickstep/src/com/android/quickstep/util/SystemUiFlagUtils.kt +16 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,22 @@ object SystemUiFlagUtils { !hasAnyFlag(flags, QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_GOING_AWAY) } /** * Taskbar is hidden whenever the device is dreaming. The dreaming state includes the * interactive dreams, AoD, screen off. Since the SYSUI_STATE_DEVICE_DREAMING only kicks in when * the device is asleep, the second condition extends ensures that the transition from and to * the WAKEFULNESS_ASLEEP state also hide the taskbar, and improves the taskbar hide/reveal * animation timings. The Taskbar can show when dreaming if the glanceable hub is showing on * top. */ @JvmStatic fun isTaskbarHidden(@SystemUiStateFlags flags: Long): Boolean { return ((hasAnyFlag(flags, QuickStepContract.SYSUI_STATE_DEVICE_DREAMING) && !hasAnyFlag(flags, QuickStepContract.SYSUI_STATE_COMMUNAL_HUB_SHOWING)) || (flags and QuickStepContract.SYSUI_STATE_WAKEFULNESS_MASK) != QuickStepContract.WAKEFULNESS_AWAKE) } private fun hasAnyFlag(@SystemUiStateFlags flags: Long, flagMask: Long): Boolean { return (flags and flagMask) != 0L } Loading