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

Commit e2815f22 authored by Jay Aliomer's avatar Jay Aliomer
Browse files

Persist dark mode when set

When setting dark mode, the changes dont persist

Test: atest UiModeManagerServiceTest
Change-Id: I6c18cf096510d79cff9c0d6eac830f7b9209166c
parent d8455e3c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -259,6 +259,8 @@ applications that come with the platform
    </privapp-permissions>

    <privapp-permissions package="com.android.shell">
        <!-- Needed for test only -->
        <permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
        <permission name="android.permission.ACCESS_LOWPAN_STATE"/>
        <permission name="android.permission.BACKUP"/>
        <permission name="android.permission.BATTERY_STATS"/>
+13 −7
Original line number Diff line number Diff line
@@ -551,16 +551,13 @@ final class UiModeManagerService extends SystemService {
                        if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
                            unregisterScreenOffEvent();
                        }
                        // Only persist setting if not in car mode
                        if (!mCarModeEnabled) {
                            Secure.putIntForUser(getContext().getContentResolver(),
                                    Secure.UI_NIGHT_MODE, mode, user);
                            Secure.putIntForUser(getContext().getContentResolver(),
                                    OVERRIDE_NIGHT_MODE, mNightModeOverride, user);
                        }

                        mNightMode = mode;
                        mNightModeOverride = mode;
                        // Only persist setting if not in car mode
                        if (!mCarModeEnabled) {
                            persistNightMode(user);
                        }
                        // on screen off will update configuration instead
                        if (mNightMode != UiModeManager.MODE_NIGHT_AUTO || mCar) {
                            updateLocked(0, 0);
@@ -610,6 +607,7 @@ final class UiModeManagerService extends SystemService {
        @Override
        public boolean setNightModeActivated(boolean active) {
            synchronized (mLock) {
                final int user = UserHandle.getCallingUserId();
                final long ident = Binder.clearCallingIdentity();
                try {
                    if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
@@ -625,6 +623,7 @@ final class UiModeManagerService extends SystemService {
                    }
                    updateConfigurationLocked();
                    applyConfigurationExternallyLocked();
                    persistNightMode(user);
                    return true;
                } finally {
                    Binder.restoreCallingIdentity(ident);
@@ -834,6 +833,13 @@ final class UiModeManagerService extends SystemService {
        }
    }

    private void persistNightMode(int user) {
        Secure.putIntForUser(getContext().getContentResolver(),
                Secure.UI_NIGHT_MODE, mNightMode, user);
        Secure.putIntForUser(getContext().getContentResolver(),
                OVERRIDE_NIGHT_MODE, mNightModeOverride, user);
    }

    private void updateConfigurationLocked() {
        int uiMode = mDefaultUiModeType;
        if (mUiModeLocked) {