Add primary switch for vibration settings screen
This re-lands commit fd54fc34c6.
Add primary switch that updates the VIBRATE_ON user setting. Update all settings in this page to be disabled when this main toggle is
off.
Bug: 30028435
Test: VibrationMainSwitchPreferenceControllerTest
Reason for revert: Re-landing change with fixed tests
Change-Id: If9219e3d81dd698f47219c80cac10b079b63e45d
This commit is contained in:
@@ -58,16 +58,29 @@ public abstract class VibrationTogglePreferenceController extends TogglePreferen
|
||||
super.displayPreference(screen);
|
||||
final Preference preference = screen.findPreference(getPreferenceKey());
|
||||
mSettingsContentObserver.onDisplayPreference(this, preference);
|
||||
preference.setEnabled(mPreferenceConfig.isPreferenceEnabled());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (preference != null) {
|
||||
preference.setEnabled(mPreferenceConfig.isPreferenceEnabled());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
final int position = mPreferenceConfig.readIntensity();
|
||||
return position != Vibrator.VIBRATION_INTENSITY_OFF;
|
||||
return mPreferenceConfig.isPreferenceEnabled()
|
||||
&& (mPreferenceConfig.readIntensity() != Vibrator.VIBRATION_INTENSITY_OFF);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setChecked(boolean isChecked) {
|
||||
if (!mPreferenceConfig.isPreferenceEnabled()) {
|
||||
// Ignore toggle updates when the preference is disabled.
|
||||
return false;
|
||||
}
|
||||
final int newIntensity = isChecked
|
||||
? mPreferenceConfig.getDefaultIntensity()
|
||||
: Vibrator.VIBRATION_INTENSITY_OFF;
|
||||
|
||||
Reference in New Issue
Block a user