Sorting people by key crashes launcher
Approch: approach: filter out people with null getKey before sorting.
Bug:139436782
Change-Id: I6510a12374ff4fec02c879ff76ba42b1fcdb8281
diff --git a/src/com/android/launcher3/notification/NotificationKeyData.java b/src/com/android/launcher3/notification/NotificationKeyData.java
index bfa4ba9..a1917ec 100644
--- a/src/com/android/launcher3/notification/NotificationKeyData.java
+++ b/src/com/android/launcher3/notification/NotificationKeyData.java
@@ -20,16 +20,14 @@
import android.app.Person;
import android.service.notification.StatusBarNotification;
-import com.android.launcher3.Utilities;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import com.android.launcher3.Utilities;
+
+import java.util.ArrayList;
+import java.util.List;
+
/**
* The key data associated with the notification, used to determine what to include
* in dots and dummy popup views before they are populated.
@@ -39,8 +37,9 @@
public class NotificationKeyData {
public final String notificationKey;
public final String shortcutId;
+ @NonNull
+ public final String[] personKeysFromNotification;
public int count;
- @NonNull public final String[] personKeysFromNotification;
private NotificationKeyData(String notificationKey, String shortcutId, int count,
String[] personKeysFromNotification) {
@@ -70,7 +69,8 @@
if (people == null || people.isEmpty()) {
return Utilities.EMPTY_STRING_ARRAY;
}
- return people.stream().map(Person::getKey).sorted().toArray(String[]::new);
+ return people.stream().filter(person -> person.getKey() != null)
+ .map(Person::getKey).sorted().toArray(String[]::new);
}
@Override