From 1684b4387e501d47149bab7890db5e7f4a79eb80 Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Fri, 7 Mar 2025 12:15:23 +0800 Subject: [PATCH] [MainSwitchPreference] Deprecate SettingsMainSwitchPreferenceController Bug: 401406987 Flag: EXEMPT refactor Test: manual Change-Id: Icdef50d0da777751f37b9d0d1984db636c7086f1 --- .../AutoRotateSwitchBarController.java | 20 +++++++++++++++---- .../DreamMainSwitchPreferenceController.java | 20 ++++++++++++++++--- ...eHandedMainSwitchPreferenceController.java | 4 ++-- ...ettingsMainSwitchPreferenceController.java | 3 +++ 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/display/AutoRotateSwitchBarController.java b/src/com/android/settings/display/AutoRotateSwitchBarController.java index e6fc2e34627..375141a0386 100644 --- a/src/com/android/settings/display/AutoRotateSwitchBarController.java +++ b/src/com/android/settings/display/AutoRotateSwitchBarController.java @@ -19,10 +19,15 @@ package com.android.settings.display; import android.app.settings.SettingsEnums; import android.content.Context; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; + import com.android.internal.view.RotationPolicy; import com.android.settings.R; +import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.widget.SettingsMainSwitchPreferenceController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; @@ -31,17 +36,24 @@ import com.android.settingslib.core.lifecycle.events.OnStop; /** * The main switch controller for auto-rotate. */ -public class AutoRotateSwitchBarController extends SettingsMainSwitchPreferenceController implements +public class AutoRotateSwitchBarController extends TogglePreferenceController implements LifecycleObserver, OnStart, OnStop { private final MetricsFeatureProvider mMetricsFeatureProvider; private RotationPolicy.RotationPolicyListener mRotationPolicyListener; + private @Nullable Preference mPreference; public AutoRotateSwitchBarController(Context context, String key) { super(context, key); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); } + @Override + public void displayPreference(@NonNull PreferenceScreen screen) { + super.displayPreference(screen); + mPreference = screen.findPreference(getPreferenceKey()); + } + @Override public int getAvailabilityStatus() { return RotationPolicy.isRotationLockToggleVisible(mContext) @@ -55,8 +67,8 @@ public class AutoRotateSwitchBarController extends SettingsMainSwitchPreferenceC mRotationPolicyListener = new RotationPolicy.RotationPolicyListener() { @Override public void onChange() { - if (mSwitchPreference != null) { - updateState(mSwitchPreference); + if (mPreference != null) { + updateState(mPreference); } } }; diff --git a/src/com/android/settings/dream/DreamMainSwitchPreferenceController.java b/src/com/android/settings/dream/DreamMainSwitchPreferenceController.java index 1425d3a7676..a802b69a353 100644 --- a/src/com/android/settings/dream/DreamMainSwitchPreferenceController.java +++ b/src/com/android/settings/dream/DreamMainSwitchPreferenceController.java @@ -25,9 +25,13 @@ import android.os.Handler; import android.os.Looper; import android.provider.Settings; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.lifecycle.OnLifecycleEvent; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; -import com.android.settings.widget.SettingsMainSwitchPreferenceController; +import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.dream.DreamBackend; @@ -35,7 +39,7 @@ import com.android.settingslib.dream.DreamBackend; * Preference controller for switching dreams on/off. */ public class DreamMainSwitchPreferenceController extends - SettingsMainSwitchPreferenceController implements LifecycleObserver { + TogglePreferenceController implements LifecycleObserver { static final String MAIN_SWITCH_PREF_KEY = "dream_main_settings_switch"; private final DreamBackend mBackend; @@ -43,15 +47,25 @@ public class DreamMainSwitchPreferenceController extends new Handler(Looper.getMainLooper())) { @Override public void onChange(boolean selfChange) { - updateState(mSwitchPreference); + if (mPreference != null) { + updateState(mPreference); + } } }; + private @Nullable Preference mPreference; + public DreamMainSwitchPreferenceController(Context context, String key) { super(context, key); mBackend = DreamBackend.getInstance(context); } + @Override + public void displayPreference(@NonNull PreferenceScreen screen) { + super.displayPreference(screen); + mPreference = screen.findPreference(getPreferenceKey()); + } + @Override public int getAvailabilityStatus() { return AVAILABLE; diff --git a/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java index 3f84aba4f14..32e436ed856 100644 --- a/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java +++ b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java @@ -22,7 +22,7 @@ import android.net.Uri; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.widget.SettingsMainSwitchPreferenceController; +import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; @@ -32,7 +32,7 @@ import com.android.settingslib.widget.MainSwitchPreference; * The controller to handle one-handed mode main switch enable or disable state. **/ public class OneHandedMainSwitchPreferenceController extends - SettingsMainSwitchPreferenceController implements OneHandedSettingsUtils.TogglesCallback, + TogglePreferenceController implements OneHandedSettingsUtils.TogglesCallback, LifecycleObserver, OnStart, OnStop { private final OneHandedSettingsUtils mUtils; diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java b/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java index 60e3388b264..a5307f55f50 100644 --- a/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java +++ b/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java @@ -28,7 +28,10 @@ import com.android.settingslib.widget.MainSwitchPreference; /** * Preference controller for MainSwitchPreference. + * + * @deprecated Use {@link TogglePreferenceController} directly */ +@Deprecated public abstract class SettingsMainSwitchPreferenceController extends TogglePreferenceController implements OnCheckedChangeListener {