Refactor DarkModePreference for catalyst
Bug: 375132235
Flag: EXEMPT refactor
Test: N/A
Change-Id: I17a63ad62d3b9fced4305d464372f2eab5023e3f
diff --git a/src/com/android/settings/display/darkmode/DarkModePreference.java b/src/com/android/settings/display/darkmode/DarkModePreference.java
index a1440ee..ff21131 100644
--- a/src/com/android/settings/display/darkmode/DarkModePreference.java
+++ b/src/com/android/settings/display/darkmode/DarkModePreference.java
@@ -14,7 +14,6 @@
package com.android.settings.display.darkmode;
-import android.app.UiModeManager;
import android.content.Context;
import android.content.res.Configuration;
import android.os.PowerManager;
@@ -28,39 +27,44 @@
*/
public class DarkModePreference extends PrimarySwitchPreference {
- private UiModeManager mUiModeManager;
private DarkModeObserver mDarkModeObserver;
- private PowerManager mPowerManager;
- private Runnable mCallback;
-
- private TimeFormatter mFormat;
+ private boolean isCatalystEnabled;
public DarkModePreference(Context context, AttributeSet attrs) {
super(context, attrs);
- mDarkModeObserver = new DarkModeObserver(context);
- mUiModeManager = context.getSystemService(UiModeManager.class);
- mPowerManager = context.getSystemService(PowerManager.class);
- mFormat = new TimeFormatter(context);
- mCallback = () -> {
- 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);
+ }
+
+ /**
+ * Sets if catalyst is enabled on the preference.
+ */
+ public void setCatalystEnabled(boolean catalystEnabled) {
+ isCatalystEnabled = catalystEnabled;
}
@Override
public void 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
public void onDetached() {
super.onDetached();
- mDarkModeObserver.unsubscribe();
+ if (!isCatalystEnabled) {
+ mDarkModeObserver.unsubscribe();
+ }
}
private void updateSummary(boolean batterySaver, boolean active) {