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

Commit cd29aaac authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Ensure process config override tracks the correct activity." into...

Merge "Ensure process config override tracks the correct activity." into rvc-dev am: a5dc2651 am: 76d6f567 am: ba517319 am: 1b60a6a9

Change-Id: I68b064b51d30c7b5e7f4e722d7fa64516d6a59ed
parents 228f5258 1b60a6a9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1058,7 +1058,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
    }

    private void registerActivityConfigurationListener(ActivityRecord activityRecord) {
        if (activityRecord == null) {
        if (activityRecord == null || activityRecord.containsListener(this)) {
            return;
        }
        // A process can only register to one activityRecord to listen to the override configuration
@@ -1093,7 +1093,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio

        for (int i = mActivities.size() - 1; i >= 0; i--) {
            final ActivityRecord activityRecord = mActivities.get(i);
            if (!activityRecord.finishing && !activityRecord.containsListener(this)) {
            if (!activityRecord.finishing) {
                // Eligible activity is found, update listener.
                registerActivityConfigurationListener(activityRecord);
                return;
+34 −0
Original line number Diff line number Diff line
@@ -1332,6 +1332,40 @@ public class ActivityRecordTests extends ActivityTestsBase {
        assertNotEquals(initialConf, wpc.getRequestedOverrideConfiguration());
    }

    @Test
    public void testActivityDestroyDoesntChangeProcessOverride() {
        final ActivityRecord firstActivity =
                createActivityOnDisplay(true /* defaultDisplay */, null /* process */);
        final WindowProcessController wpc = firstActivity.app;
        assertTrue(wpc.registeredForActivityConfigChanges());
        assertEquals(0, firstActivity.getMergedOverrideConfiguration()
                .diff(wpc.getRequestedOverrideConfiguration()));

        final ActivityRecord secondActivity =
                createActivityOnDisplay(false /* defaultDisplay */, wpc);
        assertTrue(wpc.registeredForActivityConfigChanges());
        assertEquals(0, secondActivity.getMergedOverrideConfiguration()
                .diff(wpc.getRequestedOverrideConfiguration()));

        final ActivityRecord thirdActivity =
                createActivityOnDisplay(false /* defaultDisplay */, wpc);
        assertTrue(wpc.registeredForActivityConfigChanges());
        assertEquals(0, thirdActivity.getMergedOverrideConfiguration()
                .diff(wpc.getRequestedOverrideConfiguration()));

        secondActivity.destroyImmediately(true, "");

        assertTrue(wpc.registeredForActivityConfigChanges());
        assertEquals(0, thirdActivity.getMergedOverrideConfiguration()
                .diff(wpc.getRequestedOverrideConfiguration()));

        firstActivity.destroyImmediately(true, "");

        assertTrue(wpc.registeredForActivityConfigChanges());
        assertEquals(0, thirdActivity.getMergedOverrideConfiguration()
                .diff(wpc.getRequestedOverrideConfiguration()));
    }

    /**
     * Creates an activity on display. For non-default display request it will also create a new
     * display with custom DisplayInfo.