Merge "Fix ATMS#focusTopTask set to PiP task even the activity is not focusable" into udc-dev am: e10f63b4c8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23493105 Change-Id: I2d83b40b881e8f210d4d952039fcb3356cf53a7e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2012,7 +2012,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
|||||||
synchronized (mGlobalLock) {
|
synchronized (mGlobalLock) {
|
||||||
final DisplayContent dc = mRootWindowContainer.getDisplayContent(displayId);
|
final DisplayContent dc = mRootWindowContainer.getDisplayContent(displayId);
|
||||||
if (dc == null) return;
|
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 */);
|
true /* traverseTopToBottom */);
|
||||||
if (task == null) return;
|
if (task == null) return;
|
||||||
setFocusedTask(task.mTaskId, null /* touchedActivity */);
|
setFocusedTask(task.mTaskId, null /* touchedActivity */);
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.server.wm;
|
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_RESIZEABLE;
|
||||||
import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
|
import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
|
||||||
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
|
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
|
||||||
@@ -1059,4 +1060,18 @@ public class ActivityTaskManagerServiceTests extends WindowTestsBase {
|
|||||||
assertEquals(0, mAtm.getActivityInterceptorCallbacks().size());
|
assertEquals(0, mAtm.getActivityInterceptorCallbacks().size());
|
||||||
mAtm.mInternal.unregisterActivityStartInterceptor(SYSTEM_FIRST_ORDERED_ID);
|
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