Loading core/java/android/app/Notification.java +25 −21 Original line number Diff line number Diff line Loading @@ -2833,9 +2833,11 @@ public class Notification implements Parcelable } /** * Note all {@link Uri} that are referenced internally, with the expectation * that Uri permission grants will need to be issued to ensure the recipient * of this object is able to render its contents. * Note all {@link Uri} that are referenced internally, with the expectation that Uri permission * grants will need to be issued to ensure the recipient of this object is able to render its * contents. * See b/281044385 for more context and examples about what happens when this isn't done * correctly. * * @hide */ Loading Loading @@ -2882,13 +2884,13 @@ public class Notification implements Parcelable ArrayList<Person> people = extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, android.app.Person.class); if (people != null && !people.isEmpty()) { for (Person p : people) { visitor.accept(p.getIconUri()); p.visitUris(visitor); } } final Person person = extras.getParcelable(EXTRA_MESSAGING_PERSON, Person.class); if (person != null) { visitor.accept(person.getIconUri()); person.visitUris(visitor); } final RemoteInputHistoryItem[] history = extras.getParcelableArray( Loading @@ -2910,12 +2912,7 @@ public class Notification implements Parcelable if (!ArrayUtils.isEmpty(messages)) { for (MessagingStyle.Message message : MessagingStyle.Message .getMessagesFromBundleArray(messages)) { visitor.accept(message.getDataUri()); Person senderPerson = message.getSenderPerson(); if (senderPerson != null) { visitor.accept(senderPerson.getIconUri()); } message.visitUris(visitor); } } Loading @@ -2924,12 +2921,7 @@ public class Notification implements Parcelable if (!ArrayUtils.isEmpty(historic)) { for (MessagingStyle.Message message : MessagingStyle.Message .getMessagesFromBundleArray(historic)) { visitor.accept(message.getDataUri()); Person senderPerson = message.getSenderPerson(); if (senderPerson != null) { visitor.accept(senderPerson.getIconUri()); } message.visitUris(visitor); } } Loading @@ -2939,7 +2931,7 @@ public class Notification implements Parcelable if (isStyle(CallStyle.class) & extras != null) { Person callPerson = extras.getParcelable(EXTRA_CALL_PERSON, Person.class); if (callPerson != null) { visitor.accept(callPerson.getIconUri()); callPerson.visitUris(visitor); } visitIconUri(visitor, extras.getParcelable(EXTRA_VERIFICATION_ICON, Icon.class)); } Loading Loading @@ -8832,6 +8824,18 @@ public class Notification implements Parcelable return bundle; } /** * See {@link Notification#visitUris(Consumer)}. * * @hide */ public void visitUris(@NonNull Consumer<Uri> visitor) { visitor.accept(getDataUri()); if (mSender != null) { mSender.visitUris(visitor); } } /** * Returns a list of messages read from the given bundle list, e.g. * {@link #EXTRA_MESSAGES} or {@link #EXTRA_HISTORIC_MESSAGES}. Loading core/java/android/app/Person.java +14 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.os.Parcel; import android.os.Parcelable; import java.util.Objects; import java.util.function.Consumer; /** * Provides an immutable reference to an entity that appears repeatedly on different surfaces of the Loading Loading @@ -177,6 +178,19 @@ public final class Person implements Parcelable { dest.writeBoolean(mIsBot); } /** * Note all {@link Uri} that are referenced internally, with the expectation that Uri permission * grants will need to be issued to ensure the recipient of this object is able to render its * contents. * See b/281044385 for more context and examples about what happens when this isn't done * correctly. * * @hide */ public void visitUris(@NonNull Consumer<Uri> visitor) { visitor.accept(getIconUri()); } /** Builder for the immutable {@link Person} class. */ public static class Builder { @Nullable private CharSequence mName; Loading Loading
core/java/android/app/Notification.java +25 −21 Original line number Diff line number Diff line Loading @@ -2833,9 +2833,11 @@ public class Notification implements Parcelable } /** * Note all {@link Uri} that are referenced internally, with the expectation * that Uri permission grants will need to be issued to ensure the recipient * of this object is able to render its contents. * Note all {@link Uri} that are referenced internally, with the expectation that Uri permission * grants will need to be issued to ensure the recipient of this object is able to render its * contents. * See b/281044385 for more context and examples about what happens when this isn't done * correctly. * * @hide */ Loading Loading @@ -2882,13 +2884,13 @@ public class Notification implements Parcelable ArrayList<Person> people = extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, android.app.Person.class); if (people != null && !people.isEmpty()) { for (Person p : people) { visitor.accept(p.getIconUri()); p.visitUris(visitor); } } final Person person = extras.getParcelable(EXTRA_MESSAGING_PERSON, Person.class); if (person != null) { visitor.accept(person.getIconUri()); person.visitUris(visitor); } final RemoteInputHistoryItem[] history = extras.getParcelableArray( Loading @@ -2910,12 +2912,7 @@ public class Notification implements Parcelable if (!ArrayUtils.isEmpty(messages)) { for (MessagingStyle.Message message : MessagingStyle.Message .getMessagesFromBundleArray(messages)) { visitor.accept(message.getDataUri()); Person senderPerson = message.getSenderPerson(); if (senderPerson != null) { visitor.accept(senderPerson.getIconUri()); } message.visitUris(visitor); } } Loading @@ -2924,12 +2921,7 @@ public class Notification implements Parcelable if (!ArrayUtils.isEmpty(historic)) { for (MessagingStyle.Message message : MessagingStyle.Message .getMessagesFromBundleArray(historic)) { visitor.accept(message.getDataUri()); Person senderPerson = message.getSenderPerson(); if (senderPerson != null) { visitor.accept(senderPerson.getIconUri()); } message.visitUris(visitor); } } Loading @@ -2939,7 +2931,7 @@ public class Notification implements Parcelable if (isStyle(CallStyle.class) & extras != null) { Person callPerson = extras.getParcelable(EXTRA_CALL_PERSON, Person.class); if (callPerson != null) { visitor.accept(callPerson.getIconUri()); callPerson.visitUris(visitor); } visitIconUri(visitor, extras.getParcelable(EXTRA_VERIFICATION_ICON, Icon.class)); } Loading Loading @@ -8832,6 +8824,18 @@ public class Notification implements Parcelable return bundle; } /** * See {@link Notification#visitUris(Consumer)}. * * @hide */ public void visitUris(@NonNull Consumer<Uri> visitor) { visitor.accept(getDataUri()); if (mSender != null) { mSender.visitUris(visitor); } } /** * Returns a list of messages read from the given bundle list, e.g. * {@link #EXTRA_MESSAGES} or {@link #EXTRA_HISTORIC_MESSAGES}. Loading
core/java/android/app/Person.java +14 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.os.Parcel; import android.os.Parcelable; import java.util.Objects; import java.util.function.Consumer; /** * Provides an immutable reference to an entity that appears repeatedly on different surfaces of the Loading Loading @@ -177,6 +178,19 @@ public final class Person implements Parcelable { dest.writeBoolean(mIsBot); } /** * Note all {@link Uri} that are referenced internally, with the expectation that Uri permission * grants will need to be issued to ensure the recipient of this object is able to render its * contents. * See b/281044385 for more context and examples about what happens when this isn't done * correctly. * * @hide */ public void visitUris(@NonNull Consumer<Uri> visitor) { visitor.accept(getIconUri()); } /** Builder for the immutable {@link Person} class. */ public static class Builder { @Nullable private CharSequence mName; Loading