Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandler.kt +8 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.wm.shell.desktopmode.compatui import android.animation.ValueAnimator import android.app.ActivityManager.RunningTaskInfo import android.content.Context import android.os.IBinder import android.view.Display.DEFAULT_DISPLAY Loading @@ -30,6 +31,7 @@ import com.android.internal.protolog.ProtoLog import com.android.wm.shell.common.ShellExecutor import com.android.wm.shell.compatui.isTopActivityExemptFromDesktopWindowing import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.DesktopWallpaperActivity import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE import com.android.wm.shell.shared.TransitionUtil.isClosingMode import com.android.wm.shell.shared.TransitionUtil.isClosingType Loading Loading @@ -128,7 +130,7 @@ class SystemModalsTransitionHandler( return@find false } val taskInfo = change.taskInfo ?: return@find false return@find isTopActivityExemptFromDesktopWindowing(context, taskInfo) return@find isSystemModal(context, taskInfo) } private fun getClosingSystemModal(info: TransitionInfo): TransitionInfo.Change? = Loading @@ -137,10 +139,14 @@ class SystemModalsTransitionHandler( return@find false } val taskInfo = change.taskInfo ?: return@find false return@find isTopActivityExemptFromDesktopWindowing(context, taskInfo) || return@find isSystemModal(context, taskInfo) || showingSystemModalsIds.contains(taskInfo.taskId) } private fun isSystemModal(context: Context, taskInfo: RunningTaskInfo): Boolean = !DesktopWallpaperActivity.isWallpaperTask(taskInfo) && isTopActivityExemptFromDesktopWindowing(context, taskInfo) private fun createAlphaAnimator( transaction: SurfaceControl.Transaction, leash: SurfaceControl, Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTestHelpers.kt +8 −4 Original line number Diff line number Diff line Loading @@ -74,10 +74,14 @@ object DesktopTestHelpers { .setLastActiveTime(100) .build() /** * Create a new System Modal task builder, i.e. a builder for a task with only transparent * activities. */ fun createSystemModalTaskBuilder(displayId: Int = DEFAULT_DISPLAY): TestRunningTaskInfoBuilder = createFullscreenTaskBuilder(displayId).setActivityStackTransparent(true).setNumActivities(1) /** Create a new System Modal task, i.e. a task with only transparent activities. */ fun createSystemModalTask(displayId: Int = DEFAULT_DISPLAY): RunningTaskInfo = createFullscreenTaskBuilder(displayId) .setActivityStackTransparent(true) .setNumActivities(1) .build() createSystemModalTaskBuilder(displayId).build() } libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt +16 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.wm.shell.desktopmode.compatui import android.content.Intent import android.os.Binder import android.testing.AndroidTestingRunner import android.view.SurfaceControl Loading @@ -29,7 +30,9 @@ import com.android.wm.shell.desktopmode.DesktopRepository import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFullscreenTask import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFullscreenTaskBuilder import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTask import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTaskBuilder import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.DesktopWallpaperActivity import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.transition.TransitionInfoBuilder import com.android.wm.shell.transition.Transitions Loading Loading @@ -115,6 +118,19 @@ class SystemModalsTransitionHandlerTest : ShellTestCase() { assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isFalse() } @Test fun startAnimation_launchingWallpaperTask_doesNotAnimate() { val wallpaperTask = createSystemModalTaskBuilder().setBaseIntent(createWallpaperIntent()).build() val info = TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_OPEN, wallpaperTask).build() assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isFalse() } private fun createWallpaperIntent() = Intent().apply { setComponent(DesktopWallpaperActivity.wallpaperActivityComponent) } @Test fun startAnimation_launchingFullscreenTask_doesNotAnimate() { val info = Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandler.kt +8 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.wm.shell.desktopmode.compatui import android.animation.ValueAnimator import android.app.ActivityManager.RunningTaskInfo import android.content.Context import android.os.IBinder import android.view.Display.DEFAULT_DISPLAY Loading @@ -30,6 +31,7 @@ import com.android.internal.protolog.ProtoLog import com.android.wm.shell.common.ShellExecutor import com.android.wm.shell.compatui.isTopActivityExemptFromDesktopWindowing import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.DesktopWallpaperActivity import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE import com.android.wm.shell.shared.TransitionUtil.isClosingMode import com.android.wm.shell.shared.TransitionUtil.isClosingType Loading Loading @@ -128,7 +130,7 @@ class SystemModalsTransitionHandler( return@find false } val taskInfo = change.taskInfo ?: return@find false return@find isTopActivityExemptFromDesktopWindowing(context, taskInfo) return@find isSystemModal(context, taskInfo) } private fun getClosingSystemModal(info: TransitionInfo): TransitionInfo.Change? = Loading @@ -137,10 +139,14 @@ class SystemModalsTransitionHandler( return@find false } val taskInfo = change.taskInfo ?: return@find false return@find isTopActivityExemptFromDesktopWindowing(context, taskInfo) || return@find isSystemModal(context, taskInfo) || showingSystemModalsIds.contains(taskInfo.taskId) } private fun isSystemModal(context: Context, taskInfo: RunningTaskInfo): Boolean = !DesktopWallpaperActivity.isWallpaperTask(taskInfo) && isTopActivityExemptFromDesktopWindowing(context, taskInfo) private fun createAlphaAnimator( transaction: SurfaceControl.Transaction, leash: SurfaceControl, Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTestHelpers.kt +8 −4 Original line number Diff line number Diff line Loading @@ -74,10 +74,14 @@ object DesktopTestHelpers { .setLastActiveTime(100) .build() /** * Create a new System Modal task builder, i.e. a builder for a task with only transparent * activities. */ fun createSystemModalTaskBuilder(displayId: Int = DEFAULT_DISPLAY): TestRunningTaskInfoBuilder = createFullscreenTaskBuilder(displayId).setActivityStackTransparent(true).setNumActivities(1) /** Create a new System Modal task, i.e. a task with only transparent activities. */ fun createSystemModalTask(displayId: Int = DEFAULT_DISPLAY): RunningTaskInfo = createFullscreenTaskBuilder(displayId) .setActivityStackTransparent(true) .setNumActivities(1) .build() createSystemModalTaskBuilder(displayId).build() }
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/compatui/SystemModalsTransitionHandlerTest.kt +16 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.wm.shell.desktopmode.compatui import android.content.Intent import android.os.Binder import android.testing.AndroidTestingRunner import android.view.SurfaceControl Loading @@ -29,7 +30,9 @@ import com.android.wm.shell.desktopmode.DesktopRepository import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFullscreenTask import com.android.wm.shell.desktopmode.DesktopTestHelpers.createFullscreenTaskBuilder import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTask import com.android.wm.shell.desktopmode.DesktopTestHelpers.createSystemModalTaskBuilder import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.desktopmode.DesktopWallpaperActivity import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.transition.TransitionInfoBuilder import com.android.wm.shell.transition.Transitions Loading Loading @@ -115,6 +118,19 @@ class SystemModalsTransitionHandlerTest : ShellTestCase() { assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isFalse() } @Test fun startAnimation_launchingWallpaperTask_doesNotAnimate() { val wallpaperTask = createSystemModalTaskBuilder().setBaseIntent(createWallpaperIntent()).build() val info = TransitionInfoBuilder(TRANSIT_OPEN).addChange(TRANSIT_OPEN, wallpaperTask).build() assertThat(transitionHandler.startAnimation(Binder(), info, startT, finishT) {}).isFalse() } private fun createWallpaperIntent() = Intent().apply { setComponent(DesktopWallpaperActivity.wallpaperActivityComponent) } @Test fun startAnimation_launchingFullscreenTask_doesNotAnimate() { val info = Loading