diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 839b5e85cb..78774f3b8a 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -60,6 +60,7 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collection; +import java.util.HashSet; import java.util.Locale; import java.util.Set; import java.util.concurrent.Executor; @@ -652,4 +653,14 @@ public final class Utilities { throw new RuntimeException(e); } } + + /** + * Returns a HashSet with a single element. We use this instead of Collections.singleton() + * because HashSet ensures all operations, such as remove, are supported. + */ + public static HashSet singletonHashSet(T elem) { + HashSet hashSet = new HashSet<>(1); + hashSet.add(elem); + return hashSet; + } } diff --git a/src/com/android/launcher3/popup/PopupDataProvider.java b/src/com/android/launcher3/popup/PopupDataProvider.java index 4f3b8a6b1a..c754fda990 100644 --- a/src/com/android/launcher3/popup/PopupDataProvider.java +++ b/src/com/android/launcher3/popup/PopupDataProvider.java @@ -22,6 +22,7 @@ import android.util.Log; import com.android.launcher3.ItemInfo; import com.android.launcher3.Launcher; +import com.android.launcher3.Utilities; import com.android.launcher3.badge.BadgeInfo; import com.android.launcher3.notification.NotificationInfo; import com.android.launcher3.notification.NotificationListener; @@ -68,7 +69,8 @@ public class PopupDataProvider implements NotificationListener.NotificationsChan } else { notificationWasAdded = badgeInfo.addNotificationKeyIfNotExists(notificationKey); } - updateLauncherIconBadges(Collections.singleton(postedPackageUserKey), notificationWasAdded); + updateLauncherIconBadges(Utilities.singletonHashSet(postedPackageUserKey), + notificationWasAdded); } @Override @@ -78,7 +80,7 @@ public class PopupDataProvider implements NotificationListener.NotificationsChan if (oldBadgeInfo.getNotificationCount() == 0) { mPackageUserToBadgeInfos.remove(removedPackageUserKey); } - updateLauncherIconBadges(Collections.singleton(removedPackageUserKey)); + updateLauncherIconBadges(Utilities.singletonHashSet(removedPackageUserKey)); PopupContainerWithArrow openContainer = PopupContainerWithArrow.getOpen(mLauncher); if (openContainer != null) {