Remove ability to downgrade importance of existing channel.
Test: runtest systemui-notification
Bug: 63920384
Change-Id: Ic9f5c50c3d2a36ccd4ba9686dad1eb415b559215
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index fe2168b..9d7e4a2 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -415,16 +415,12 @@
* Creates a notification channel that notifications can be posted to.
*
* This can also be used to restore a deleted channel and to update an existing channel's
- * name, description, and/or importance.
+ * name and description.
*
* <p>The name and description should only be changed if the locale changes
* or in response to the user renaming this channel. For example, if a user has a channel
* named 'John Doe' that represents messages from a 'John Doe', and 'John Doe' changes his name
* to 'John Smith,' the channel can be renamed to match.
- *
- * <p>The importance of an existing channel will only be changed if the new importance is lower
- * than the current value and the user has not altered any settings on this channel.
- *
* All other fields are ignored for channels that already exist.
*
* @param channel the channel to create. Note that the created channel may differ from this
diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java
index 8420c90..d7b36aa 100644
--- a/services/core/java/com/android/server/notification/RankingHelper.java
+++ b/services/core/java/com/android/server/notification/RankingHelper.java
@@ -567,13 +567,6 @@
existing.setDescription(channel.getDescription());
existing.setBlockableSystem(channel.isBlockableSystem());
- // Apps are allowed to downgrade channel importance if the user has not changed any
- // fields on this channel yet.
- if (existing.getUserLockedFields() == 0 &&
- channel.getImportance() < existing.getImportance()) {
- existing.setImportance(channel.getImportance());
- }
-
updateConfig();
return;
}
diff --git a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
index bbec98c..3801697 100644
--- a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -242,42 +242,6 @@
}
@Test
- public void testCreateNotificationChannels_SecondCreateDoesNotChangeImportance()
- throws Exception {
- final NotificationChannel channel =
- new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_DEFAULT);
- mBinderService.createNotificationChannels(PKG,
- new ParceledListSlice(Arrays.asList(channel)));
-
- // Recreating the channel doesn't throw, but ignores importance.
- final NotificationChannel dupeChannel =
- new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_HIGH);
- mBinderService.createNotificationChannels(PKG,
- new ParceledListSlice(Arrays.asList(dupeChannel)));
- final NotificationChannel createdChannel =
- mBinderService.getNotificationChannel(PKG, "id");
- assertEquals(NotificationManager.IMPORTANCE_DEFAULT, createdChannel.getImportance());
- }
-
- @Test
- public void testCreateNotificationChannels_SecondCreateAllowedToDowngradeImportance()
- throws Exception {
- final NotificationChannel channel =
- new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_DEFAULT);
- mBinderService.createNotificationChannels(PKG,
- new ParceledListSlice(Arrays.asList(channel)));
-
- // Recreating with a lower importance is allowed to modify the channel.
- final NotificationChannel dupeChannel =
- new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_LOW);
- mBinderService.createNotificationChannels(PKG,
- new ParceledListSlice(Arrays.asList(dupeChannel)));
- final NotificationChannel createdChannel =
- mBinderService.getNotificationChannel(PKG, "id");
- assertEquals(NotificationManager.IMPORTANCE_LOW, createdChannel.getImportance());
- }
-
- @Test
public void testCreateNotificationChannels_CannotDowngradeImportanceIfAlreadyUpdated()
throws Exception {
final NotificationChannel channel =