Loading services/core/java/com/android/server/notification/NotificationManagerService.java +7 −7 Original line number Diff line number Diff line Loading @@ -573,13 +573,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))); Loading Loading @@ -608,6 +601,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 Loading services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +38 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -752,6 +753,43 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { assertEquals(IMPORTANCE_HIGH, createdChannel.getImportance()); } @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 { Loading Loading
services/core/java/com/android/server/notification/NotificationManagerService.java +7 −7 Original line number Diff line number Diff line Loading @@ -573,13 +573,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))); Loading Loading @@ -608,6 +601,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 Loading
services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +38 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -752,6 +753,43 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { assertEquals(IMPORTANCE_HIGH, createdChannel.getImportance()); } @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 { Loading