Merge "Create a singleton HashMap instead of using Collections.singleton()" into ub-launcher3-master
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index 839b5e8..78774f3 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -60,6 +60,7 @@
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 @@
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 <T> HashSet<T> singletonHashSet(T elem) {
+ HashSet<T> 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 4f3b8a6..c754fda 100644
--- a/src/com/android/launcher3/popup/PopupDataProvider.java
+++ b/src/com/android/launcher3/popup/PopupDataProvider.java
@@ -22,6 +22,7 @@
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 @@
} else {
notificationWasAdded = badgeInfo.addNotificationKeyIfNotExists(notificationKey);
}
- updateLauncherIconBadges(Collections.singleton(postedPackageUserKey), notificationWasAdded);
+ updateLauncherIconBadges(Utilities.singletonHashSet(postedPackageUserKey),
+ notificationWasAdded);
}
@Override
@@ -78,7 +80,7 @@
if (oldBadgeInfo.getNotificationCount() == 0) {
mPackageUserToBadgeInfos.remove(removedPackageUserKey);
}
- updateLauncherIconBadges(Collections.singleton(removedPackageUserKey));
+ updateLauncherIconBadges(Utilities.singletonHashSet(removedPackageUserKey));
PopupContainerWithArrow openContainer = PopupContainerWithArrow.getOpen(mLauncher);
if (openContainer != null) {