Move vibration preview invokation to the correct place am: f8eb8c3c90 am: df51217157

am: e8200af63a

Change-Id: Ie3d6485881cf48dfd75383985c5de4afad9b69f1
This commit is contained in:
Alexey Kuzmin
2019-06-04 19:33:32 -07:00
committed by android-build-merger

View File

@@ -128,6 +128,20 @@ public abstract class VibrationPreferenceFragment extends RadioButtonPickerFragm
Settings.System.putInt(getContext().getContentResolver(),
vibrationEnabledSetting, vibrationEnabled ? 1 : 0);
}
int previousIntensity = Settings.System.getInt(getContext().getContentResolver(),
getVibrationIntensitySetting(), 0);
if (vibrationEnabled && previousIntensity == candidate.getIntensity()) {
// We can't play preview effect here for all cases because that causes a data
// race (VibratorService may access intensity settings before these settings
// are updated). But we can't just play it in intensity settings update
// observer, because the intensity settings are not changed if we turn the
// vibration off, then on.
//
// In this case we sould play the preview here.
// To be refactored in b/132952771
playVibrationPreview();
}
}
}
// There are two conditions that need to change the intensity.
@@ -137,15 +151,6 @@ public abstract class VibrationPreferenceFragment extends RadioButtonPickerFragm
// Update vibration intensity setting
Settings.System.putInt(getContext().getContentResolver(),
getVibrationIntensitySetting(), candidate.getIntensity());
} else {
// We can't play preview effect here for all cases because that causes a data race
// (VibratorService may access intensity settings before these settings are updated).
// But we can't just play it in intensity settings update observer, because the
// intensity settings are not changed if we turn the vibration off, then on.
//
// In this case we sould play the preview here.
// To be refactored in b/132952771
playVibrationPreview();
}
}