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