Refactor DarkModePreference for catalyst
Bug: 375132235 Flag: EXEMPT refactor Test: N/A Change-Id: I17a63ad62d3b9fced4305d464372f2eab5023e3f
This commit is contained in:
@@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
package com.android.settings.display.darkmode;
|
package com.android.settings.display.darkmode;
|
||||||
|
|
||||||
import android.app.UiModeManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
@@ -28,40 +27,45 @@ import com.android.settingslib.PrimarySwitchPreference;
|
|||||||
*/
|
*/
|
||||||
public class DarkModePreference extends PrimarySwitchPreference {
|
public class DarkModePreference extends PrimarySwitchPreference {
|
||||||
|
|
||||||
private UiModeManager mUiModeManager;
|
|
||||||
private DarkModeObserver mDarkModeObserver;
|
private DarkModeObserver mDarkModeObserver;
|
||||||
private PowerManager mPowerManager;
|
private boolean isCatalystEnabled;
|
||||||
private Runnable mCallback;
|
|
||||||
|
|
||||||
private TimeFormatter mFormat;
|
|
||||||
|
|
||||||
public DarkModePreference(Context context, AttributeSet attrs) {
|
public DarkModePreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
mDarkModeObserver = new DarkModeObserver(context);
|
}
|
||||||
mUiModeManager = context.getSystemService(UiModeManager.class);
|
|
||||||
mPowerManager = context.getSystemService(PowerManager.class);
|
/**
|
||||||
mFormat = new TimeFormatter(context);
|
* Sets if catalyst is enabled on the preference.
|
||||||
mCallback = () -> {
|
*/
|
||||||
final boolean batterySaver = mPowerManager.isPowerSaveMode();
|
public void setCatalystEnabled(boolean catalystEnabled) {
|
||||||
final boolean active = (getContext().getResources().getConfiguration().uiMode
|
isCatalystEnabled = catalystEnabled;
|
||||||
& Configuration.UI_MODE_NIGHT_YES) != 0;
|
|
||||||
setSwitchEnabled(!batterySaver);
|
|
||||||
updateSummary(batterySaver, active);
|
|
||||||
};
|
|
||||||
mDarkModeObserver.subscribe(mCallback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttached() {
|
public void onAttached() {
|
||||||
super.onAttached();
|
super.onAttached();
|
||||||
mDarkModeObserver.subscribe(mCallback);
|
if (!isCatalystEnabled) {
|
||||||
|
Context context = getContext();
|
||||||
|
mDarkModeObserver = new DarkModeObserver(context);
|
||||||
|
Runnable callback = () -> {
|
||||||
|
PowerManager powerManager = context.getSystemService(PowerManager.class);
|
||||||
|
final boolean batterySaver = powerManager.isPowerSaveMode();
|
||||||
|
final boolean active = (context.getResources().getConfiguration().uiMode
|
||||||
|
& Configuration.UI_MODE_NIGHT_YES) != 0;
|
||||||
|
setSwitchEnabled(!batterySaver);
|
||||||
|
updateSummary(batterySaver, active);
|
||||||
|
};
|
||||||
|
mDarkModeObserver.subscribe(callback);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDetached() {
|
public void onDetached() {
|
||||||
super.onDetached();
|
super.onDetached();
|
||||||
|
if (!isCatalystEnabled) {
|
||||||
mDarkModeObserver.unsubscribe();
|
mDarkModeObserver.unsubscribe();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void updateSummary(boolean batterySaver, boolean active) {
|
private void updateSummary(boolean batterySaver, boolean active) {
|
||||||
if (batterySaver) {
|
if (batterySaver) {
|
||||||
|
Reference in New Issue
Block a user