diff options
| -rw-r--r-- | services/core/java/com/android/server/notification/NotificationManagerService.java | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 0af0c7356fa3..d4ee02e75754 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2614,17 +2614,18 @@ public class NotificationManagerService extends SystemService { private static void setPendingIntentWhitelistDuration(ActivityManagerInternal am, long duration, Bundle extras) { for (String key : extras.keySet()) { - setPendingIntentWhitelistDuration(am, duration, extras.getParcelable(key)); - final Parcelable[] parcelableArray = extras.getParcelableArray(key); - if (parcelableArray != null) { - for (Parcelable parcelable: parcelableArray) { + final Object value = extras.get(key); + if (value instanceof Parcelable) { + setPendingIntentWhitelistDuration(am, duration, (Parcelable) value); + } else if (value instanceof Parcelable[]) { + for (Parcelable parcelable : (Parcelable[]) value) { setPendingIntentWhitelistDuration(am, duration, parcelable); } - } - final ArrayList<Parcelable> parcelableList = extras.getParcelableArrayList(key); - if (parcelableList != null) { - for (Parcelable parcelable: parcelableList) { - setPendingIntentWhitelistDuration(am, duration, parcelable); + } else if (value instanceof List) { + for (Object element : (List <?>) value) { + if (element instanceof Parcelable) { + setPendingIntentWhitelistDuration(am, duration, (Parcelable) element); + } } } } |