diff options
12 files changed, 144 insertions, 92 deletions
diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java index 9c6f509c93c1..c4a6decd982f 100644 --- a/core/java/android/app/TaskInfo.java +++ b/core/java/android/app/TaskInfo.java @@ -296,22 +296,22 @@ public class TaskInfo { public boolean isVisibleRequested; /** - * Whether this task is sleeping due to sleeping display. + * Whether the top activity is to be displayed. See {@link android.R.attr#windowNoDisplay}. * @hide */ - public boolean isSleeping; + public boolean isTopActivityNoDisplay; /** - * Whether the top activity fillsParent() is false + * Whether this task is sleeping due to sleeping display. * @hide */ - public boolean isTopActivityTransparent; + public boolean isSleeping; /** - * Whether the top activity has specified style floating. + * Whether the top activity fillsParent() is false * @hide */ - public boolean isTopActivityStyleFloating; + public boolean isTopActivityTransparent; /** * The last non-fullscreen bounds the task was launched in or resized to. @@ -482,12 +482,12 @@ public class TaskInfo { && isFocused == that.isFocused && isVisible == that.isVisible && isVisibleRequested == that.isVisibleRequested + && isTopActivityNoDisplay == that.isTopActivityNoDisplay && isSleeping == that.isSleeping && Objects.equals(mTopActivityLocusId, that.mTopActivityLocusId) && parentTaskId == that.parentTaskId && Objects.equals(topActivity, that.topActivity) && isTopActivityTransparent == that.isTopActivityTransparent - && isTopActivityStyleFloating == that.isTopActivityStyleFloating && Objects.equals(lastNonFullscreenBounds, that.lastNonFullscreenBounds) && Objects.equals(capturedLink, that.capturedLink) && capturedLinkTimestamp == that.capturedLinkTimestamp @@ -561,11 +561,11 @@ public class TaskInfo { isFocused = source.readBoolean(); isVisible = source.readBoolean(); isVisibleRequested = source.readBoolean(); + isTopActivityNoDisplay = source.readBoolean(); isSleeping = source.readBoolean(); mTopActivityLocusId = source.readTypedObject(LocusId.CREATOR); displayAreaFeatureId = source.readInt(); isTopActivityTransparent = source.readBoolean(); - isTopActivityStyleFloating = source.readBoolean(); lastNonFullscreenBounds = source.readTypedObject(Rect.CREATOR); capturedLink = source.readTypedObject(Uri.CREATOR); capturedLinkTimestamp = source.readLong(); @@ -616,11 +616,11 @@ public class TaskInfo { dest.writeBoolean(isFocused); dest.writeBoolean(isVisible); dest.writeBoolean(isVisibleRequested); + dest.writeBoolean(isTopActivityNoDisplay); dest.writeBoolean(isSleeping); dest.writeTypedObject(mTopActivityLocusId, flags); dest.writeInt(displayAreaFeatureId); dest.writeBoolean(isTopActivityTransparent); - dest.writeBoolean(isTopActivityStyleFloating); dest.writeTypedObject(lastNonFullscreenBounds, flags); dest.writeTypedObject(capturedLink, flags); dest.writeLong(capturedLinkTimestamp); @@ -661,11 +661,11 @@ public class TaskInfo { + " isFocused=" + isFocused + " isVisible=" + isVisible + " isVisibleRequested=" + isVisibleRequested + + " isTopActivityNoDisplay=" + isTopActivityNoDisplay + " isSleeping=" + isSleeping + " locusId=" + mTopActivityLocusId + " displayAreaFeatureId=" + displayAreaFeatureId + " isTopActivityTransparent=" + isTopActivityTransparent - + " isTopActivityStyleFloating=" + isTopActivityStyleFloating + " lastNonFullscreenBounds=" + lastNonFullscreenBounds + " capturedLink=" + capturedLink + " capturedLinkTimestamp=" + capturedLinkTimestamp diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/AppCompatUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/AppCompatUtils.kt index d1b2347a4411..62d5098f2a27 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/AppCompatUtils.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/AppCompatUtils.kt @@ -23,9 +23,15 @@ import android.content.Context import com.android.internal.R // TODO(b/347289970): Consider replacing with API +/** + * If the top activity should be exempt from desktop windowing and forced back to fullscreen. + * Currently includes all system ui activities and modal dialogs. However is the top activity is not + * being displayed, regardless of its configuration, we will not exempt it as to remain in the + * desktop windowing environment. + */ fun isTopActivityExemptFromDesktopWindowing(context: Context, task: TaskInfo) = - isSystemUiTask(context, task) || (task.isTopActivityTransparent && task.numActivities == 1 - && !task.isTopActivityStyleFloating) + (isSystemUiTask(context, task) || (task.isTopActivityTransparent && task.numActivities == 1)) + && !task.isTopActivityNoDisplay private fun isSystemUiTask(context: Context, task: TaskInfo): Boolean { val sysUiPackageName: String = diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/AppCompatUtilsTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/AppCompatUtilsTest.kt index ecaf970ae389..803e5d4442a9 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/AppCompatUtilsTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/AppCompatUtilsTest.kt @@ -43,38 +43,30 @@ class AppCompatUtilsTest : ShellTestCase() { .apply { isTopActivityTransparent = true numActivities = 1 - })) - assertFalse(isTopActivityExemptFromDesktopWindowing(mContext, - createFreeformTask(/* displayId */ 0) - .apply { - isTopActivityTransparent = true - numActivities = 0 + isTopActivityNoDisplay = false })) } @Test - fun testIsTopActivityExemptFromDesktopWindowing_singleTopActivity() { - assertTrue(isTopActivityExemptFromDesktopWindowing(mContext, - createFreeformTask(/* displayId */ 0) - .apply { - isTopActivityTransparent = true - numActivities = 1 - })) + fun testIsTopActivityExemptFromDesktopWindowing_topActivityTransparent_multipleActivities() { assertFalse(isTopActivityExemptFromDesktopWindowing(mContext, createFreeformTask(/* displayId */ 0) - .apply { - isTopActivityTransparent = false - numActivities = 1 - })) + .apply { + isTopActivityTransparent = true + numActivities = 2 + isTopActivityNoDisplay = false + })) } @Test - fun testIsTopActivityExemptFromDesktopWindowing__topActivityStyleFloating() { + fun testIsTopActivityExemptFromDesktopWindowing_topActivityTransparent_notDisplayed() { assertFalse(isTopActivityExemptFromDesktopWindowing(mContext, createFreeformTask(/* displayId */ 0) - .apply { - isTopActivityStyleFloating = true - })) + .apply { + isTopActivityTransparent = true + numActivities = 1 + isTopActivityNoDisplay = true + })) } @Test @@ -85,6 +77,19 @@ class AppCompatUtilsTest : ShellTestCase() { createFreeformTask(/* displayId */ 0) .apply { baseActivity = baseComponent + isTopActivityNoDisplay = false })) } + + @Test + fun testIsTopActivityExemptFromDesktopWindowing_systemUiTask_notDisplayed() { + val systemUIPackageName = context.resources.getString(R.string.config_systemUi) + val baseComponent = ComponentName(systemUIPackageName, /* class */ "") + assertFalse(isTopActivityExemptFromDesktopWindowing(mContext, + createFreeformTask(/* displayId */ 0) + .apply { + baseActivity = baseComponent + isTopActivityNoDisplay = true + })) + } } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index b157d557c1d8..315a46fcbd7b 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -1123,11 +1123,11 @@ class DesktopTasksControllerTest : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun moveRunningTaskToDesktop_topActivityTranslucentWithStyleFloating_taskIsMovedToDesktop() { + fun moveRunningTaskToDesktop_topActivityTranslucentWithoutDisplay_taskIsMovedToDesktop() { val task = setUpFullscreenTask().apply { isTopActivityTransparent = true - isTopActivityStyleFloating = true + isTopActivityNoDisplay = true numActivities = 1 } @@ -1139,11 +1139,11 @@ class DesktopTasksControllerTest : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun moveRunningTaskToDesktop_topActivityTranslucentWithoutStyleFloating_doesNothing() { + fun moveRunningTaskToDesktop_topActivityTranslucentWithDisplay_doesNothing() { val task = setUpFullscreenTask().apply { isTopActivityTransparent = true - isTopActivityStyleFloating = false + isTopActivityNoDisplay = false numActivities = 1 } @@ -1153,20 +1153,41 @@ class DesktopTasksControllerTest : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun moveRunningTaskToDesktop_systemUIActivity_doesNothing() { - val task = setUpFullscreenTask() - + fun moveRunningTaskToDesktop_systemUIActivityWithDisplay_doesNothing() { // Set task as systemUI package val systemUIPackageName = context.resources.getString( com.android.internal.R.string.config_systemUi) val baseComponent = ComponentName(systemUIPackageName, /* class */ "") - task.baseActivity = baseComponent + val task = + setUpFullscreenTask().apply { + baseActivity = baseComponent + isTopActivityNoDisplay = false + } controller.moveRunningTaskToDesktop(task, transitionSource = UNKNOWN) verifyEnterDesktopWCTNotExecuted() } @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) + fun moveRunningTaskToDesktop_systemUIActivityWithoutDisplay_doesNothing() { + // Set task as systemUI package + val systemUIPackageName = context.resources.getString( + com.android.internal.R.string.config_systemUi) + val baseComponent = ComponentName(systemUIPackageName, /* class */ "") + val task = + setUpFullscreenTask().apply { + baseActivity = baseComponent + isTopActivityNoDisplay = true + } + + controller.moveRunningTaskToDesktop(task, transitionSource = UNKNOWN) + + val wct = getLatestEnterDesktopWct() + assertThat(wct.changes[task.token.asBinder()]?.windowingMode).isEqualTo(WINDOWING_MODE_FREEFORM) + } + + @Test fun moveRunningTaskToDesktop_deviceSupported_taskIsMovedToDesktop() { val task = setUpFullscreenTask() @@ -2223,14 +2244,14 @@ class DesktopTasksControllerTest : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun handleRequest_topActivityTransparentWithStyleFloating_returnSwitchToFreeformWCT() { + fun handleRequest_topActivityTransparentWithoutDisplay_returnSwitchToFreeformWCT() { val freeformTask = setUpFreeformTask() markTaskVisible(freeformTask) val task = setUpFullscreenTask().apply { isTopActivityTransparent = true - isTopActivityStyleFloating = true + isTopActivityNoDisplay = true numActivities = 1 } @@ -2241,11 +2262,14 @@ class DesktopTasksControllerTest : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun handleRequest_topActivityTransparentWithoutStyleFloating_returnSwitchToFullscreenWCT() { + fun handleRequest_topActivityTransparentWithDisplay_returnSwitchToFullscreenWCT() { + val freeformTask = setUpFreeformTask() + markTaskVisible(freeformTask) + val task = setUpFreeformTask().apply { isTopActivityTransparent = true - isTopActivityStyleFloating = false + isTopActivityNoDisplay = false numActivities = 1 } @@ -2256,14 +2280,19 @@ class DesktopTasksControllerTest : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun handleRequest_systemUIActivity_returnSwitchToFullscreenWCT() { - val task = setUpFreeformTask() + fun handleRequest_systemUIActivityWithDisplay_returnSwitchToFullscreenWCT() { + val freeformTask = setUpFreeformTask() + markTaskVisible(freeformTask) // Set task as systemUI package val systemUIPackageName = context.resources.getString( com.android.internal.R.string.config_systemUi) val baseComponent = ComponentName(systemUIPackageName, /* class */ "") - task.baseActivity = baseComponent + val task = + setUpFreeformTask().apply { + baseActivity = baseComponent + isTopActivityNoDisplay = false + } val result = controller.handleRequest(Binder(), createTransition(task)) assertThat(result?.changes?.get(task.token.asBinder())?.windowingMode) @@ -2271,6 +2300,27 @@ class DesktopTasksControllerTest : ShellTestCase() { } @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) + fun handleRequest_systemUIActivityWithoutDisplay_returnSwitchToFreeformWCT() { + val freeformTask = setUpFreeformTask() + markTaskVisible(freeformTask) + + // Set task as systemUI package + val systemUIPackageName = context.resources.getString( + com.android.internal.R.string.config_systemUi) + val baseComponent = ComponentName(systemUIPackageName, /* class */ "") + val task = + setUpFullscreenTask().apply { + baseActivity = baseComponent + isTopActivityNoDisplay = true + } + + val result = controller.handleRequest(Binder(), createTransition(task)) + assertThat(result?.changes?.get(task.token.asBinder())?.windowingMode) + .isEqualTo(WINDOWING_MODE_FREEFORM) + } + + @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY,) fun handleRequest_backTransition_singleTaskNoToken_noWallpaper_doesNotHandle() { val task = setUpFreeformTask() diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt index 03aab18d8d87..56267174ba75 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt @@ -478,25 +478,10 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun testDecorationIsCreatedForTopTranslucentActivitiesWithStyleFloating() { + fun testDecorationIsNotCreatedForTopTranslucentActivities() { val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN).apply { isTopActivityTransparent = true - isTopActivityStyleFloating = true - numActivities = 1 - } - doReturn(true).`when` { DesktopModeStatus.canEnterDesktopMode(any()) } - setUpMockDecorationsForTasks(task) - - onTaskOpening(task) - assertTrue(windowDecorByTaskIdSpy.contains(task.taskId)) - } - - @Test - @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) - fun testDecorationIsNotCreatedForTopTranslucentActivitiesWithoutStyleFloating() { - val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN).apply { - isTopActivityTransparent = true - isTopActivityStyleFloating = false + isTopActivityNoDisplay = false numActivities = 1 } onTaskOpening(task) @@ -507,13 +492,14 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODALS_POLICY) fun testDecorationIsNotCreatedForSystemUIActivities() { - val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN) - // Set task as systemUI package val systemUIPackageName = context.resources.getString( com.android.internal.R.string.config_systemUi) val baseComponent = ComponentName(systemUIPackageName, /* class */ "") - task.baseActivity = baseComponent + val task = createTask(windowingMode = WINDOWING_MODE_FULLSCREEN).apply { + baseActivity = baseComponent + isTopActivityNoDisplay = false + } onTaskOpening(task) diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 69643002750b..52a5cec60314 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -707,9 +707,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A */ private boolean mOccludesParent; - /** Whether the activity have style floating */ - private boolean mStyleFloating; - /** * Unlike {@link #mOccludesParent} which can be changed at runtime. This is a static attribute * from the style of activity. Because we don't want {@link WindowContainer#getOrientation()} @@ -791,10 +788,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // and therefore #isLetterboxedForFixedOrientationAndAspectRatio returns false. private boolean mIsEligibleForFixedOrientationLetterbox; - // activity is not displayed? - // TODO: rename to mNoDisplay - @VisibleForTesting - boolean noDisplay; + /** + * Whether the activity is to be displayed. See {@link android.R.attr#windowNoDisplay}. + */ + private boolean mNoDisplay; final boolean mShowForAllUsers; // TODO: Make this final int mTargetSdk; @@ -1178,7 +1175,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A pw.print(" inHistory="); pw.print(inHistory); pw.print(" idle="); pw.println(idle); pw.print(prefix); pw.print("occludesParent="); pw.print(occludesParent()); - pw.print(" noDisplay="); pw.print(noDisplay); + pw.print(" mNoDisplay="); pw.print(mNoDisplay); pw.print(" immersive="); pw.print(immersive); pw.print(" launchMode="); pw.println(launchMode); pw.print(prefix); pw.print("mActivityType="); @@ -2011,20 +2008,19 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (ent != null) { final boolean styleTranslucent = ent.array.getBoolean( com.android.internal.R.styleable.Window_windowIsTranslucent, false); - mStyleFloating = ent.array.getBoolean( + final boolean styleFloating = ent.array.getBoolean( com.android.internal.R.styleable.Window_windowIsFloating, false); - mOccludesParent = !(styleTranslucent || mStyleFloating) + mOccludesParent = !(styleTranslucent || styleFloating) // This style is propagated to the main window attributes with // FLAG_SHOW_WALLPAPER from PhoneWindow#generateLayout. || ent.array.getBoolean(R.styleable.Window_windowShowWallpaper, false); mStyleFillsParent = mOccludesParent; - noDisplay = ent.array.getBoolean(R.styleable.Window_windowNoDisplay, false); + mNoDisplay = ent.array.getBoolean(R.styleable.Window_windowNoDisplay, false); mOptOutEdgeToEdge = ent.array.getBoolean( R.styleable.Window_windowOptOutEdgeToEdgeEnforcement, false); } else { - mStyleFloating = false; mStyleFillsParent = mOccludesParent = true; - noDisplay = false; + mNoDisplay = false; mOptOutEdgeToEdge = false; } @@ -3091,8 +3087,16 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return occludesParent(true /* includingFinishing */); } - boolean isStyleFloating() { - return mStyleFloating; + boolean isNoDisplay() { + return mNoDisplay; + } + + /** + * Exposed only for testing and should not be used to modify value of {@link #mNoDisplay}. + */ + @VisibleForTesting + void setIsNoDisplay(boolean isNoDisplay) { + mNoDisplay = isNoDisplay; } /** Returns true if this activity is not finishing, is opaque and fills the entire space of @@ -6069,7 +6073,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A void notifyUnknownVisibilityLaunchedForKeyguardTransition() { // No display activities never add a window, so there is no point in waiting them for // relayout. - if (noDisplay || !isKeyguardLocked()) { + if (mNoDisplay || !isKeyguardLocked()) { return; } diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index f4b18ce989b7..2e2ca147dcdd 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -2349,7 +2349,8 @@ class ActivityStarter { // When there is a reused activity and the current result is a trampoline activity, // set the reused activity as the result. if (mLastStartActivityRecord != null - && (mLastStartActivityRecord.finishing || mLastStartActivityRecord.noDisplay)) { + && (mLastStartActivityRecord.finishing + || mLastStartActivityRecord.isNoDisplay())) { mLastStartActivityRecord = targetTaskTop; } diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index 30b53d1dbab4..6184949d34f9 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java @@ -2478,7 +2478,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { /** Notifies that the top activity of the task is forced to be resizeable. */ private void handleForcedResizableTaskIfNeeded(Task task, int reason) { final ActivityRecord topActivity = task.getTopNonFinishingActivity(); - if (topActivity == null || topActivity.noDisplay + if (topActivity == null || topActivity.isNoDisplay() || !topActivity.canForceResizeNonResizable(task.getWindowingMode())) { return; } diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 7473accb8eee..352dc528f815 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3432,9 +3432,9 @@ class Task extends TaskFragment { info.isFocused = isFocused(); info.isVisible = hasVisibleChildren(); info.isVisibleRequested = isVisibleRequested(); + info.isTopActivityNoDisplay = top != null && top.isNoDisplay(); info.isSleeping = shouldSleepActivities(); info.isTopActivityTransparent = top != null && !top.fillsParent(); - info.isTopActivityStyleFloating = top != null && top.isStyleFloating(); info.lastNonFullscreenBounds = topTask.mLastNonFullscreenBounds; final WindowState windowState = top != null ? top.findMainWindow() : null; info.requestedVisibleTypes = (windowState != null && Flags.enableFullyImmersiveInDesktop()) @@ -4724,7 +4724,7 @@ class Task extends TaskFragment { } } if (likelyResolvedMode != WINDOWING_MODE_FULLSCREEN - && topActivity != null && !topActivity.noDisplay + && topActivity != null && !topActivity.isNoDisplay() && topActivity.canForceResizeNonResizable(likelyResolvedMode)) { // Inform the user that they are starting an app that may not work correctly in // multi-window mode. diff --git a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java index 5c9a84db002a..c39671d76929 100644 --- a/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java +++ b/services/core/java/com/android/server/wm/TaskLaunchParamsModifier.java @@ -449,7 +449,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier { // If the source activity is a no-display activity, pass on the launch display area token // from source activity as currently preferred. - if (taskDisplayArea == null && source != null && source.noDisplay) { + if (taskDisplayArea == null && source != null && source.isNoDisplay()) { taskDisplayArea = source.mHandoverTaskDisplayArea; if (taskDisplayArea != null) { if (DEBUG) appendLog("display-area-from-no-display-source=" + taskDisplayArea); diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java index d4ba3b25178d..9e7575f1c644 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java @@ -538,7 +538,7 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { public void testConsecutiveLaunchNewTask() { final IBinder launchCookie = mock(IBinder.class); final WindowContainerToken launchRootTask = mock(WindowContainerToken.class); - mTrampolineActivity.noDisplay = true; + mTrampolineActivity.setIsNoDisplay(true); mTrampolineActivity.mLaunchCookie = launchCookie; mTrampolineActivity.mLaunchRootTask = launchRootTask; onActivityLaunched(mTrampolineActivity); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java index 3c921c612705..4568c77204a5 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskLaunchParamsModifierTests.java @@ -249,7 +249,7 @@ public class TaskLaunchParamsModifierTests extends ActivityRecord reusableActivity = createSourceActivity(fullscreenDisplay); ActivityRecord source = createSourceActivity(freeformDisplay); source.mHandoverLaunchDisplayId = freeformDisplay.mDisplayId; - source.noDisplay = true; + source.setIsNoDisplay(true); assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder() @@ -272,7 +272,7 @@ public class TaskLaunchParamsModifierTests extends ActivityRecord reusableActivity = createSourceActivity(fullscreenDisplay); ActivityRecord source = createSourceActivity(freeformDisplay); source.mHandoverTaskDisplayArea = freeformDisplay.getDefaultTaskDisplayArea(); - source.noDisplay = true; + source.setIsNoDisplay(true); assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder() |