Battery saver mode should disable dark mode modification
disable toggle options and disable the dark theme drop down selection Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.DarkUIPreferenceControllerTest" && \ make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.darkmode.DarkModeActivationPreferenceControllerTest" && \ make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.darkmode.DarkModeObserverTest" && \ make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.darkmode.DarkModeScheduleSelectorControllerTest" Fixes: 145098277 Fixes: 145297188 Fixes: 145254016 Change-Id: I5c81a295810cc2d9a45657978104647e9c15da46
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user