Merge "Fix 2 LaunchParamsPersister issues" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-04-30 00:46:52 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 5 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);