From 9c6f1aa74b0b37b69bf3e6a4876602d5315a6b1e Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Fri, 15 Mar 2019 10:31:46 -0400 Subject: [PATCH] Fix channel configurability check Test: atest Fixes: 128669244 Change-Id: Ib4bc666262426ea1fb8fc034a361c93bdd5afb36 --- .../NotificationPreferenceController.java | 3 +++ .../NotificationPreferenceControllerTest.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java index 22f07be6d6b..3f535fb074f 100644 --- a/src/com/android/settings/notification/NotificationPreferenceController.java +++ b/src/com/android/settings/notification/NotificationPreferenceController.java @@ -111,6 +111,9 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc } protected boolean isChannelConfigurable() { + if (mAppRow != null && mAppRow.lockedImportance) { + return false; + } if (mChannel != null && mAppRow != null) { return !Objects.equals(mChannel.getId(), mAppRow.lockedChannelId); } diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java index 1ad93780fa3..2368af5f94b 100644 --- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java @@ -218,6 +218,20 @@ public class NotificationPreferenceControllerTest { assertTrue(mController.isChannelConfigurable()); } + @Test + public void testIsConfigurable_appLevel() { + NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); + appRow.lockedChannelId = "something"; + appRow.lockedImportance = true; + + mController.onResume(appRow, mock(NotificationChannel.class), null, null); + assertFalse(mController.isChannelConfigurable()); + + appRow.lockedImportance = false; + mController.onResume(appRow, mock(NotificationChannel.class), null, null); + assertTrue(mController.isChannelConfigurable()); + } + @Test public void testIsChannelBlockable_nonSystemAppsBlockable() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();