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

Commit 53c6e298 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Activate night mode when battery saver

This as originally in SysUI but UiModeManagerService is cleaner way
of doing it. This way SysUI won't have to keep track of user preferences
or override user settings.

Test: manually toggle battery saver and observe QS
Bug: 104205224
Change-Id: Ic0d24e36eec2ad3b66b32960bfc5e659470044b1
parent ef6a5bf7
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ final class UiModeManagerService extends SystemService {

    private boolean mCarModeEnabled = false;
    private boolean mCharging = false;
    private boolean mPowerSave = false;
    private int mDefaultUiModeType;
    private boolean mCarModeKeepsScreenOn;
    private boolean mDeskModeKeepsScreenOn;
@@ -160,7 +161,14 @@ final class UiModeManagerService extends SystemService {
    private final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            mCharging = (intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0);
            switch (intent.getAction()) {
                case Intent.ACTION_BATTERY_CHANGED:
                    mCharging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
                    break;
                case PowerManager.ACTION_POWER_SAVE_MODE_CHANGING:
                    mPowerSave = intent.getBooleanExtra(PowerManager.EXTRA_POWER_SAVE_MODE, false);
                    break;
            }
            synchronized (mLock) {
                if (mSystemReady) {
                    updateLocked(0, 0);
@@ -203,8 +211,9 @@ final class UiModeManagerService extends SystemService {

        context.registerReceiver(mDockModeReceiver,
                new IntentFilter(Intent.ACTION_DOCK_EVENT));
        context.registerReceiver(mBatteryReceiver,
                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
        IntentFilter batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        batteryFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGING);
        context.registerReceiver(mBatteryReceiver, batteryFilter);

        mConfiguration.setToDefaults();

@@ -457,6 +466,11 @@ final class UiModeManagerService extends SystemService {
            uiMode |= mNightMode << 4;
        }

        if (mPowerSave && !mNightModeLocked) {
            uiMode &= ~Configuration.UI_MODE_NIGHT_NO;
            uiMode |= Configuration.UI_MODE_NIGHT_YES;
        }

        if (LOG) {
            Slog.d(TAG,
                "updateConfigurationLocked: mDockState=" + mDockState