summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wilson Wu <wilsonwu@google.com> 2024-02-29 09:37:37 +0000
committer Wilson Wu <wilsonwu@google.com> 2024-03-04 02:55:59 +0000
commite46b6d5c370feadcd25e2bb0fa8852d30bb2571d (patch)
tree4e4516d301176521c0dfc32693c0650eda768c79
parent54a9156d9ae9b8846b02385e4eaae69c2a4c564e (diff)
Default keyboard vibration settings to touch feedback
Independent keyboard vibration settings is default on, it may be confusing if the user disable haptic but get keyboard haptics after OTA. Set the keyboard vibration default value based on the touch feedback settings to mitigate the confusion. Bug: 326648023 Test: manual Change-Id: I68be12e7394b9c2f5c19b377a3bbce9259b869c7
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java24
1 files changed, 23 insertions, 1 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index febce97031bb..1ead14ab6f4c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -3812,7 +3812,7 @@ public class SettingsProvider extends ContentProvider {
}
private final class UpgradeController {
- private static final int SETTINGS_VERSION = 225;
+ private static final int SETTINGS_VERSION = 226;
private final int mUserId;
@@ -6011,6 +6011,28 @@ public class SettingsProvider extends ContentProvider {
currentVersion = 225;
}
+ // Version 225: Set the System#KEYBOARD_VIBRATION_ENABLED based on touch
+ // feedback enabled state.
+ if (currentVersion == 225) {
+ final SettingsState systemSettings = getSystemSettingsLocked(userId);
+ final Setting touchFeedbackSettings = systemSettings
+ .getSettingLocked(Settings.System.HAPTIC_FEEDBACK_ENABLED);
+ final Setting keyboardVibrationSettings = systemSettings
+ .getSettingLocked(Settings.System.KEYBOARD_VIBRATION_ENABLED);
+ if (keyboardVibrationSettings.isNull()) {
+ if (!touchFeedbackSettings.isNull()) {
+ // Use touch feedback settings.
+ systemSettings.insertSettingOverrideableByRestoreLocked(
+ Settings.System.KEYBOARD_VIBRATION_ENABLED,
+ touchFeedbackSettings.getValue(),
+ touchFeedbackSettings.getTag(),
+ touchFeedbackSettings.isDefaultFromSystem(),
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+ }
+ currentVersion = 226;
+ }
+
// vXXX: Add new settings above this point.
if (currentVersion != newVersion) {