commit | 236eaed326bd5243efba2e39a2bfbd385b2385b3 | [log] [tgz] |
---|---|---|
author | Chloris Kuo <chloriskuo@google.com> | Wed Oct 12 11:05:25 2022 -0700 |
committer | Chloris Kuo <chloriskuo@google.com> | Thu Oct 13 16:27:35 2022 +0000 |
tree | 6449a77f3a30ecea11d4fafd1cd241b9aeb6ed56 | |
parent | 7f6c833b896f1d0e9032dc63587430cbe97f1dfd [diff] |
Disable Enhanced notifications setting when default NAS is not available Test: NotificationAssistantPreferenceControllerTest Bug: 251400808 Change-Id: Idec520013bea32cfaea0285f33c525a6e37f0124 (cherry picked from commit 873b8544e1cd3eac6b994c3ef67721cdd8441b5b)
diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java index 2c02db9..ee36273 100644 --- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java +++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
@@ -141,7 +141,10 @@ @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 b594667..1dac399 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 @@ .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()); + } + }