diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index cee40e2991b86..0a1b16107a429 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -9473,6 +9473,19 @@ public class NotificationManagerService extends SystemService { } } + @Override + protected void addApprovedList(String approved, int userId, boolean isPrimary, + String userSet) { + if (!TextUtils.isEmpty(approved)) { + String[] approvedArray = approved.split(ENABLED_SERVICES_SEPARATOR); + if (approvedArray.length > 1) { + Slog.d(TAG, "More than one approved assistants"); + approved = approvedArray[0]; + } + } + super.addApprovedList(approved, userId, isPrimary, userSet); + } + public NotificationAssistants(Context context, Object lock, UserProfiles up, IPackageManager pm) { super(context, lock, up, pm); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java index feb924ce6cfa2..054a401d41af4 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java @@ -177,6 +177,25 @@ public class NotificationAssistantsTest extends UiServiceTestCase { assertTrue(mAssistants.mIsUserChanged.get(0)); } + @Test + public void testReadXml_multiApproved() throws Exception { + String xml = "" + + "" + + ""; + + final TypedXmlPullParser parser = Xml.newFastPullParser(); + parser.setInput(new BufferedInputStream( + new ByteArrayInputStream(xml.toString().getBytes())), null); + + parser.nextTag(); + mAssistants.readXml(parser, null, false, UserHandle.USER_ALL); + + assertEquals(1, mAssistants.getAllowedComponents(0).size()); + assertEquals(new ArrayList(Arrays.asList(new ComponentName("a", "a"))), + mAssistants.getAllowedComponents(0)); + } + @Test public void testXmlUpgradeExistingApprovedComponents() throws Exception { String xml = ""