Loading services/core/java/com/android/server/wm/LaunchParamsPersister.java +7 −2 Original line number Original line Diff line number Diff line Loading @@ -232,6 +232,9 @@ class LaunchParamsPersister { void saveTask(Task task, DisplayContent display) { void saveTask(Task task, DisplayContent display) { final ComponentName name = task.realActivity; final ComponentName name = task.realActivity; if (name == null) { return; } final int userId = task.mUserId; final int userId = task.mUserId; PersistableLaunchParams params; PersistableLaunchParams params; ArrayMap<ComponentName, PersistableLaunchParams> map = mLaunchParamsMap.get(userId); ArrayMap<ComponentName, PersistableLaunchParams> map = mLaunchParamsMap.get(userId); Loading Loading @@ -385,9 +388,11 @@ class LaunchParamsPersister { @Override @Override public void onPackageRemoved(String packageName, int uid) { public void onPackageRemoved(String packageName, int uid) { synchronized (mSupervisor.mService.getGlobalLock()) { removeRecordForPackage(packageName); removeRecordForPackage(packageName); } } } } } private class LaunchParamsWriteQueueItem private class LaunchParamsWriteQueueItem implements PersisterQueue.WriteQueueItem<LaunchParamsWriteQueueItem> { implements PersisterQueue.WriteQueueItem<LaunchParamsWriteQueueItem> { Loading services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java +14 −3 Original line number Original line Diff line number Diff line Loading @@ -114,10 +114,10 @@ public class LaunchParamsPersisterTests extends WindowTestsBase { when(mRootWindowContainer.getDisplayContent(eq(mDisplayUniqueId))) when(mRootWindowContainer.getDisplayContent(eq(mDisplayUniqueId))) .thenReturn(mTestDisplay); .thenReturn(mTestDisplay); Task stack = mTestDisplay.getDefaultTaskDisplayArea() Task rootTask = mTestDisplay.getDefaultTaskDisplayArea() .createRootTask(TEST_WINDOWING_MODE, ACTIVITY_TYPE_STANDARD, /* onTop */ true); .createRootTask(TEST_WINDOWING_MODE, ACTIVITY_TYPE_STANDARD, /* onTop */ true); mTestTask = new TaskBuilder(mSupervisor).setComponent(TEST_COMPONENT).setParentTask(stack) mTestTask = new TaskBuilder(mSupervisor).setComponent(TEST_COMPONENT) .build(); .setParentTask(rootTask).build(); mTestTask.mUserId = TEST_USER_ID; mTestTask.mUserId = TEST_USER_ID; mTestTask.mLastNonFullscreenBounds = TEST_BOUNDS; mTestTask.mLastNonFullscreenBounds = TEST_BOUNDS; mTestTask.setHasBeenVisible(true); mTestTask.setHasBeenVisible(true); Loading Loading @@ -157,6 +157,17 @@ public class LaunchParamsPersisterTests extends WindowTestsBase { assertTrue("Default result should be empty.", mResult.isEmpty()); 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 @Test public void testSavesAndRestoresLaunchParamsInSameInstance() { public void testSavesAndRestoresLaunchParamsInSameInstance() { mTarget.saveTask(mTestTask); mTarget.saveTask(mTestTask); Loading Loading
services/core/java/com/android/server/wm/LaunchParamsPersister.java +7 −2 Original line number Original line Diff line number Diff line Loading @@ -232,6 +232,9 @@ class LaunchParamsPersister { void saveTask(Task task, DisplayContent display) { void saveTask(Task task, DisplayContent display) { final ComponentName name = task.realActivity; final ComponentName name = task.realActivity; if (name == null) { return; } final int userId = task.mUserId; final int userId = task.mUserId; PersistableLaunchParams params; PersistableLaunchParams params; ArrayMap<ComponentName, PersistableLaunchParams> map = mLaunchParamsMap.get(userId); ArrayMap<ComponentName, PersistableLaunchParams> map = mLaunchParamsMap.get(userId); Loading Loading @@ -385,9 +388,11 @@ class LaunchParamsPersister { @Override @Override public void onPackageRemoved(String packageName, int uid) { public void onPackageRemoved(String packageName, int uid) { synchronized (mSupervisor.mService.getGlobalLock()) { removeRecordForPackage(packageName); removeRecordForPackage(packageName); } } } } } private class LaunchParamsWriteQueueItem private class LaunchParamsWriteQueueItem implements PersisterQueue.WriteQueueItem<LaunchParamsWriteQueueItem> { implements PersisterQueue.WriteQueueItem<LaunchParamsWriteQueueItem> { Loading
services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java +14 −3 Original line number Original line Diff line number Diff line Loading @@ -114,10 +114,10 @@ public class LaunchParamsPersisterTests extends WindowTestsBase { when(mRootWindowContainer.getDisplayContent(eq(mDisplayUniqueId))) when(mRootWindowContainer.getDisplayContent(eq(mDisplayUniqueId))) .thenReturn(mTestDisplay); .thenReturn(mTestDisplay); Task stack = mTestDisplay.getDefaultTaskDisplayArea() Task rootTask = mTestDisplay.getDefaultTaskDisplayArea() .createRootTask(TEST_WINDOWING_MODE, ACTIVITY_TYPE_STANDARD, /* onTop */ true); .createRootTask(TEST_WINDOWING_MODE, ACTIVITY_TYPE_STANDARD, /* onTop */ true); mTestTask = new TaskBuilder(mSupervisor).setComponent(TEST_COMPONENT).setParentTask(stack) mTestTask = new TaskBuilder(mSupervisor).setComponent(TEST_COMPONENT) .build(); .setParentTask(rootTask).build(); mTestTask.mUserId = TEST_USER_ID; mTestTask.mUserId = TEST_USER_ID; mTestTask.mLastNonFullscreenBounds = TEST_BOUNDS; mTestTask.mLastNonFullscreenBounds = TEST_BOUNDS; mTestTask.setHasBeenVisible(true); mTestTask.setHasBeenVisible(true); Loading Loading @@ -157,6 +157,17 @@ public class LaunchParamsPersisterTests extends WindowTestsBase { assertTrue("Default result should be empty.", mResult.isEmpty()); 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 @Test public void testSavesAndRestoresLaunchParamsInSameInstance() { public void testSavesAndRestoresLaunchParamsInSameInstance() { mTarget.saveTask(mTestTask); mTarget.saveTask(mTestTask); Loading