Merge "Migrate SeekBarPreference to SliderPreference for haptics" into main

This commit is contained in:
Treehugger Robot
2025-02-26 13:01:19 -08:00
committed by Android (Google) Code Review
9 changed files with 115 additions and 110 deletions

View File

@@ -24,10 +24,10 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.SliderPreferenceController;
import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.widget.SliderPreference;
/**
* Abstract preference controller for a vibration intensity setting, that displays multiple
@@ -69,15 +69,16 @@ public abstract class VibrationIntensityPreferenceController extends SliderPrefe
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final SeekBarPreference preference = screen.findPreference(getPreferenceKey());
final SliderPreference preference = screen.findPreference(getPreferenceKey());
mSettingsContentObserver.onDisplayPreference(this, preference);
preference.setEnabled(mPreferenceConfig.isPreferenceEnabled());
preference.setSummaryProvider(unused -> mPreferenceConfig.getSummary());
preference.setMin(getMin());
preference.setMax(getMax());
preference.setSliderIncrement(1); // Discrete slider
// Haptics previews played by the Settings app don't bypass user settings to be played.
// The sliders continuously updates the intensity value so the previews can apply them.
preference.setContinuousUpdates(true);
preference.setUpdatesContinuously(true);
}
@Override

View File

@@ -42,6 +42,9 @@ public abstract class SliderPreferenceController extends BasePreferenceControlle
} else if (preference instanceof androidx.preference.SeekBarPreference) {
((androidx.preference.SeekBarPreference) preference)
.setValue(getSliderPosition());
} else if (preference instanceof com.android.settingslib.widget.SliderPreference) {
((com.android.settingslib.widget.SliderPreference) preference)
.setValue(getSliderPosition());
}
}