Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -2012,7 +2012,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { final DisplayContent dc = mRootWindowContainer.getDisplayContent(displayId); if (dc == null) return; final Task task = dc.getTask((t) -> t.isLeafTask() && t.isFocusable(), final Task task = dc.getTask((t) -> t.isLeafTask() && t.isTopActivityFocusable(), true /* traverseTopToBottom */); if (task == null) return; setFocusedTask(task.mTaskId, null /* touchedActivity */); Loading services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java +15 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE; import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; Loading Loading @@ -1059,4 +1060,18 @@ public class ActivityTaskManagerServiceTests extends WindowTestsBase { assertEquals(0, mAtm.getActivityInterceptorCallbacks().size()); mAtm.mInternal.unregisterActivityStartInterceptor(SYSTEM_FIRST_ORDERED_ID); } @Test public void testFocusTopTask() { final ActivityRecord homeActivity = new ActivityBuilder(mAtm) .setTask(mRootWindowContainer.getDefaultTaskDisplayArea().getOrCreateRootHomeTask()) .build(); final Task pinnedTask = new TaskBuilder(mSupervisor).setCreateActivity(true) .setWindowingMode(WINDOWING_MODE_PINNED) .build(); mAtm.focusTopTask(mDisplayContent.mDisplayId); assertTrue(homeActivity.getTask().isFocused()); assertFalse(pinnedTask.isFocused()); } } Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -2012,7 +2012,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { final DisplayContent dc = mRootWindowContainer.getDisplayContent(displayId); if (dc == null) return; final Task task = dc.getTask((t) -> t.isLeafTask() && t.isFocusable(), final Task task = dc.getTask((t) -> t.isLeafTask() && t.isTopActivityFocusable(), true /* traverseTopToBottom */); if (task == null) return; setFocusedTask(task.mTaskId, null /* touchedActivity */); Loading
services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java +15 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE; import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; Loading Loading @@ -1059,4 +1060,18 @@ public class ActivityTaskManagerServiceTests extends WindowTestsBase { assertEquals(0, mAtm.getActivityInterceptorCallbacks().size()); mAtm.mInternal.unregisterActivityStartInterceptor(SYSTEM_FIRST_ORDERED_ID); } @Test public void testFocusTopTask() { final ActivityRecord homeActivity = new ActivityBuilder(mAtm) .setTask(mRootWindowContainer.getDefaultTaskDisplayArea().getOrCreateRootHomeTask()) .build(); final Task pinnedTask = new TaskBuilder(mSupervisor).setCreateActivity(true) .setWindowingMode(WINDOWING_MODE_PINNED) .build(); mAtm.focusTopTask(mDisplayContent.mDisplayId); assertTrue(homeActivity.getTask().isFocused()); assertFalse(pinnedTask.isFocused()); } }