Merge "Fix 2 LaunchParamsPersister issues" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
45997792e1
@@ -232,6 +232,9 @@ class LaunchParamsPersister {
|
||||
|
||||
void saveTask(Task task, DisplayContent display) {
|
||||
final ComponentName name = task.realActivity;
|
||||
if (name == null) {
|
||||
return;
|
||||
}
|
||||
final int userId = task.mUserId;
|
||||
PersistableLaunchParams params;
|
||||
ArrayMap<ComponentName, PersistableLaunchParams> map = mLaunchParamsMap.get(userId);
|
||||
@@ -381,11 +384,13 @@ class LaunchParamsPersister {
|
||||
|
||||
private class PackageListObserver implements PackageManagerInternal.PackageListObserver {
|
||||
@Override
|
||||
public void onPackageAdded(String packageName, int uid) { }
|
||||
public void onPackageAdded(String packageName, int uid) {}
|
||||
|
||||
@Override
|
||||
public void onPackageRemoved(String packageName, int uid) {
|
||||
removeRecordForPackage(packageName);
|
||||
synchronized (mSupervisor.mService.getGlobalLock()) {
|
||||
removeRecordForPackage(packageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -114,10 +114,10 @@ public class LaunchParamsPersisterTests extends WindowTestsBase {
|
||||
when(mRootWindowContainer.getDisplayContent(eq(mDisplayUniqueId)))
|
||||
.thenReturn(mTestDisplay);
|
||||
|
||||
Task stack = mTestDisplay.getDefaultTaskDisplayArea()
|
||||
Task rootTask = mTestDisplay.getDefaultTaskDisplayArea()
|
||||
.createRootTask(TEST_WINDOWING_MODE, ACTIVITY_TYPE_STANDARD, /* onTop */ true);
|
||||
mTestTask = new TaskBuilder(mSupervisor).setComponent(TEST_COMPONENT).setParentTask(stack)
|
||||
.build();
|
||||
mTestTask = new TaskBuilder(mSupervisor).setComponent(TEST_COMPONENT)
|
||||
.setParentTask(rootTask).build();
|
||||
mTestTask.mUserId = TEST_USER_ID;
|
||||
mTestTask.mLastNonFullscreenBounds = TEST_BOUNDS;
|
||||
mTestTask.setHasBeenVisible(true);
|
||||
@@ -157,6 +157,17 @@ public class LaunchParamsPersisterTests extends WindowTestsBase {
|
||||
assertTrue("Default result should be empty.", mResult.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSavingTestWithoutRealActivityWontMakePackageRemovalCrash() {
|
||||
Task rootTask = mTestDisplay.getDefaultTaskDisplayArea()
|
||||
.createRootTask(TEST_WINDOWING_MODE, ACTIVITY_TYPE_STANDARD, /* onTop */ true);
|
||||
assertNull(rootTask.realActivity);
|
||||
|
||||
mTarget.saveTask(rootTask);
|
||||
|
||||
mTarget.removeRecordForPackage(TEST_COMPONENT.getPackageName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSavesAndRestoresLaunchParamsInSameInstance() {
|
||||
mTarget.saveTask(mTestTask);
|
||||
|
||||
Reference in New Issue
Block a user