Allow the creation of IMPORTANCE_NONE channels
- Users will still be notified of foreground services by the system even if the app posts their fg service notification to a blocked channel so this restriction isn't needed - This allows apps to cleanly port over their pre-channels notification settings Fixes: 62028083 Test: runtest systemui-notification (cherry picked from commit 3f25f4d6fe24f3782d6e156f9969d98ab3c8b4bf) Change-Id: I1cd8cfaf31f00088e267bd3fb1bd7912f4397c69
This commit is contained in:
@@ -564,7 +564,7 @@ public class RankingHelper implements RankingConfig {
|
||||
updateConfig();
|
||||
return;
|
||||
}
|
||||
if (channel.getImportance() < NotificationManager.IMPORTANCE_MIN
|
||||
if (channel.getImportance() < NotificationManager.IMPORTANCE_NONE
|
||||
|| channel.getImportance() > NotificationManager.IMPORTANCE_MAX) {
|
||||
throw new IllegalArgumentException("Invalid importance level");
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.server.notification;
|
||||
import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
|
||||
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
||||
import static android.app.NotificationManager.IMPORTANCE_LOW;
|
||||
import static android.app.NotificationManager.IMPORTANCE_MAX;
|
||||
import static android.app.NotificationManager.IMPORTANCE_NONE;
|
||||
import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
|
||||
|
||||
@@ -512,14 +513,32 @@ public class RankingHelperTest extends NotificationTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateChannel_ImportanceNone() throws Exception {
|
||||
public void testCreateChannel_badImportance() throws Exception {
|
||||
try {
|
||||
mHelper.createNotificationChannel(PKG, UID,
|
||||
new NotificationChannel("bananas", "bananas", IMPORTANCE_NONE), true);
|
||||
fail("Was allowed to create a blocked channel");
|
||||
new NotificationChannel("bananas", "bananas", IMPORTANCE_NONE - 1), true);
|
||||
fail("Was allowed to create a channel with invalid importance");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// yay
|
||||
}
|
||||
try {
|
||||
mHelper.createNotificationChannel(PKG, UID,
|
||||
new NotificationChannel("bananas", "bananas", IMPORTANCE_UNSPECIFIED), true);
|
||||
fail("Was allowed to create a channel with invalid importance");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// yay
|
||||
}
|
||||
try {
|
||||
mHelper.createNotificationChannel(PKG, UID,
|
||||
new NotificationChannel("bananas", "bananas", IMPORTANCE_MAX + 1), true);
|
||||
fail("Was allowed to create a channel with invalid importance");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// yay
|
||||
}
|
||||
mHelper.createNotificationChannel(PKG, UID,
|
||||
new NotificationChannel("bananas", "bananas", IMPORTANCE_NONE), true);
|
||||
mHelper.createNotificationChannel(PKG, UID,
|
||||
new NotificationChannel("bananas", "bananas", IMPORTANCE_MAX), true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user