[MainSwitchPreference] Use OnPreferenceChangeListener for DarkModeActivationPreferenceController

Bug: 400335057
Flag: EXEMPT refactor
Test: manual
Change-Id: I6c6a053b64a0a10773bf9d51c44387a3597e91ad
This commit is contained in:
Jacky Wang
2025-03-07 12:20:17 +08:00
parent 1684b4387e
commit 9eb7cd95b4

View File

@@ -18,11 +18,9 @@ package com.android.settings.display.darkmode;
import android.app.UiModeManager; import android.app.UiModeManager;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import androidx.annotation.NonNull;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -32,12 +30,11 @@ import com.android.settingslib.widget.MainSwitchPreference;
/** /**
* Controller for activate/deactivate night mode button * Controller for activate/deactivate night mode button
*/ */
public class DarkModeActivationPreferenceController extends BasePreferenceController implements public class DarkModeActivationPreferenceController extends BasePreferenceController
OnCheckedChangeListener { implements Preference.OnPreferenceChangeListener {
private final UiModeManager mUiModeManager; private final UiModeManager mUiModeManager;
private final MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;
private MainSwitchPreference mPreference;
public DarkModeActivationPreferenceController(Context context, String preferenceKey) { public DarkModeActivationPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
@@ -49,7 +46,7 @@ public class DarkModeActivationPreferenceController extends BasePreferenceContro
public final void updateState(Preference preference) { public final void updateState(Preference preference) {
final boolean active = (mContext.getResources().getConfiguration().uiMode final boolean active = (mContext.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_YES) != 0; & Configuration.UI_MODE_NIGHT_YES) != 0;
mPreference.setChecked(active); ((MainSwitchPreference) preference).setChecked(active);
} }
@Override @Override
@@ -60,18 +57,12 @@ public class DarkModeActivationPreferenceController extends BasePreferenceContro
} }
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public boolean onPreferenceChange(@NonNull Preference preference, @NonNull Object newValue) {
mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory()); mMetricsFeatureProvider.logClickedPreference(preference, getMetricsCategory());
final boolean active = (mContext.getResources().getConfiguration().uiMode final boolean active = (mContext.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_YES) != 0; & Configuration.UI_MODE_NIGHT_YES) != 0;
mUiModeManager.setNightModeActivated(!active); mUiModeManager.setNightModeActivated(!active);
} return true;
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = (MainSwitchPreference) screen.findPreference(getPreferenceKey());
mPreference.addOnSwitchChangeListener(this);
} }
@Override @Override