summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java14
-rwxr-xr-xservices/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java38
2 files changed, 45 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 3351bb1eb35b..898b9ea1119e 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -559,13 +559,6 @@ public class NotificationManagerService extends SystemService {
ArraySet<String> assistants = new ArraySet<>();
- String deviceAssistant = DeviceConfig.getProperty(
- DeviceConfig.NAMESPACE_SYSTEMUI,
- SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE);
- if (deviceAssistant != null) {
- assistants.addAll(Arrays.asList(deviceAssistant.split(
- ManagedServices.ENABLED_SERVICES_SEPARATOR)));
- }
assistants.addAll(Arrays.asList(getContext().getResources().getString(
com.android.internal.R.string.config_defaultAssistantAccessComponent)
.split(ManagedServices.ENABLED_SERVICES_SEPARATOR)));
@@ -594,6 +587,13 @@ public class NotificationManagerService extends SystemService {
}
protected void setDefaultAssistantForUser(int userId) {
+ String overrideDefaultAssistantString = DeviceConfig.getProperty(
+ DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE);
+ ComponentName overrideDefaultAssistant =
+ ComponentName.unflattenFromString(overrideDefaultAssistantString);
+ if (allowAssistant(userId, overrideDefaultAssistant)) return;
+
ArraySet<ComponentName> defaults = mAssistants.getDefaultComponents();
// We should have only one default assistant by default
// allowAssistant should execute once in practice
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 4d0cfbc6ad11..028ce5094651 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -57,6 +57,7 @@ import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
+import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
@@ -753,6 +754,43 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
+ public void testDefaultAssistant_overrideDefault() {
+ final int userId = 0;
+ final String testComponent = "package/class";
+ final List<UserInfo> userInfos = new ArrayList<>();
+ userInfos.add(new UserInfo(0, "", 0));
+ final ArraySet<ComponentName> validAssistants = new ArraySet<>();
+ validAssistants.add(ComponentName.unflattenFromString(testComponent));
+ final String originalComponent = DeviceConfig.getProperty(
+ DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE
+ );
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE,
+ testComponent,
+ false
+ );
+ when(mActivityManager.isLowRamDevice()).thenReturn(false);
+ when(mAssistants.queryPackageForServices(isNull(), anyInt(), anyInt()))
+ .thenReturn(validAssistants);
+ when(mAssistants.getDefaultComponents()).thenReturn(new ArraySet<>());
+ when(mUm.getEnabledProfiles(anyInt())).thenReturn(userInfos);
+
+ mService.setDefaultAssistantForUser(userId);
+
+ verify(mAssistants).setPackageOrComponentEnabled(
+ eq(testComponent), eq(userId), eq(true), eq(true));
+
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE,
+ originalComponent,
+ false
+ );
+ }
+
+ @Test
public void testCreateNotificationChannels_IdenticalChannelsInListIgnoresSecond()
throws Exception {
final NotificationChannel channel1 =