Merge "Fix potential NPE"
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 9b348fc..1345910 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -3885,8 +3885,11 @@
}
if (mN.extras.containsKey(EXTRA_PEOPLE_LIST)) {
- ArrayList<Person> people = mN.extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, android.app.Person.class);
- mPersonList.addAll(people);
+ ArrayList<Person> people = mN.extras.getParcelableArrayList(EXTRA_PEOPLE_LIST,
+ android.app.Person.class);
+ if (people != null && !people.isEmpty()) {
+ mPersonList.addAll(people);
+ }
}
if (mN.getSmallIcon() == null && mN.icon != 0) {
diff --git a/core/tests/coretests/src/android/app/NotificationTest.java b/core/tests/coretests/src/android/app/NotificationTest.java
index 4548730..34d669b 100644
--- a/core/tests/coretests/src/android/app/NotificationTest.java
+++ b/core/tests/coretests/src/android/app/NotificationTest.java
@@ -31,6 +31,7 @@
import static android.app.Notification.EXTRA_MEDIA_REMOTE_INTENT;
import static android.app.Notification.EXTRA_MEDIA_SESSION;
import static android.app.Notification.EXTRA_MESSAGING_PERSON;
+import static android.app.Notification.EXTRA_PEOPLE_LIST;
import static android.app.Notification.EXTRA_PICTURE;
import static android.app.Notification.EXTRA_PICTURE_ICON;
import static android.app.Notification.MessagingStyle.Message.KEY_DATA_URI;
@@ -817,6 +818,23 @@
}
@Test
+ public void testRecoverBuilder_nullExtraPeopleList_noCrash() {
+ Bundle extras = new Bundle();
+ extras.putParcelable(EXTRA_PEOPLE_LIST, null);
+
+ Notification n = new Notification.Builder(mContext, "test")
+ .setSmallIcon(0)
+ .addExtras(extras)
+ .build();
+ Bundle fakeTypes = new Bundle();
+ fakeTypes.putParcelable(EXTRA_BUILDER_APPLICATION_INFO, new Bundle());
+
+ Notification.Builder.recoverBuilder(mContext, n);
+
+ // no crash, good
+ }
+
+ @Test
public void testVisitUris_invalidExtra_noCrash() {
Notification n = new Notification.Builder(mContext, "test")
.setSmallIcon(0)