Merge changes from topic "remove-intermediate-callbacks" into sc-v2-dev am: 152b410194 am: 89dff675bd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16175313 Change-Id: I8f6ea18f11463b00d62abac920ac81cf1726fc8f
This commit is contained in:
@@ -254,7 +254,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
||||
});
|
||||
|
||||
// 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);
|
||||
}
|
||||
@@ -276,7 +277,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
||||
});
|
||||
|
||||
// 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);
|
||||
}
|
||||
@@ -301,7 +303,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
||||
});
|
||||
|
||||
// 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);
|
||||
|
||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||
@@ -337,8 +340,10 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
||||
});
|
||||
|
||||
// Allow transaction to change a TaskFragment created by the organizer.
|
||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
||||
taskFragment2.setTaskFragmentOrganizer(mOrganizerToken, 10 /* pid */);
|
||||
mTaskFragment.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||
"Test:TaskFragmentOrganizer" /* processName */);
|
||||
taskFragment2.setTaskFragmentOrganizer(mOrganizerToken, 10 /* uid */,
|
||||
"Test:TaskFragmentOrganizer" /* processName */);
|
||||
clearInvocations(mAtm.mRootWindowContainer);
|
||||
|
||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||
@@ -391,7 +396,8 @@ public class TaskFragmentOrganizerControllerTest extends WindowTestsBase {
|
||||
});
|
||||
|
||||
// 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);
|
||||
|
||||
mAtm.getWindowOrganizerController().applyTransaction(mTransaction);
|
||||
|
||||
@@ -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.verify;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
|
||||
import android.graphics.Rect;
|
||||
import android.os.Binder;
|
||||
import android.platform.test.annotations.Presubmit;
|
||||
import android.view.SurfaceControl;
|
||||
import android.window.ITaskFragmentOrganizer;
|
||||
import android.window.TaskFragmentInfo;
|
||||
import android.window.TaskFragmentOrganizer;
|
||||
|
||||
import androidx.test.filters.MediumTest;
|
||||
@@ -64,6 +67,7 @@ public class TaskFragmentTest extends WindowTestsBase {
|
||||
mTaskFragment = new TaskFragmentBuilder(mAtm)
|
||||
.setCreateParentTask()
|
||||
.setOrganizer(mOrganizer)
|
||||
.setFragmentToken(new Binder())
|
||||
.build();
|
||||
mLeash = mTaskFragment.getSurfaceControl();
|
||||
spyOn(mTaskFragment);
|
||||
@@ -103,4 +107,23 @@ public class TaskFragmentTest extends WindowTestsBase {
|
||||
verify(mTransaction).setPosition(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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +126,9 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
// Default package name
|
||||
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
|
||||
private static final String DEFAULT_COMPONENT_CLASS_NAME = ".BarActivity";
|
||||
|
||||
@@ -1234,7 +1237,8 @@ class WindowTestsBase extends SystemServiceTestsBase {
|
||||
}
|
||||
if (mOrganizer != null) {
|
||||
taskFragment.setTaskFragmentOrganizer(
|
||||
mOrganizer.getOrganizerToken(), 10000 /* pid */);
|
||||
mOrganizer.getOrganizerToken(), DEFAULT_TASK_FRAGMENT_ORGANIZER_UID,
|
||||
DEFAULT_TASK_FRAGMENT_ORGANIZER_PROCESS_NAME);
|
||||
}
|
||||
return taskFragment;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user