Merge "Fix ATMS#focusTopTask set to PiP task even the activity is not focusable" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e10f63b4c8
@@ -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 */);
|
||||
|
||||
@@ -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;
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user