Merge "Ensure only one approved NAS" into sc-dev
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -177,6 +177,25 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
|
||||
assertTrue(mAssistants.mIsUserChanged.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReadXml_multiApproved() throws Exception {
|
||||
String xml = "<enabled_assistants version=\"4\" defaults=\"b/b\">"
|
||||
+ "<service_listing approved=\"a/a:b/b\" user=\"0\" primary=\"true\""
|
||||
+ "user_changed=\"true\"/>"
|
||||
+ "</enabled_assistants>";
|
||||
|
||||
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 = "<enabled_assistants version=\"2\" defaults=\"b\\b\">"
|
||||
|
||||
Reference in New Issue
Block a user