Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc7efcc2 authored by Mady Mellor's avatar Mady Mellor Committed by Android (Google) Code Review
Browse files

Merge "Make sure we visit the icon URIs of Person objects on Notifications"

parents dafca1e0 726df929
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -2487,6 +2487,20 @@ public class Notification implements Parcelable
            if (extras.containsKey(EXTRA_BACKGROUND_IMAGE_URI)) {
                visitor.accept(Uri.parse(extras.getString(EXTRA_BACKGROUND_IMAGE_URI)));
            }

            ArrayList<Person> people = extras.getParcelableArrayList(EXTRA_PEOPLE_LIST);
            if (people != null && !people.isEmpty()) {
                for (Person p : people) {
                    if (p.getIconUri() != null) {
                        visitor.accept(p.getIconUri());
                    }
                }
            }

            final Person person = extras.getParcelable(EXTRA_MESSAGING_PERSON);
            if (person != null && person.getIconUri() != null) {
                visitor.accept(person.getIconUri());
            }
        }

        if (MessagingStyle.class.equals(getNotificationStyle()) && extras != null) {
@@ -2495,6 +2509,11 @@ public class Notification implements Parcelable
                for (MessagingStyle.Message message : MessagingStyle.Message
                        .getMessagesFromBundleArray(messages)) {
                    visitor.accept(message.getDataUri());

                    Person senderPerson = message.getSenderPerson();
                    if (senderPerson != null && senderPerson.getIconUri() != null) {
                        visitor.accept(senderPerson.getIconUri());
                    }
                }
            }

@@ -2503,6 +2522,11 @@ public class Notification implements Parcelable
                for (MessagingStyle.Message message : MessagingStyle.Message
                        .getMessagesFromBundleArray(historic)) {
                    visitor.accept(message.getDataUri());

                    Person senderPerson = message.getSenderPerson();
                    if (senderPerson != null && senderPerson.getIconUri() != null) {
                        visitor.accept(senderPerson.getIconUri());
                    }
                }
            }
        }
+15 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.app;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;

@@ -122,6 +123,20 @@ public final class Person implements Parcelable {
        return "";
    }

    /**
     * @return the URI associated with the {@link #getIcon()} for this person, iff the icon exists
     * and is URI based.
     * @hide
     */
    @Nullable
    public Uri getIconUri() {
        if (mIcon != null && (mIcon.getType() == Icon.TYPE_URI
                || mIcon.getType() == Icon.TYPE_URI_ADAPTIVE_BITMAP)) {
            return mIcon.getUri();
        }
        return null;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person) {