Merge "If we're going to overview we might need to unstash" into main
This commit is contained in:
@@ -58,6 +58,7 @@ import com.android.launcher3.anim.AnimatedFloat;
|
||||
import com.android.launcher3.anim.AnimatorListeners;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.statemanager.StateManager;
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.BubbleLauncherState;
|
||||
import com.android.launcher3.uioverrides.QuickstepLauncher;
|
||||
import com.android.launcher3.util.DisplayController;
|
||||
import com.android.launcher3.util.MultiPropertyFactory.MultiProperty;
|
||||
@@ -479,8 +480,12 @@ public class TaskbarLauncherStateController {
|
||||
boolean onOverview = mLauncherState == LauncherState.OVERVIEW;
|
||||
boolean hotseatIconsVisible = isInLauncher && mLauncherState.areElementsVisible(
|
||||
mLauncher, HOTSEAT_ICONS);
|
||||
controllers.bubbleStashController.setBubblesShowingOnHome(hotseatIconsVisible);
|
||||
controllers.bubbleStashController.setBubblesShowingOnOverview(onOverview);
|
||||
BubbleLauncherState state = onOverview
|
||||
? BubbleLauncherState.OVERVIEW
|
||||
: hotseatIconsVisible
|
||||
? BubbleLauncherState.HOME
|
||||
: BubbleLauncherState.IN_APP;
|
||||
controllers.bubbleStashController.setLauncherState(state);
|
||||
});
|
||||
|
||||
TaskbarStashController stashController = mControllers.taskbarStashController;
|
||||
|
||||
+17
-2
@@ -56,14 +56,29 @@ interface BubbleStashController {
|
||||
fun runAfterInit(action: Runnable)
|
||||
}
|
||||
|
||||
/** Launcher states bubbles cares about */
|
||||
enum class BubbleLauncherState {
|
||||
/* When launcher is in overview */
|
||||
OVERVIEW,
|
||||
/* When launcher is on home */
|
||||
HOME,
|
||||
/* We're in an app */
|
||||
IN_APP,
|
||||
}
|
||||
|
||||
/** The current launcher state */
|
||||
var launcherState: BubbleLauncherState
|
||||
|
||||
/** Whether bubble bar is currently stashed */
|
||||
val isStashed: Boolean
|
||||
|
||||
/** Whether launcher enters or exits the home page. */
|
||||
var isBubblesShowingOnHome: Boolean
|
||||
val isBubblesShowingOnHome: Boolean
|
||||
get() = launcherState == BubbleLauncherState.HOME
|
||||
|
||||
/** Whether launcher enters or exits the overview page. */
|
||||
var isBubblesShowingOnOverview: Boolean
|
||||
val isBubblesShowingOnOverview: Boolean
|
||||
get() = launcherState == BubbleLauncherState.OVERVIEW
|
||||
|
||||
/** Updated when sysui locked state changes, when locked, bubble bar is not shown. */
|
||||
var isSysuiLocked: Boolean
|
||||
|
||||
+12
-19
@@ -26,6 +26,7 @@ import com.android.launcher3.anim.AnimatedFloat
|
||||
import com.android.launcher3.taskbar.TaskbarInsetsController
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleBarViewController
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleStashedHandleViewController
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.BubbleLauncherState
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.Companion.BAR_STASH_DURATION
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.Companion.BAR_TRANSLATION_DURATION
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.ControllersAfterInitAction
|
||||
@@ -45,29 +46,21 @@ class PersistentBubbleStashController(
|
||||
private lateinit var bubbleBarScaleAnimator: AnimatedFloat
|
||||
private lateinit var controllersAfterInitAction: ControllersAfterInitAction
|
||||
|
||||
override var isBubblesShowingOnHome: Boolean = false
|
||||
set(onHome) {
|
||||
if (field == onHome) return
|
||||
field = onHome
|
||||
override var launcherState: BubbleLauncherState = BubbleLauncherState.IN_APP
|
||||
set(state) {
|
||||
if (field == state) return
|
||||
val transitionFromHome = field == BubbleLauncherState.HOME
|
||||
field = state
|
||||
if (!bubbleBarViewController.hasBubbles()) {
|
||||
// if there are no bubbles, there's nothing to show, so just return.
|
||||
return
|
||||
}
|
||||
if (onHome) {
|
||||
// When transition to home we should show collapse the bubble bar
|
||||
updateExpandedState(expand = false)
|
||||
}
|
||||
animateBubbleBarY()
|
||||
bubbleBarViewController.onBubbleBarConfigurationChanged(/* animate= */ true)
|
||||
}
|
||||
|
||||
override var isBubblesShowingOnOverview: Boolean = false
|
||||
set(onOverview) {
|
||||
if (field == onOverview) return
|
||||
field = onOverview
|
||||
if (!onOverview) {
|
||||
// When transition from overview we should show collapse the bubble bar
|
||||
updateExpandedState(expand = false)
|
||||
// If we're transitioning anywhere, bubble bar should be collapsed
|
||||
updateExpandedState(expand = false)
|
||||
if (transitionFromHome || field == BubbleLauncherState.HOME) {
|
||||
// If we're transitioning to or from home, animate the Y because we're in hotseat
|
||||
// on home but in persistent taskbar elsewhere so the position is different.
|
||||
animateBubbleBarY()
|
||||
}
|
||||
bubbleBarViewController.onBubbleBarConfigurationChanged(/* animate= */ true)
|
||||
}
|
||||
|
||||
+11
-20
@@ -36,6 +36,7 @@ import com.android.launcher3.taskbar.TaskbarStashController.TASKBAR_STASH_ALPHA_
|
||||
import com.android.launcher3.taskbar.TaskbarStashController.TRANSIENT_TASKBAR_STASH_ALPHA_DURATION
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleBarViewController
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleStashedHandleViewController
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.BubbleLauncherState
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.Companion.BAR_STASH_DURATION
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.Companion.BAR_TRANSLATION_DURATION
|
||||
import com.android.launcher3.taskbar.bubbles.stashing.BubbleStashController.ControllersAfterInitAction
|
||||
@@ -81,36 +82,26 @@ class TransientBubbleStashController(
|
||||
override var isStashed: Boolean = false
|
||||
@VisibleForTesting set
|
||||
|
||||
override var isBubblesShowingOnHome: Boolean = false
|
||||
set(onHome) {
|
||||
if (field == onHome) return
|
||||
field = onHome
|
||||
override var launcherState: BubbleLauncherState = BubbleLauncherState.IN_APP
|
||||
set(state) {
|
||||
if (field == state) return
|
||||
field = state
|
||||
if (!bubbleBarViewController.hasBubbles()) {
|
||||
// if there are no bubbles, there's nothing to show, so just return.
|
||||
return
|
||||
}
|
||||
if (onHome) {
|
||||
updateStashedAndExpandedState(stash = false, expand = false)
|
||||
// When transitioning from app to home we need to animate the bubble bar
|
||||
if (field == BubbleLauncherState.HOME) {
|
||||
// When to home we need to animate the bubble bar
|
||||
// here to align with hotseat center.
|
||||
animateBubbleBarYToHotseat()
|
||||
} else if (!bubbleBarViewController.isExpanded) {
|
||||
updateStashedAndExpandedState(stash = true, expand = false)
|
||||
}
|
||||
bubbleBarViewController.onBubbleBarConfigurationChanged(/* animate= */ true)
|
||||
}
|
||||
|
||||
override var isBubblesShowingOnOverview: Boolean = false
|
||||
set(onOverview) {
|
||||
if (field == onOverview) return
|
||||
field = onOverview
|
||||
if (onOverview) {
|
||||
} else if (field == BubbleLauncherState.OVERVIEW) {
|
||||
// When transitioning to overview we need to animate the bubble bar to align with
|
||||
// the taskbar bottom.
|
||||
animateBubbleBarYToTaskbar()
|
||||
} else {
|
||||
updateStashedAndExpandedState(stash = true, expand = false)
|
||||
}
|
||||
// Only stash if we're in an app, otherwise we're in home or overview where we should
|
||||
// be un-stashed
|
||||
updateStashedAndExpandedState(field == BubbleLauncherState.IN_APP, expand = false)
|
||||
bubbleBarViewController.onBubbleBarConfigurationChanged(/* animate= */ true)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user