From 236eaed326bd5243efba2e39a2bfbd385b2385b3 Mon Sep 17 00:00:00 2001 From: Chloris Kuo Date: Wed, 12 Oct 2022 11:05:25 -0700 Subject: [PATCH] Disable Enhanced notifications setting when default NAS is not available Test: NotificationAssistantPreferenceControllerTest Bug: 251400808 Change-Id: Idec520013bea32cfaea0285f33c525a6e37f0124 (cherry picked from commit 873b8544e1cd3eac6b994c3ef67721cdd8441b5b) --- .../NotificationAssistantPreferenceController.java | 5 ++++- .../NotificationAssistantPreferenceControllerTest.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java index 2c02db9c327..ee36273d85c 100644 --- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java +++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java @@ -141,7 +141,10 @@ public class NotificationAssistantPreferenceController extends TogglePreferenceC @Override public void updateState(Preference preference) { super.updateState(preference); - if (isNASSettingActivityAvailable()) { + if (mDefaultNASComponent == null) { + preference.setEnabled(false); + ((PrimarySwitchPreference) preference).setSwitchEnabled(false); + } else if (isNASSettingActivityAvailable()) { preference.setIntent(mNASSettingIntent); } else { // Cannot find settings activity from the default NAS app diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java index b5946673815..1dac399dd70 100644 --- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java @@ -226,4 +226,14 @@ public class NotificationAssistantPreferenceControllerTest { .setNASMigrationDoneAndResetDefault(eq(10), anyBoolean()); } + @Test + public void testNASUnavailable_settingDisabled() throws Exception { + when(mBackend.getDefaultNotificationAssistant()).thenReturn(null); + mPreferenceController.getDefaultNASIntent(); + mPreferenceController.updateState(mPreference); + + verify(mPreference, times(1)).setSwitchEnabled(eq(false)); + assertFalse(mPreference.isEnabled()); + } + }