Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0bbd2730 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix 2 LaunchParamsPersister issues" into sc-dev am: 45997792

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

Change-Id: Ibbb73347299846e4b97a3822bd1665245eeb2b1c
parents e88c9858 45997792
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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);
@@ -385,9 +388,11 @@ class LaunchParamsPersister {

        @Override
        public void onPackageRemoved(String packageName, int uid) {
            synchronized (mSupervisor.mService.getGlobalLock()) {
                removeRecordForPackage(packageName);
            }
        }
    }

    private class LaunchParamsWriteQueueItem
            implements PersisterQueue.WriteQueueItem<LaunchParamsWriteQueueItem> {
+14 −3
Original line number Diff line number Diff line
@@ -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);