From e46b6d5c370feadcd25e2bb0fa8852d30bb2571d Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Thu, 29 Feb 2024 09:37:37 +0000 Subject: 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 --- .../providers/settings/SettingsProvider.java | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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) { -- cgit v1.2.3-59-g8ed1b