Loading api/test-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -2368,7 +2368,7 @@ package android.provider { field public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis"; field public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis"; field public static final String NOTIFICATION_BADGING = "notification_badging"; field public static final String NOTIFICATION_BUBBLES = "notification_bubbles"; field @Deprecated public static final String NOTIFICATION_BUBBLES = "notification_bubbles"; field @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static final String SYNC_PARENT_SOUNDS = "sync_parent_sounds"; field public static final String USER_SETUP_COMPLETE = "user_setup_complete"; field public static final String VOICE_INTERACTION_SERVICE = "voice_interaction_service"; Loading core/java/android/provider/Settings.java +6 −0 Original line number Diff line number Diff line Loading @@ -8687,10 +8687,16 @@ public final class Settings { * Whether the notification bubbles are globally enabled * The value is boolean (1 or 0). * @hide * @deprecated use {@link Global#NOTIFICATION_BUBBLES} instead. */ @TestApi @Deprecated public static final String NOTIFICATION_BUBBLES = "notification_bubbles"; /** * @deprecated use {@link Global#NOTIFICATION_BUBBLES_VALIDATOR} instead. */ @Deprecated private static final Validator NOTIFICATION_BUBBLES_VALIDATOR = BOOLEAN_VALIDATOR; /** Loading packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +1 −1 Original line number Diff line number Diff line Loading @@ -2153,7 +2153,7 @@ class SettingsProtoDumpUtil { Settings.Secure.NOTIFICATION_BADGING, SecureSettingsProto.Notification.BADGING); dumpSetting(s, p, Settings.Secure.NOTIFICATION_BUBBLES, Settings.Global.NOTIFICATION_BUBBLES, SecureSettingsProto.Notification.BUBBLES); dumpSetting(s, p, Settings.Secure.SHOW_NOTE_ABOUT_NOTIFICATION_HIDING, Loading services/core/java/com/android/server/notification/NotificationManagerService.java +41 −4 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_TOAST; import static com.android.server.am.PendingIntentRecord.FLAG_ACTIVITY_SENDER; import static com.android.server.am.PendingIntentRecord.FLAG_BROADCAST_SENDER; import static com.android.server.am.PendingIntentRecord.FLAG_SERVICE_SENDER; import static com.android.server.notification.PreferencesHelper.DEFAULT_ALLOW_BUBBLE; import static com.android.server.utils.PriorityDump.PRIORITY_ARG; import static com.android.server.utils.PriorityDump.PRIORITY_ARG_CRITICAL; import static com.android.server.utils.PriorityDump.PRIORITY_ARG_NORMAL; Loading Loading @@ -1358,8 +1359,10 @@ public class NotificationManagerService extends SystemService { private final class SettingsObserver extends ContentObserver { private final Uri NOTIFICATION_BADGING_URI = Settings.Secure.getUriFor(Settings.Secure.NOTIFICATION_BADGING); private final Uri NOTIFICATION_BUBBLES_URI = Settings.Secure.getUriFor(Settings.Global.NOTIFICATION_BUBBLES); private final Uri NOTIFICATION_BUBBLES_URI_GLOBAL = Settings.Global.getUriFor(Settings.Global.NOTIFICATION_BUBBLES); private final Uri NOTIFICATION_BUBBLES_URI_SECURE = Settings.Secure.getUriFor(Settings.Secure.NOTIFICATION_BUBBLES); private final Uri NOTIFICATION_LIGHT_PULSE_URI = Settings.System.getUriFor(Settings.System.NOTIFICATION_LIGHT_PULSE); private final Uri NOTIFICATION_RATE_LIMIT_URI Loading @@ -1377,7 +1380,9 @@ public class NotificationManagerService extends SystemService { false, this, UserHandle.USER_ALL); resolver.registerContentObserver(NOTIFICATION_RATE_LIMIT_URI, false, this, UserHandle.USER_ALL); resolver.registerContentObserver(NOTIFICATION_BUBBLES_URI, resolver.registerContentObserver(NOTIFICATION_BUBBLES_URI_GLOBAL, false, this, UserHandle.USER_ALL); resolver.registerContentObserver(NOTIFICATION_BUBBLES_URI_SECURE, false, this, UserHandle.USER_ALL); update(null); } Loading @@ -1404,9 +1409,41 @@ public class NotificationManagerService extends SystemService { if (uri == null || NOTIFICATION_BADGING_URI.equals(uri)) { mPreferencesHelper.updateBadgingEnabled(); } if (uri == null || NOTIFICATION_BUBBLES_URI.equals(uri)) { // In QPR we moved the setting to Global rather than Secure so that the setting // applied to work profiles. Unfortunately we need to maintain both to pass CTS without // a change to CTS outside of a normal letter release. if (uri == null || NOTIFICATION_BUBBLES_URI_GLOBAL.equals(uri)) { syncBubbleSettings(resolver, NOTIFICATION_BUBBLES_URI_GLOBAL); mPreferencesHelper.updateBubblesEnabled(); } if (NOTIFICATION_BUBBLES_URI_SECURE.equals(uri)) { syncBubbleSettings(resolver, NOTIFICATION_BUBBLES_URI_SECURE); } } private void syncBubbleSettings(ContentResolver resolver, Uri settingToFollow) { boolean followSecureSetting = settingToFollow.equals(NOTIFICATION_BUBBLES_URI_SECURE); int secureSettingValue = Settings.Secure.getInt(resolver, Settings.Secure.NOTIFICATION_BUBBLES, DEFAULT_ALLOW_BUBBLE ? 1 : 0); int globalSettingValue = Settings.Global.getInt(resolver, Settings.Global.NOTIFICATION_BUBBLES, DEFAULT_ALLOW_BUBBLE ? 1 : 0); if (globalSettingValue == secureSettingValue) { return; } if (followSecureSetting) { // Global => secure Settings.Global.putInt(resolver, Settings.Global.NOTIFICATION_BUBBLES, secureSettingValue); } else { // Secure => Global Settings.Secure.putInt(resolver, Settings.Secure.NOTIFICATION_BADGING, globalSettingValue); } } } Loading services/core/java/com/android/server/notification/PreferencesHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ public class PreferencesHelper implements RankingConfig { @VisibleForTesting static final boolean DEFAULT_HIDE_SILENT_STATUS_BAR_ICONS = false; private static final boolean DEFAULT_SHOW_BADGE = true; private static final boolean DEFAULT_ALLOW_BUBBLE = true; static final boolean DEFAULT_ALLOW_BUBBLE = true; private static final boolean DEFAULT_OEM_LOCKED_IMPORTANCE = false; private static final boolean DEFAULT_APP_LOCKED_IMPORTANCE = false; Loading Loading
api/test-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -2368,7 +2368,7 @@ package android.provider { field public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis"; field public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis"; field public static final String NOTIFICATION_BADGING = "notification_badging"; field public static final String NOTIFICATION_BUBBLES = "notification_bubbles"; field @Deprecated public static final String NOTIFICATION_BUBBLES = "notification_bubbles"; field @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static final String SYNC_PARENT_SOUNDS = "sync_parent_sounds"; field public static final String USER_SETUP_COMPLETE = "user_setup_complete"; field public static final String VOICE_INTERACTION_SERVICE = "voice_interaction_service"; Loading
core/java/android/provider/Settings.java +6 −0 Original line number Diff line number Diff line Loading @@ -8687,10 +8687,16 @@ public final class Settings { * Whether the notification bubbles are globally enabled * The value is boolean (1 or 0). * @hide * @deprecated use {@link Global#NOTIFICATION_BUBBLES} instead. */ @TestApi @Deprecated public static final String NOTIFICATION_BUBBLES = "notification_bubbles"; /** * @deprecated use {@link Global#NOTIFICATION_BUBBLES_VALIDATOR} instead. */ @Deprecated private static final Validator NOTIFICATION_BUBBLES_VALIDATOR = BOOLEAN_VALIDATOR; /** Loading
packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +1 −1 Original line number Diff line number Diff line Loading @@ -2153,7 +2153,7 @@ class SettingsProtoDumpUtil { Settings.Secure.NOTIFICATION_BADGING, SecureSettingsProto.Notification.BADGING); dumpSetting(s, p, Settings.Secure.NOTIFICATION_BUBBLES, Settings.Global.NOTIFICATION_BUBBLES, SecureSettingsProto.Notification.BUBBLES); dumpSetting(s, p, Settings.Secure.SHOW_NOTE_ABOUT_NOTIFICATION_HIDING, Loading
services/core/java/com/android/server/notification/NotificationManagerService.java +41 −4 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_TOAST; import static com.android.server.am.PendingIntentRecord.FLAG_ACTIVITY_SENDER; import static com.android.server.am.PendingIntentRecord.FLAG_BROADCAST_SENDER; import static com.android.server.am.PendingIntentRecord.FLAG_SERVICE_SENDER; import static com.android.server.notification.PreferencesHelper.DEFAULT_ALLOW_BUBBLE; import static com.android.server.utils.PriorityDump.PRIORITY_ARG; import static com.android.server.utils.PriorityDump.PRIORITY_ARG_CRITICAL; import static com.android.server.utils.PriorityDump.PRIORITY_ARG_NORMAL; Loading Loading @@ -1358,8 +1359,10 @@ public class NotificationManagerService extends SystemService { private final class SettingsObserver extends ContentObserver { private final Uri NOTIFICATION_BADGING_URI = Settings.Secure.getUriFor(Settings.Secure.NOTIFICATION_BADGING); private final Uri NOTIFICATION_BUBBLES_URI = Settings.Secure.getUriFor(Settings.Global.NOTIFICATION_BUBBLES); private final Uri NOTIFICATION_BUBBLES_URI_GLOBAL = Settings.Global.getUriFor(Settings.Global.NOTIFICATION_BUBBLES); private final Uri NOTIFICATION_BUBBLES_URI_SECURE = Settings.Secure.getUriFor(Settings.Secure.NOTIFICATION_BUBBLES); private final Uri NOTIFICATION_LIGHT_PULSE_URI = Settings.System.getUriFor(Settings.System.NOTIFICATION_LIGHT_PULSE); private final Uri NOTIFICATION_RATE_LIMIT_URI Loading @@ -1377,7 +1380,9 @@ public class NotificationManagerService extends SystemService { false, this, UserHandle.USER_ALL); resolver.registerContentObserver(NOTIFICATION_RATE_LIMIT_URI, false, this, UserHandle.USER_ALL); resolver.registerContentObserver(NOTIFICATION_BUBBLES_URI, resolver.registerContentObserver(NOTIFICATION_BUBBLES_URI_GLOBAL, false, this, UserHandle.USER_ALL); resolver.registerContentObserver(NOTIFICATION_BUBBLES_URI_SECURE, false, this, UserHandle.USER_ALL); update(null); } Loading @@ -1404,9 +1409,41 @@ public class NotificationManagerService extends SystemService { if (uri == null || NOTIFICATION_BADGING_URI.equals(uri)) { mPreferencesHelper.updateBadgingEnabled(); } if (uri == null || NOTIFICATION_BUBBLES_URI.equals(uri)) { // In QPR we moved the setting to Global rather than Secure so that the setting // applied to work profiles. Unfortunately we need to maintain both to pass CTS without // a change to CTS outside of a normal letter release. if (uri == null || NOTIFICATION_BUBBLES_URI_GLOBAL.equals(uri)) { syncBubbleSettings(resolver, NOTIFICATION_BUBBLES_URI_GLOBAL); mPreferencesHelper.updateBubblesEnabled(); } if (NOTIFICATION_BUBBLES_URI_SECURE.equals(uri)) { syncBubbleSettings(resolver, NOTIFICATION_BUBBLES_URI_SECURE); } } private void syncBubbleSettings(ContentResolver resolver, Uri settingToFollow) { boolean followSecureSetting = settingToFollow.equals(NOTIFICATION_BUBBLES_URI_SECURE); int secureSettingValue = Settings.Secure.getInt(resolver, Settings.Secure.NOTIFICATION_BUBBLES, DEFAULT_ALLOW_BUBBLE ? 1 : 0); int globalSettingValue = Settings.Global.getInt(resolver, Settings.Global.NOTIFICATION_BUBBLES, DEFAULT_ALLOW_BUBBLE ? 1 : 0); if (globalSettingValue == secureSettingValue) { return; } if (followSecureSetting) { // Global => secure Settings.Global.putInt(resolver, Settings.Global.NOTIFICATION_BUBBLES, secureSettingValue); } else { // Secure => Global Settings.Secure.putInt(resolver, Settings.Secure.NOTIFICATION_BADGING, globalSettingValue); } } } Loading
services/core/java/com/android/server/notification/PreferencesHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ public class PreferencesHelper implements RankingConfig { @VisibleForTesting static final boolean DEFAULT_HIDE_SILENT_STATUS_BAR_ICONS = false; private static final boolean DEFAULT_SHOW_BADGE = true; private static final boolean DEFAULT_ALLOW_BUBBLE = true; static final boolean DEFAULT_ALLOW_BUBBLE = true; private static final boolean DEFAULT_OEM_LOCKED_IMPORTANCE = false; private static final boolean DEFAULT_APP_LOCKED_IMPORTANCE = false; Loading