Merge "Update activity visibility for all users"
This commit is contained in:
@@ -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 |=
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user