diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 9bae712a8f3bc..d41852e68c780 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -9193,16 +9193,6 @@ public final class Settings { public static final String EMERGENCY_GESTURE_SOUND_ENABLED = "emergency_gesture_sound_enabled"; - /** - * The power button "cooldown" period in milliseconds after the Emergency gesture is - * triggered, during which single-key actions on the power button are suppressed. Cooldown - * period is disabled if set to zero. - * - * @hide - */ - public static final String EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS = - "emergency_gesture_power_button_cooldown_period_ms"; - /** * Whether the camera launch gesture to double tap the power button when the screen is off * should be disabled. @@ -13763,6 +13753,16 @@ public final class Settings { @Readable public static final String EMERGENCY_AFFORDANCE_NEEDED = "emergency_affordance_needed"; + /** + * The power button "cooldown" period in milliseconds after the Emergency gesture is + * triggered, during which single-key actions on the power button are suppressed. Cooldown + * period is disabled if set to zero. + * + * @hide + */ + public static final String EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS = + "emergency_gesture_power_button_cooldown_period_ms"; + /** * Whether to enable automatic system server heap dumps. This only works on userdebug or * eng builds, not on user builds. This is set by the user and overrides the config value. diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java index d0448ef637933..389d271043ba0 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java @@ -21,6 +21,7 @@ import static android.provider.settings.validators.SettingsValidators.ANY_INTEGE import static android.provider.settings.validators.SettingsValidators.ANY_STRING_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.BOOLEAN_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR; +import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.PACKAGE_NAME_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.PERCENTAGE_INTEGER_VALIDATOR; import static android.view.Display.HdrCapabilities.HDR_TYPES; @@ -83,6 +84,8 @@ public class GlobalSettingsValidators { VALIDATORS.put(Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED, ANY_STRING_VALIDATOR); VALIDATORS.put( Global.EMERGENCY_TONE, new DiscreteValueValidator(new String[] {"0", "1", "2"})); + VALIDATORS.put(Global.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, + NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Global.CALL_AUTO_RETRY, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.DOCK_AUDIO_MEDIA_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put( diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index 6671073cd698d..9f883960981b3 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -272,8 +272,6 @@ public class SecureSettingsValidators { VALIDATORS.put(Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.EMERGENCY_GESTURE_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.EMERGENCY_GESTURE_SOUND_ENABLED, BOOLEAN_VALIDATOR); - VALIDATORS.put(Secure.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, - NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.ADAPTIVE_CONNECTIVITY_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put( Secure.ASSIST_HANDLES_LEARNING_TIME_ELAPSED_MILLIS, NONE_NEGATIVE_LONG_VALIDATOR); diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index 6a8e87679cfd7..1f26fb2ef51d4 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -256,6 +256,7 @@ public class SettingsBackupTest { Settings.Global.DROPBOX_RESERVE_PERCENT, Settings.Global.DROPBOX_TAG_PREFIX, Settings.Global.EMERGENCY_AFFORDANCE_NEEDED, + Settings.Global.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, Settings.Global.EMULATE_DISPLAY_CUTOUT, Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, Settings.Global.ENABLE_CACHE_QUOTA_CALCULATION, diff --git a/services/core/java/com/android/server/GestureLauncherService.java b/services/core/java/com/android/server/GestureLauncherService.java index db5aa9db33886..ab8b6ab491f15 100644 --- a/services/core/java/com/android/server/GestureLauncherService.java +++ b/services/core/java/com/android/server/GestureLauncherService.java @@ -84,13 +84,13 @@ public class GestureLauncherService extends SystemService { /** * Default value of the power button "cooldown" period after the Emergency gesture is triggered. - * See {@link Settings.Secure#EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS} + * See {@link Settings.Global#EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS} */ private static final int EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS_DEFAULT = 3000; /** * Maximum value of the power button "cooldown" period after the Emergency gesture is triggered. - * The value read from {@link Settings.Secure#EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS} + * The value read from {@link Settings.Global#EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS} * is capped at this maximum. */ @VisibleForTesting @@ -253,8 +253,8 @@ public class GestureLauncherService extends SystemService { Settings.Secure.getUriFor(Settings.Secure.EMERGENCY_GESTURE_ENABLED), false, mSettingObserver, mUserId); mContext.getContentResolver().registerContentObserver( - Settings.Secure.getUriFor( - Settings.Secure.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS), + Settings.Global.getUriFor( + Settings.Global.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS), false, mSettingObserver, mUserId); } @@ -439,9 +439,10 @@ public class GestureLauncherService extends SystemService { */ @VisibleForTesting static int getEmergencyGesturePowerButtonCooldownPeriodMs(Context context, int userId) { - int cooldown = Settings.Secure.getIntForUser(context.getContentResolver(), - Settings.Secure.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, - EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS_DEFAULT, userId); + int cooldown = Settings.Global.getInt(context.getContentResolver(), + Settings.Global.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, + EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS_DEFAULT); + return Math.min(cooldown, EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS_MAX); } diff --git a/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java b/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java index a0d86c9268fb3..3d3c1abb3e915 100644 --- a/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/GestureLauncherServiceTest.java @@ -1450,11 +1450,10 @@ public class GestureLauncherServiceTest { } private void withEmergencyGesturePowerButtonCooldownPeriodMsValue(int period) { - Settings.Secure.putIntForUser( + Settings.Global.putInt( mContentResolver, - Settings.Secure.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, - period, - UserHandle.USER_CURRENT); + Settings.Global.EMERGENCY_GESTURE_POWER_BUTTON_COOLDOWN_PERIOD_MS, + period); } private void withUserSetupCompleteValue(boolean userSetupComplete) {