Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +1 −3 Original line number Diff line number Diff line Loading @@ -314,9 +314,7 @@ class DesktopTasksController( RecentsTransitionStateListener.stateToString(state), ) recentsTransitionState = state snapEventHandler.onOverviewAnimationStateChange( RecentsTransitionStateListener.isAnimating(state) ) snapEventHandler.onOverviewAnimationStateChange(state) } } ) Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +3 −2 Original line number Diff line number Diff line Loading @@ -951,8 +951,9 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, } @Override public void onOverviewAnimationStateChange(boolean running) { mDesktopTilingDecorViewModel.onOverviewAnimationStateChange(running); public void onOverviewAnimationStateChange( @RecentsTransitionStateListener.RecentsTransitionState int state) { mDesktopTilingDecorViewModel.onOverviewAnimationStateChange(state); } @Override Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModel.kt +5 −2 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.ReturnToDragStartAnimator import com.android.wm.shell.desktopmode.ToggleResizeDesktopTaskTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.shared.annotations.ShellBackgroundThread import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.transition.FocusTransitionObserver Loading Loading @@ -125,9 +126,11 @@ class DesktopTilingDecorViewModel( ?.moveTiledPairToFront(taskInfo.taskId, isFocusedOnDisplay = true) ?: false } fun onOverviewAnimationStateChange(isRunning: Boolean) { fun onOverviewAnimationStateChange( @RecentsTransitionStateListener.RecentsTransitionState state: Int ) { for (tilingHandler in tilingTransitionHandlerByDisplayId.valueIterator()) { tilingHandler.onOverviewAnimationStateChange(isRunning) tilingHandler.onOverviewAnimationStateChange(state) } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDividerWindowManager.kt +29 −4 Original line number Diff line number Diff line Loading @@ -203,11 +203,35 @@ class DesktopTilingDividerWindowManager( } /** Shows the divider bar. */ fun showDividerBar() { fun showDividerBar(isTilingVisibleAfterRecents: Boolean) { if (dividerShown) return val t = transactionSupplier.get() t.show(leash) t.apply() val dividerAnimatorT = transactionSupplier.get() val dividerAnimDuration = if (isTilingVisibleAfterRecents) { DIVIDER_FADE_IN_ALPHA_SLOW_DURATION } else { DIVIDER_FADE_IN_ALPHA_DURATION } val dividerAnimator = ValueAnimator.ofFloat(0f, 1f).apply { duration = dividerAnimDuration addUpdateListener { dividerAnimatorT.setAlpha(leash, animatedValue as Float).apply() } addListener( object : AnimatorListenerAdapter() { override fun onAnimationStart(animation: Animator) { dividerAnimatorT.setAlpha(leash, 0f).show(leash).apply() } override fun onAnimationEnd(animation: Animator) { dividerAnimatorT.setAlpha(leash, 1f).apply() dividerShown = true } } ) } dividerAnimator.start() dividerShown = true } Loading Loading @@ -327,5 +351,6 @@ class DesktopTilingDividerWindowManager( companion object { private const val DIVIDER_FADE_IN_ALPHA_DURATION = 300L private const val DIVIDER_FADE_IN_ALPHA_SLOW_DURATION = 900L } } libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt +13 −10 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController.SnapPosition import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.ReturnToDragStartAnimator import com.android.wm.shell.desktopmode.ToggleResizeDesktopTaskTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.shared.FocusTransitionListener import com.android.wm.shell.shared.annotations.ShellBackgroundThread import com.android.wm.shell.shared.annotations.ShellMainThread Loading Loading @@ -102,13 +103,14 @@ class DesktopTilingWindowDecoration( var leftTaskResizingHelper: AppResizingHelper? = null var rightTaskResizingHelper: AppResizingHelper? = null private var isTilingManagerInitialised = false @VisibleForTesting var isTilingManagerInitialised = false @VisibleForTesting var desktopTilingDividerWindowManager: DesktopTilingDividerWindowManager? = null private lateinit var dividerBounds: Rect private var isDarkMode = false private var isResizing = false private var isTilingFocused = false private var isTilingVisibleAfterRecents = false fun onAppTiled( taskInfo: RunningTaskInfo, Loading Loading @@ -435,7 +437,6 @@ class DesktopTilingWindowDecoration( ) { var leftTaskBroughtToFront = false var rightTaskBroughtToFront = false for (change in info.changes) { change.taskInfo?.let { if (it.isFullscreen || isMinimized(change.mode, info.type)) { Loading @@ -455,7 +456,8 @@ class DesktopTilingWindowDecoration( } if (leftTaskBroughtToFront && rightTaskBroughtToFront) { desktopTilingDividerWindowManager?.showDividerBar() desktopTilingDividerWindowManager?.showDividerBar(isTilingVisibleAfterRecents) isTilingVisibleAfterRecents = false } } Loading @@ -468,10 +470,7 @@ class DesktopTilingWindowDecoration( } private fun isMinimized(changeMode: Int, infoType: Int): Boolean { return (changeMode == TRANSIT_TO_BACK && (infoType == TRANSIT_MINIMIZE || infoType == TRANSIT_TO_BACK || infoType == TRANSIT_OPEN)) return changeMode == TRANSIT_TO_BACK && infoType == TRANSIT_MINIMIZE } private fun isEnteringPip(change: Change, transitType: Int): Boolean { Loading Loading @@ -688,12 +687,16 @@ class DesktopTilingWindowDecoration( appResizingHelper.dispose() } fun onOverviewAnimationStateChange(isRunning: Boolean) { fun onOverviewAnimationStateChange( @RecentsTransitionStateListener.RecentsTransitionState state: Int ) { if (!isTilingManagerInitialised) return if (isRunning) { if (RecentsTransitionStateListener.isRunning(state)) { isTilingVisibleAfterRecents = true desktopTilingDividerWindowManager?.hideDividerBar() } else if (allTiledTasksVisible()) { desktopTilingDividerWindowManager?.showDividerBar() desktopTilingDividerWindowManager?.showDividerBar(isTilingVisibleAfterRecents) isTilingVisibleAfterRecents = false } } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +1 −3 Original line number Diff line number Diff line Loading @@ -314,9 +314,7 @@ class DesktopTasksController( RecentsTransitionStateListener.stateToString(state), ) recentsTransitionState = state snapEventHandler.onOverviewAnimationStateChange( RecentsTransitionStateListener.isAnimating(state) ) snapEventHandler.onOverviewAnimationStateChange(state) } } ) Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +3 −2 Original line number Diff line number Diff line Loading @@ -951,8 +951,9 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, } @Override public void onOverviewAnimationStateChange(boolean running) { mDesktopTilingDecorViewModel.onOverviewAnimationStateChange(running); public void onOverviewAnimationStateChange( @RecentsTransitionStateListener.RecentsTransitionState int state) { mDesktopTilingDecorViewModel.onOverviewAnimationStateChange(state); } @Override Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDecorViewModel.kt +5 −2 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.ReturnToDragStartAnimator import com.android.wm.shell.desktopmode.ToggleResizeDesktopTaskTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.shared.annotations.ShellBackgroundThread import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.transition.FocusTransitionObserver Loading Loading @@ -125,9 +126,11 @@ class DesktopTilingDecorViewModel( ?.moveTiledPairToFront(taskInfo.taskId, isFocusedOnDisplay = true) ?: false } fun onOverviewAnimationStateChange(isRunning: Boolean) { fun onOverviewAnimationStateChange( @RecentsTransitionStateListener.RecentsTransitionState state: Int ) { for (tilingHandler in tilingTransitionHandlerByDisplayId.valueIterator()) { tilingHandler.onOverviewAnimationStateChange(isRunning) tilingHandler.onOverviewAnimationStateChange(state) } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingDividerWindowManager.kt +29 −4 Original line number Diff line number Diff line Loading @@ -203,11 +203,35 @@ class DesktopTilingDividerWindowManager( } /** Shows the divider bar. */ fun showDividerBar() { fun showDividerBar(isTilingVisibleAfterRecents: Boolean) { if (dividerShown) return val t = transactionSupplier.get() t.show(leash) t.apply() val dividerAnimatorT = transactionSupplier.get() val dividerAnimDuration = if (isTilingVisibleAfterRecents) { DIVIDER_FADE_IN_ALPHA_SLOW_DURATION } else { DIVIDER_FADE_IN_ALPHA_DURATION } val dividerAnimator = ValueAnimator.ofFloat(0f, 1f).apply { duration = dividerAnimDuration addUpdateListener { dividerAnimatorT.setAlpha(leash, animatedValue as Float).apply() } addListener( object : AnimatorListenerAdapter() { override fun onAnimationStart(animation: Animator) { dividerAnimatorT.setAlpha(leash, 0f).show(leash).apply() } override fun onAnimationEnd(animation: Animator) { dividerAnimatorT.setAlpha(leash, 1f).apply() dividerShown = true } } ) } dividerAnimator.start() dividerShown = true } Loading Loading @@ -327,5 +351,6 @@ class DesktopTilingDividerWindowManager( companion object { private const val DIVIDER_FADE_IN_ALPHA_DURATION = 300L private const val DIVIDER_FADE_IN_ALPHA_SLOW_DURATION = 900L } }
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/tiling/DesktopTilingWindowDecoration.kt +13 −10 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController.SnapPosition import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.ReturnToDragStartAnimator import com.android.wm.shell.desktopmode.ToggleResizeDesktopTaskTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.shared.FocusTransitionListener import com.android.wm.shell.shared.annotations.ShellBackgroundThread import com.android.wm.shell.shared.annotations.ShellMainThread Loading Loading @@ -102,13 +103,14 @@ class DesktopTilingWindowDecoration( var leftTaskResizingHelper: AppResizingHelper? = null var rightTaskResizingHelper: AppResizingHelper? = null private var isTilingManagerInitialised = false @VisibleForTesting var isTilingManagerInitialised = false @VisibleForTesting var desktopTilingDividerWindowManager: DesktopTilingDividerWindowManager? = null private lateinit var dividerBounds: Rect private var isDarkMode = false private var isResizing = false private var isTilingFocused = false private var isTilingVisibleAfterRecents = false fun onAppTiled( taskInfo: RunningTaskInfo, Loading Loading @@ -435,7 +437,6 @@ class DesktopTilingWindowDecoration( ) { var leftTaskBroughtToFront = false var rightTaskBroughtToFront = false for (change in info.changes) { change.taskInfo?.let { if (it.isFullscreen || isMinimized(change.mode, info.type)) { Loading @@ -455,7 +456,8 @@ class DesktopTilingWindowDecoration( } if (leftTaskBroughtToFront && rightTaskBroughtToFront) { desktopTilingDividerWindowManager?.showDividerBar() desktopTilingDividerWindowManager?.showDividerBar(isTilingVisibleAfterRecents) isTilingVisibleAfterRecents = false } } Loading @@ -468,10 +470,7 @@ class DesktopTilingWindowDecoration( } private fun isMinimized(changeMode: Int, infoType: Int): Boolean { return (changeMode == TRANSIT_TO_BACK && (infoType == TRANSIT_MINIMIZE || infoType == TRANSIT_TO_BACK || infoType == TRANSIT_OPEN)) return changeMode == TRANSIT_TO_BACK && infoType == TRANSIT_MINIMIZE } private fun isEnteringPip(change: Change, transitType: Int): Boolean { Loading Loading @@ -688,12 +687,16 @@ class DesktopTilingWindowDecoration( appResizingHelper.dispose() } fun onOverviewAnimationStateChange(isRunning: Boolean) { fun onOverviewAnimationStateChange( @RecentsTransitionStateListener.RecentsTransitionState state: Int ) { if (!isTilingManagerInitialised) return if (isRunning) { if (RecentsTransitionStateListener.isRunning(state)) { isTilingVisibleAfterRecents = true desktopTilingDividerWindowManager?.hideDividerBar() } else if (allTiledTasksVisible()) { desktopTilingDividerWindowManager?.showDividerBar() desktopTilingDividerWindowManager?.showDividerBar(isTilingVisibleAfterRecents) isTilingVisibleAfterRecents = false } } Loading