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

Commit fe875821 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6047316 from f4bc80c4 to qt-qpr2-release

Change-Id: I01d82433ac939dc7d7e8299133815b7dcb29b1b1
parents edf015b8 f4bc80c4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
    <DropDownPreference
        android:key="dark_ui_auto_mode"
        android:title="@string/dark_ui_auto_mode_title"
        android:summary="%s"
        android:summary="@string/summary_placeholder"
        android:entries="@array/dark_ui_scheduler_preference_titles"
        android:entryValues="@array/dark_ui_scheduler_preference_titles"
        settings:controller="com.android.settings.display.darkmode.DarkModeScheduleSelectorController"
+0 −2
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.display.darkmode.DarkModePreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -92,7 +91,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
                        Settings.Secure.DARK_MODE_DIALOG_SEEN, 0) == DIALOG_SEEN;
        if (!dialogSeen && isChecked) {
            showDarkModeDialog();
            return false;
        }
        return mUiModeManager.setNightModeActivated(isChecked);
    }
+11 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.settings.display.darkmode;
import android.app.UiModeManager;
import android.content.Context;
import android.content.res.Configuration;
import android.os.PowerManager;
import android.view.View;
import android.widget.Button;
import androidx.preference.Preference;
@@ -30,18 +31,27 @@ import com.android.settingslib.widget.LayoutPreference;
 */
public class DarkModeActivationPreferenceController extends BasePreferenceController {
    private final UiModeManager mUiModeManager;
    private PowerManager mPowerManager;
    private Button mTurnOffButton;
    private Button mTurnOnButton;

    public DarkModeActivationPreferenceController(Context context,
            String preferenceKey) {
        super(context, preferenceKey);

        mPowerManager = context.getSystemService(PowerManager.class);
        mUiModeManager = context.getSystemService(UiModeManager.class);
    }

    @Override
    public final void updateState(Preference preference) {

        final boolean batterySaver = mPowerManager.isPowerSaveMode();
        if (batterySaver) {
            mTurnOnButton.setVisibility(View.GONE);
            mTurnOffButton.setVisibility(View.GONE);
            return;
        }

        final boolean active = (mContext.getResources().getConfiguration().uiMode
                & Configuration.UI_MODE_NIGHT_YES) != 0;
        updateNightMode(active);
+23 −0
Original line number Diff line number Diff line
@@ -14,18 +14,30 @@

package com.android.settings.display.darkmode;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager;
import android.provider.Settings;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;

/**
 * Observes changes for dark night settings*/
public class DarkModeObserver {
    private static final String TAG = "DarkModeObserver";
    private ContentObserver mContentObserver;
    private final BroadcastReceiver mBatterySaverReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            mCallback.run();
        }
    };
    private Runnable mCallback;
    private Context mContext;

@@ -58,6 +70,10 @@ public class DarkModeObserver {
        mCallback = callback;
        final Uri uri = Settings.Secure.getUriFor(Settings.Secure.UI_NIGHT_MODE);
        mContext.getContentResolver().registerContentObserver(uri, false, mContentObserver);
        final IntentFilter batteryFilter = new IntentFilter();
        batteryFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
        mContext.registerReceiver(
                mBatterySaverReceiver, batteryFilter);
    }

    /**
@@ -65,6 +81,13 @@ public class DarkModeObserver {
     */
    public void unsubscribe() {
        mContext.getContentResolver().unregisterContentObserver(mContentObserver);
        try {
            mContext.unregisterReceiver(mBatterySaverReceiver);
        } catch (IllegalArgumentException e) {
            /* Ignore: unregistering an unregistered receiver */
            Log.w(TAG, e.getMessage());
        }
        // NO-OP
        mCallback = null;
    }

+15 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.settings.display.darkmode;
import android.app.UiModeManager;
import android.content.Context;
import android.content.res.Configuration;
import android.os.PowerManager;
import android.util.AttributeSet;
import com.android.settings.R;
import com.android.settings.widget.MasterSwitchPreference;
@@ -27,14 +28,20 @@ public class DarkModePreference extends MasterSwitchPreference {

    private UiModeManager mUiModeManager;
    private DarkModeObserver mDarkModeObserver;
    private PowerManager mPowerManager;
    private Runnable mCallback;

    public DarkModePreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        mDarkModeObserver = new DarkModeObserver(context);
        mUiModeManager = context.getSystemService(UiModeManager.class);
        mPowerManager = context.getSystemService(PowerManager.class);
        mCallback = () -> {
            updateSummary();
            final boolean batterySaver = mPowerManager.isPowerSaveMode();
            final boolean active = (getContext().getResources().getConfiguration().uiMode
                    & Configuration.UI_MODE_NIGHT_YES) != 0;
            setSwitchEnabled(!batterySaver);
            updateSummary(batterySaver, active);
        };
        mDarkModeObserver.subscribe(mCallback);
    }
@@ -51,9 +58,13 @@ public class DarkModePreference extends MasterSwitchPreference {
        mDarkModeObserver.unsubscribe();
    }

    private void updateSummary() {
        final boolean active = (getContext().getResources().getConfiguration().uiMode
                & Configuration.UI_MODE_NIGHT_YES) != 0;
    private void updateSummary(boolean batterySaver, boolean active) {
        if (batterySaver) {
            final int stringId = active ? R.string.dark_ui_mode_disabled_summary_dark_theme_on
                    : R.string.dark_ui_mode_disabled_summary_dark_theme_off;
            setSummary(getContext().getString(stringId));
            return;
        }
        final boolean auto = mUiModeManager.getNightMode() == UiModeManager.MODE_NIGHT_AUTO;

        String detail;
Loading