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) {