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

Commit c3b8f90a authored by Chris Li's avatar Chris Li Committed by Automerger Merge Worker
Browse files

Merge "Update display windowing mode when development settings change" into...

Merge "Update display windowing mode when development settings change" into rvc-dev am: 962150b5 am: d8eedf05 am: ddf21623

Change-Id: I26cb58f6b6ecd562f3c9e2cafe9250cd7da4adde
parents 4cba1dc0 ddf21623
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -881,7 +881,13 @@ public class WindowManagerService extends IWindowManager.Stub
                    FEATURE_FREEFORM_WINDOW_MANAGEMENT) || Settings.Global.getInt(
                    resolver, DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0;

            if (mAtmService.mSupportsFreeformWindowManagement != freeformWindowManagement) {
                mAtmService.mSupportsFreeformWindowManagement = freeformWindowManagement;
                synchronized (mGlobalLock) {
                    // Notify the root window container that the display settings value may change.
                    mRoot.onSettingsRetrieved();
                }
            }
        }

        void updateForceResizableTasks() {
+32 −4
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@ import static android.provider.Settings.Global.DEVELOPMENT_FORCE_RESIZABLE_ACTIV
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;

import android.content.ContentResolver;
import android.net.Uri;
@@ -60,11 +63,35 @@ public class WindowManagerSettingsTests extends WindowTestsBase {
    public void testFreeformWindow() {
        try (SettingsSession freeformWindowSession = new
                SettingsSession(DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT)) {
            final boolean freeformWindow = !freeformWindowSession.getSetting();
            final Uri freeformWindowUri = freeformWindowSession.setSetting(freeformWindow);
            final boolean curFreeformWindow = freeformWindowSession.getSetting();
            final boolean newFreeformWindow = !curFreeformWindow;
            final Uri freeformWindowUri = freeformWindowSession.setSetting(newFreeformWindow);
            mWm.mAtmService.mSupportsFreeformWindowManagement = curFreeformWindow;
            mWm.mSettingsObserver.onChange(false, freeformWindowUri);

            assertEquals(mWm.mAtmService.mSupportsFreeformWindowManagement, freeformWindow);
            assertEquals(mWm.mAtmService.mSupportsFreeformWindowManagement, newFreeformWindow);
        }
    }

    @Test
    public void testFreeformWindow_valueChanged_updatesDisplaySettings() {
        try (SettingsSession freeformWindowSession = new
                SettingsSession(DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT)) {
            final boolean curFreeformWindow = freeformWindowSession.getSetting();
            final boolean newFreeformWindow = !curFreeformWindow;
            final Uri freeformWindowUri = freeformWindowSession.setSetting(newFreeformWindow);
            mWm.mAtmService.mSupportsFreeformWindowManagement = curFreeformWindow;
            clearInvocations(mWm.mRoot);
            mWm.mSettingsObserver.onChange(false, freeformWindowUri);

            // Changed value should update display settings.
            verify(mWm.mRoot).onSettingsRetrieved();

            clearInvocations(mWm.mRoot);
            mWm.mSettingsObserver.onChange(false, freeformWindowUri);

            // Unchanged value should not update display settings.
            verify(mWm.mRoot, never()).onSettingsRetrieved();
        }
    }

@@ -74,6 +101,7 @@ public class WindowManagerSettingsTests extends WindowTestsBase {
                SettingsSession(DEVELOPMENT_FORCE_RESIZABLE_ACTIVITIES)) {
            final boolean forceResizableMode = !forceResizableSession.getSetting();
            final Uri forceResizableUri = forceResizableSession.setSetting(forceResizableMode);

            mWm.mSettingsObserver.onChange(false, forceResizableUri);

            assertEquals(mWm.mAtmService.mForceResizableActivities, forceResizableMode);