diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 54e4909c12aff..526b07d956e67 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5670,6 +5670,36 @@ public final class Settings { */ public static final String LOCALE_PREFERENCES = "locale_preferences"; + /** + * Setting to enable camera flash notification feature. + * + * @hide + */ + public static final String CAMERA_FLASH_NOTIFICATION = "camera_flash_notification"; + + /** + * Setting to enable screen flash notification feature. + * + * @hide + */ + public static final String SCREEN_FLASH_NOTIFICATION = "screen_flash_notification"; + + /** + * Integer property that specifes the color for screen flash notification as a + * packed 32-bit color. + * + * @see android.graphics.Color#argb + * @hide + */ + public static final String SCREEN_FLASH_NOTIFICATION_COLOR = + "screen_flash_notification_color_global"; + /** * IMPORTANT: If you add a new public settings you also have to add it to * PUBLIC_SETTINGS below. If the new setting is hidden you have to add @@ -5803,6 +5833,9 @@ public final class Settings { PRIVATE_SETTINGS.add(TOUCHPAD_NATURAL_SCROLLING); PRIVATE_SETTINGS.add(TOUCHPAD_TAP_TO_CLICK); PRIVATE_SETTINGS.add(TOUCHPAD_RIGHT_CLICK_ZONE); + PRIVATE_SETTINGS.add(CAMERA_FLASH_NOTIFICATION); + PRIVATE_SETTINGS.add(SCREEN_FLASH_NOTIFICATION); + PRIVATE_SETTINGS.add(SCREEN_FLASH_NOTIFICATION_COLOR); } /** diff --git a/core/proto/android/providers/settings/system.proto b/core/proto/android/providers/settings/system.proto index 146ac9d2c4251..7503dde440e0a 100644 --- a/core/proto/android/providers/settings/system.proto +++ b/core/proto/android/providers/settings/system.proto @@ -115,6 +115,9 @@ message SystemSettingsProto { optional SettingProto sound_cache = 2; optional SettingProto light_pulse = 3 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto vibration_intensity = 4 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto camera_flash_notification = 5 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto screen_flash_notification = 6 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto screen_flash_notification_color_global = 7 [ (android.privacy).dest = DEST_AUTOMATIC ]; } optional Notification notification = 17; diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java index c9d840a77b80d..6a5535d345db7 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java @@ -97,5 +97,8 @@ public class SystemSettings { Settings.System.TOUCHPAD_NATURAL_SCROLLING, Settings.System.TOUCHPAD_TAP_TO_CLICK, Settings.System.TOUCHPAD_RIGHT_CLICK_ZONE, + Settings.System.CAMERA_FLASH_NOTIFICATION, + Settings.System.SCREEN_FLASH_NOTIFICATION, + Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, }; } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java index c2a3ada535918..3fe12b3dab322 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java @@ -16,6 +16,7 @@ package android.provider.settings.validators; +import static android.provider.settings.validators.SettingsValidators.ANY_INTEGER_VALIDATOR; 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.COMPONENT_NAME_VALIDATOR; @@ -215,5 +216,8 @@ public class SystemSettingsValidators { VALIDATORS.put(System.UNREAD_NOTIFICATION_DOT_INDICATOR, BOOLEAN_VALIDATOR); VALIDATORS.put(System.AUTO_LAUNCH_MEDIA_CONTROLS, BOOLEAN_VALIDATOR); VALIDATORS.put(System.LOCALE_PREFERENCES, ANY_STRING_VALIDATOR); + VALIDATORS.put(System.CAMERA_FLASH_NOTIFICATION, BOOLEAN_VALIDATOR); + VALIDATORS.put(System.SCREEN_FLASH_NOTIFICATION, BOOLEAN_VALIDATOR); + VALIDATORS.put(System.SCREEN_FLASH_NOTIFICATION_COLOR, ANY_INTEGER_VALIDATOR); } } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index fb3c3136280e2..09c8a3520b362 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -2832,6 +2832,15 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.System.NOTIFICATION_VIBRATION_INTENSITY, SystemSettingsProto.Notification.VIBRATION_INTENSITY); + dumpSetting(s, p, + Settings.System.CAMERA_FLASH_NOTIFICATION, + SystemSettingsProto.Notification.CAMERA_FLASH_NOTIFICATION); + dumpSetting(s, p, + Settings.System.SCREEN_FLASH_NOTIFICATION, + SystemSettingsProto.Notification.SCREEN_FLASH_NOTIFICATION); + dumpSetting(s, p, + Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, + SystemSettingsProto.Notification.SCREEN_FLASH_NOTIFICATION_COLOR_GLOBAL); // Settings.System.NOTIFICATIONS_USE_RING_VOLUME intentionally excluded since it's deprecated. p.end(notificationToken);