DO NOT MERGE

Revert "Verify URI permissions for notification shortcutIcon."

This reverts commit 39a131783c.

Reason for revert: breaks build on rvc-dev based builds
rvc-dev based builds do not have ag/13901746

Change-Id: I3a1dadc6f21c39db5432847ca5d57a7d3f6ce2a6
This commit is contained in:
Abhijit Adsule
2023-05-10 00:39:56 +00:00
committed by Ioana Alexandru
parent 0e5fa22005
commit e10cae158a
2 changed files with 7 additions and 74 deletions

View File

@@ -2476,14 +2476,6 @@ public class Notification implements Parcelable
} }
} }
private static void visitIconUri(@NonNull Consumer<Uri> visitor, @Nullable Icon icon) {
if (icon == null) return;
final int iconType = icon.getType();
if (iconType == TYPE_URI || iconType == TYPE_URI_ADAPTIVE_BITMAP) {
visitor.accept(icon.getUri());
}
}
/** /**
* Note all {@link Uri} that are referenced internally, with the expectation * Note all {@link Uri} that are referenced internally, with the expectation
* that Uri permission grants will need to be issued to ensure the recipient * that Uri permission grants will need to be issued to ensure the recipient
@@ -2499,19 +2491,7 @@ public class Notification implements Parcelable
if (bigContentView != null) bigContentView.visitUris(visitor); if (bigContentView != null) bigContentView.visitUris(visitor);
if (headsUpContentView != null) headsUpContentView.visitUris(visitor); if (headsUpContentView != null) headsUpContentView.visitUris(visitor);
visitIconUri(visitor, mSmallIcon);
visitIconUri(visitor, mLargeIcon);
if (actions != null) {
for (Action action : actions) {
visitIconUri(visitor, action.getIcon());
}
}
if (extras != null) { if (extras != null) {
visitIconUri(visitor, extras.getParcelable(EXTRA_LARGE_ICON_BIG, Icon.class));
visitIconUri(visitor, extras.getParcelable(EXTRA_PICTURE_ICON, Icon.class));
visitor.accept(extras.getParcelable(EXTRA_AUDIO_CONTENTS_URI)); visitor.accept(extras.getParcelable(EXTRA_AUDIO_CONTENTS_URI));
if (extras.containsKey(EXTRA_BACKGROUND_IMAGE_URI)) { if (extras.containsKey(EXTRA_BACKGROUND_IMAGE_URI)) {
visitor.accept(Uri.parse(extras.getString(EXTRA_BACKGROUND_IMAGE_URI))); visitor.accept(Uri.parse(extras.getString(EXTRA_BACKGROUND_IMAGE_URI)));
@@ -2569,12 +2549,14 @@ public class Notification implements Parcelable
} }
} }
} }
visitIconUri(visitor, extras.getParcelable(EXTRA_CONVERSATION_ICON));
} }
if (mBubbleMetadata != null) { if (mBubbleMetadata != null && mBubbleMetadata.getIcon() != null) {
visitIconUri(visitor, mBubbleMetadata.getIcon()); final Icon icon = mBubbleMetadata.getIcon();
final int iconType = icon.getType();
if (iconType == TYPE_URI_ADAPTIVE_BITMAP || iconType == TYPE_URI) {
visitor.accept(icon.getUri());
}
} }
} }

View File

@@ -4268,8 +4268,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testVisitUris() throws Exception { public void testVisitUris() throws Exception {
final Uri audioContents = Uri.parse("content://com.example/audio"); final Uri audioContents = Uri.parse("content://com.example/audio");
final Uri backgroundImage = Uri.parse("content://com.example/background"); final Uri backgroundImage = Uri.parse("content://com.example/background");
final Icon smallIcon = Icon.createWithContentUri("content://media/small/icon");
final Icon largeIcon = Icon.createWithContentUri("content://media/large/icon");
final Icon personIcon1 = Icon.createWithContentUri("content://media/person1"); final Icon personIcon1 = Icon.createWithContentUri("content://media/person1");
final Icon personIcon2 = Icon.createWithContentUri("content://media/person2"); final Icon personIcon2 = Icon.createWithContentUri("content://media/person2");
final Icon personIcon3 = Icon.createWithContentUri("content://media/person3"); final Icon personIcon3 = Icon.createWithContentUri("content://media/person3");
@@ -4303,8 +4301,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Notification n = new Notification.Builder(mContext, "a") Notification n = new Notification.Builder(mContext, "a")
.setContentTitle("notification with uris") .setContentTitle("notification with uris")
.setSmallIcon(smallIcon) .setSmallIcon(android.R.drawable.sym_def_app_icon)
.setLargeIcon(largeIcon)
.addExtras(extras) .addExtras(extras)
.build(); .build();
@@ -4312,8 +4309,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
n.visitUris(visitor); n.visitUris(visitor);
verify(visitor, times(1)).accept(eq(audioContents)); verify(visitor, times(1)).accept(eq(audioContents));
verify(visitor, times(1)).accept(eq(backgroundImage)); verify(visitor, times(1)).accept(eq(backgroundImage));
verify(visitor, times(1)).accept(eq(smallIcon.getUri()));
verify(visitor, times(1)).accept(eq(largeIcon.getUri()));
verify(visitor, times(1)).accept(eq(personIcon1.getUri())); verify(visitor, times(1)).accept(eq(personIcon1.getUri()));
verify(visitor, times(1)).accept(eq(personIcon2.getUri())); verify(visitor, times(1)).accept(eq(personIcon2.getUri()));
verify(visitor, times(1)).accept(eq(personIcon3.getUri())); verify(visitor, times(1)).accept(eq(personIcon3.getUri()));
@@ -4321,50 +4316,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
verify(visitor, times(1)).accept(eq(historyUri2)); verify(visitor, times(1)).accept(eq(historyUri2));
} }
@Test
public void testVisitUris_messagingStyle() {
final Icon personIcon1 = Icon.createWithContentUri("content://media/person1");
final Icon personIcon2 = Icon.createWithContentUri("content://media/person2");
final Icon personIcon3 = Icon.createWithContentUri("content://media/person3");
final Person person1 = new Person.Builder()
.setName("Messaging Person 1")
.setIcon(personIcon1)
.build();
final Person person2 = new Person.Builder()
.setName("Messaging Person 2")
.setIcon(personIcon2)
.build();
final Person person3 = new Person.Builder()
.setName("Messaging Person 3")
.setIcon(personIcon3)
.build();
Icon shortcutIcon = Icon.createWithContentUri("content://media/shortcut");
Notification.Builder builder = new Notification.Builder(mContext, "a")
.setCategory(Notification.CATEGORY_MESSAGE)
.setContentTitle("new message!")
.setContentText("Conversation Notification")
.setSmallIcon(android.R.drawable.sym_def_app_icon);
Notification.MessagingStyle.Message message1 = new Notification.MessagingStyle.Message(
"Marco?", System.currentTimeMillis(), person2);
Notification.MessagingStyle.Message message2 = new Notification.MessagingStyle.Message(
"Polo!", System.currentTimeMillis(), person3);
Notification.MessagingStyle style = new Notification.MessagingStyle(person1)
.addMessage(message1)
.addMessage(message2)
.setShortcutIcon(shortcutIcon);
builder.setStyle(style);
Notification n = builder.build();
Consumer<Uri> visitor = (Consumer<Uri>) spy(Consumer.class);
n.visitUris(visitor);
verify(visitor, times(1)).accept(eq(shortcutIcon.getUri()));
verify(visitor, times(1)).accept(eq(personIcon1.getUri()));
verify(visitor, times(1)).accept(eq(personIcon2.getUri()));
verify(visitor, times(1)).accept(eq(personIcon3.getUri()));
}
@Test @Test
public void testSetNotificationPolicy_preP_setOldFields() { public void testSetNotificationPolicy_preP_setOldFields() {
ZenModeHelper mZenModeHelper = mock(ZenModeHelper.class); ZenModeHelper mZenModeHelper = mock(ZenModeHelper.class);