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());
+    }
+
 }