Fix keyboard vibration settings delay

The default settings observer delay is 10s for
background service. It cause the apps get the
settings update delay and lead a unsync behavior.

Update the settings change without delay.

Bug: 327094397
Test: Manual test with bug steps
Test: atest KeyboardVibrationTogglePreferenceControllerTest
Change-Id: Ib1c23ec9e1442e8397c7a36ffa157594ac64a9b3
This commit is contained in:
Wilson Wu
2024-03-13 06:33:08 +00:00
parent 01bd498503
commit f2174611b8
2 changed files with 11 additions and 2 deletions

View File

@@ -22,6 +22,7 @@ import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import android.app.settings.SettingsEnums;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
@@ -157,8 +158,11 @@ public class KeyboardVibrationTogglePreferenceController extends TogglePreferenc
}
private boolean updateKeyboardVibrationSetting(boolean enable) {
final boolean success = Settings.System.putInt(mContext.getContentResolver(),
KEYBOARD_VIBRATION_ENABLED, enable ? ON : OFF);
final ContentResolver contentResolver = mContext.getContentResolver();
final boolean success = Settings.System.putInt(contentResolver,
KEYBOARD_VIBRATION_ENABLED, enable ? ON : OFF);
contentResolver.notifyChange(Settings.System.getUriFor(KEYBOARD_VIBRATION_ENABLED),
null /* observer */, ContentResolver.NOTIFY_NO_DELAY);
if (!success) {
Log.w(TAG, "Update settings database error!");
}