diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java index 3dea7833964e3..7a7bcede630e8 100644 --- a/services/core/java/com/android/server/notification/RankingHelper.java +++ b/services/core/java/com/android/server/notification/RankingHelper.java @@ -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"); } diff --git a/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java b/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java index 9f7c51552f14a..41da88f451524 100644 --- a/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java +++ b/services/tests/notification/src/com/android/server/notification/RankingHelperTest.java @@ -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; @@ -570,14 +571,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); }