Merge changes from topic "remove-intermediate-callbacks" into sc-v2-dev am: 152b410194

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16175313

Change-Id: Ief1c0ba769a8ef536bc6ba061f89bd0fcffd8e96
This commit is contained in:
TreeHugger Robot
2021-11-10 03:33:47 +00:00
committed by Automerger Merge Worker
3 changed files with 40 additions and 7 deletions

View File

@@ -254,7 +254,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
}); });
// Allow transaction to change a TaskFragment created by the organizer. // Allow transaction to change a TaskFragment created by the organizer.
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
"Test:TaskFragmentOrganizer" /* processName */);
mAtm.getWindowOrganizerController().applyTransaction(mTransaction); mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
} }
@@ -276,7 +277,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
}); });
// Allow transaction to change a TaskFragment created by the organizer. // Allow transaction to change a TaskFragment created by the organizer.
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
"Test:TaskFragmentOrganizer" /* processName */);
mAtm.getWindowOrganizerController().applyTransaction(mTransaction); mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
} }
@@ -301,7 +303,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
}); });
// Allow transaction to change a TaskFragment created by the organizer. // Allow transaction to change a TaskFragment created by the organizer.
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
"Test:TaskFragmentOrganizer" /* processName */);
clearInvocations(mAtm.mRootWindowContainer); clearInvocations(mAtm.mRootWindowContainer);
mAtm.getWindowOrganizerController().applyTransaction(mTransaction); mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
@@ -337,8 +340,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
}); });
// Allow transaction to change a TaskFragment created by the organizer. // Allow transaction to change a TaskFragment created by the organizer.
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
taskFragment2.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */); "Test:TaskFragmentOrganizer" /* processName */);
taskFragment2.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
"Test:TaskFragmentOrganizer" /* processName */);
clearInvocations(mAtm.mRootWindowContainer); clearInvocations(mAtm.mRootWindowContainer);
mAtm.getWindowOrganizerController().applyTransaction(mTransaction); mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
@@ -391,7 +396,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
}); });
// Allow transaction to change a TaskFragment created by the organizer. // Allow transaction to change a TaskFragment created by the organizer.
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */); mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
"Test:TaskFragmentOrganizer" /* processName */);
clearInvocations(mAtm.mRootWindowContainer); clearInvocations(mAtm.mRootWindowContainer);
mAtm.getWindowOrganizerController().applyTransaction(mTransaction); mAtm.getWindowOrganizerController().applyTransaction(mTransaction);

View File

@@ -20,12 +20,15 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.clearInvocations;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Binder;
import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.Presubmit;
import android.view.SurfaceControl; import android.view.SurfaceControl;
import android.window.ITaskFragmentOrganizer; import android.window.ITaskFragmentOrganizer;
import android.window.TaskFragmentInfo;
import android.window.TaskFragmentOrganizer; import android.window.TaskFragmentOrganizer;
import androidx.test.filters.MediumTest; import androidx.test.filters.MediumTest;
@@ -64,6 +67,7 @@ public class TaskFragmentTest extends WindowTestsBase {
mTaskFragment = new TaskFragmentBuilder(mAtm) mTaskFragment = new TaskFragmentBuilder(mAtm)
.setCreateParentTask() .setCreateParentTask()
.setOrganizer(mOrganizer) .setOrganizer(mOrganizer)
.setFragmentToken(new Binder())
.build(); .build();
mLeash = mTaskFragment.getSurfaceControl(); mLeash = mTaskFragment.getSurfaceControl();
spyOn(mTaskFragment); spyOn(mTaskFragment);
@@ -103,4 +107,23 @@ public class TaskFragmentTest extends WindowTestsBase {
verify(mTransaction).setPosition(mLeash, 500, 500); verify(mTransaction).setPosition(mLeash, 500, 500);
verify(mTransaction).setWindowCrop(mLeash, 500, 500); verify(mTransaction).setWindowCrop(mLeash, 500, 500);
} }
/**
* Tests that when a {@link TaskFragmentInfo} is generated from a {@link TaskFragment}, an
* activity that has not yet been attached to a process because it is being initialized but
* belongs to the TaskFragmentOrganizer process is still reported in the TaskFragmentInfo.
*/
@Test
public void testActivityStillReported_NotYetAssignedToProcess() {
mTaskFragment.addChild(new ActivityBuilder(mAtm).setUid(DEFAULT_TASK_FRAGMENT_ORGANIZER_UID)
.setProcessName(DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME).build());
final ActivityRecord activity = mTaskFragment.getTopMostActivity();
// Remove the process to simulate an activity that has not yet been attached to a process
activity.app = null;
final TaskFragmentInfo info = activity.getTaskFragment().getTaskFragmentInfo();
assertEquals(1, info.getRunningActivityCount());
assertEquals(1, info.getActivities().size());
assertEquals(false, info.isEmpty());
assertEquals(activity.token, info.getActivities().get(0));
}
} }

View File

@@ -128,6 +128,9 @@ class WindowTestsBase extends SystemServiceTestsBase {
// Default package name // Default package name
static final String DEFAULT_COMPONENT_PACKAGE_NAME = "com.foo"; static final String DEFAULT_COMPONENT_PACKAGE_NAME = "com.foo";
static final int DEFAULT_TASK_FRAGMENT_ORGANIZER_UID = 10000;
static final String DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME = "Test:TaskFragmentOrganizer";
// Default base activity name // Default base activity name
private static final String DEFAULT_COMPONENT_CLASS_NAME = ".BarActivity"; private static final String DEFAULT_COMPONENT_CLASS_NAME = ".BarActivity";
@@ -1243,7 +1246,8 @@ class WindowTestsBase extends SystemServiceTestsBase {
} }
if (mOrganizer != null) { if (mOrganizer != null) {
taskFragment.setTaskFragmentOrganizer( taskFragment.setTaskFragmentOrganizer(
mOrganizer.getOrganizerToken(), 10000 /* pid */); mOrganizer.getOrganizerToken(), DEFAULT_TASK_FRAGMENT_ORGANIZER_UID,
DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME);
} }
return taskFragment; return taskFragment;
} }