Loading services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,8 @@ class EnsureActivitiesVisibleHelper { for (int i = mTaskFragment.mChildren.size() - 1; i >= 0; --i) { final WindowContainer child = mTaskFragment.mChildren.get(i); final TaskFragment childTaskFragment = child.asTaskFragment(); if (childTaskFragment != null && childTaskFragment.topRunningActivity() != null) { if (childTaskFragment != null && childTaskFragment.getTopNonFinishingActivity() != null) { childTaskFragment.updateActivityVisibilities(starting, configChanges, preserveWindows, notifyClients); mBehindFullyOccludedContainer |= Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +24 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; import android.graphics.Rect; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.PersistableBundle; Loading Loading @@ -3358,6 +3359,29 @@ public class ActivityRecordTests extends WindowTestsBase { noProcActivity.mInputDispatchingTimeoutMillis); } @Test public void testEnsureActivitiesVisibleAnotherUserTasks() { // Create an activity with hierarchy: // RootTask // - TaskFragment // - Activity DisplayContent display = createNewDisplay(); Task rootTask = createTask(display); ActivityRecord activity = createActivityRecord(rootTask); final TaskFragment taskFragment = new TaskFragment(mAtm, new Binder(), true /* createdByOrganizer */, true /* isEmbedded */); activity.getTask().addChild(taskFragment, POSITION_TOP); activity.reparent(taskFragment, POSITION_TOP); // Ensure the activity visibility is updated even it is not shown to current user. activity.mVisibleRequested = true; doReturn(false).when(activity).showToCurrentUser(); spyOn(taskFragment); doReturn(false).when(taskFragment).shouldBeVisible(any()); display.ensureActivitiesVisible(null, 0, false, false); assertFalse(activity.mVisibleRequested); } private ICompatCameraControlCallback getCompatCameraControlCallback() { return new ICompatCameraControlCallback.Stub() { @Override Loading Loading
services/core/java/com/android/server/wm/EnsureActivitiesVisibleHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,8 @@ class EnsureActivitiesVisibleHelper { for (int i = mTaskFragment.mChildren.size() - 1; i >= 0; --i) { final WindowContainer child = mTaskFragment.mChildren.get(i); final TaskFragment childTaskFragment = child.asTaskFragment(); if (childTaskFragment != null && childTaskFragment.topRunningActivity() != null) { if (childTaskFragment != null && childTaskFragment.getTopNonFinishingActivity() != null) { childTaskFragment.updateActivityVisibilities(starting, configChanges, preserveWindows, notifyClients); mBehindFullyOccludedContainer |= Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +24 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; import android.graphics.Rect; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.PersistableBundle; Loading Loading @@ -3358,6 +3359,29 @@ public class ActivityRecordTests extends WindowTestsBase { noProcActivity.mInputDispatchingTimeoutMillis); } @Test public void testEnsureActivitiesVisibleAnotherUserTasks() { // Create an activity with hierarchy: // RootTask // - TaskFragment // - Activity DisplayContent display = createNewDisplay(); Task rootTask = createTask(display); ActivityRecord activity = createActivityRecord(rootTask); final TaskFragment taskFragment = new TaskFragment(mAtm, new Binder(), true /* createdByOrganizer */, true /* isEmbedded */); activity.getTask().addChild(taskFragment, POSITION_TOP); activity.reparent(taskFragment, POSITION_TOP); // Ensure the activity visibility is updated even it is not shown to current user. activity.mVisibleRequested = true; doReturn(false).when(activity).showToCurrentUser(); spyOn(taskFragment); doReturn(false).when(taskFragment).shouldBeVisible(any()); display.ensureActivitiesVisible(null, 0, false, false); assertFalse(activity.mVisibleRequested); } private ICompatCameraControlCallback getCompatCameraControlCallback() { return new ICompatCameraControlCallback.Stub() { @Override Loading