From 45a2c3e5b86c60bf24c2f6541f2eddab1a7b6e17 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Wed, 23 Oct 2024 18:09:45 +0800 Subject: [PATCH] Refactor DarkModePreference for catalyst Bug: 375132235 Flag: EXEMPT refactor Test: N/A Change-Id: I17a63ad62d3b9fced4305d464372f2eab5023e3f --- .../display/darkmode/DarkModePreference.java | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/com/android/settings/display/darkmode/DarkModePreference.java b/src/com/android/settings/display/darkmode/DarkModePreference.java index a1440eec9c9..ff211317b12 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 @@ import com.android.settingslib.PrimarySwitchPreference; */ 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) {