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.
+ *
+ * - 0 = Off
+ *
- 1 = On
+ *
+ * @hide
+ */
+ public static final String CAMERA_FLASH_NOTIFICATION = "camera_flash_notification";
+
+ /**
+ * Setting to enable screen flash notification feature.
+ *
+ * - 0 = Off
+ *
- 1 = On
+ *
+ * @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);