From b52c7ca39a485d552605028437dbebea4107152a Mon Sep 17 00:00:00 2001 From: Oliver Scott Date: Tue, 27 Apr 2021 11:30:55 -0400 Subject: [PATCH] Remove duplicate entries from installed packages list --- .../fdroid/data/InstalledAppProviderService.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProviderService.java b/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProviderService.java index 8f60f111d..ffcbd2a11 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProviderService.java +++ b/app/src/main/java/org/fdroid/fdroid/data/InstalledAppProviderService.java @@ -23,10 +23,9 @@ import org.fdroid.fdroid.privileged.IPrivilegedService; import java.io.File; import java.io.FilenameFilter; -import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.TreeSet; import java.util.concurrent.TimeUnit; import androidx.annotation.NonNull; @@ -221,13 +220,9 @@ public class InstalledAppProviderService extends JobIntentService { packageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.GET_SIGNATURES); } Map cachedInfo = InstalledAppProvider.Helper.lastUpdateTimes(context); - Collections.sort(packageInfoList, new Comparator() { - @Override - public int compare(PackageInfo o1, PackageInfo o2) { - return o1.packageName.compareTo(o2.packageName); - } - }); - for (PackageInfo packageInfo : packageInfoList) { + TreeSet packageInfoSet = new TreeSet<>((o1, o2) -> o1.packageName.compareTo(o2.packageName)); + packageInfoSet.addAll(packageInfoList); + for (PackageInfo packageInfo : packageInfoSet) { if (cachedInfo.containsKey(packageInfo.packageName)) { if (packageInfo.lastUpdateTime < 1262300400000L // 2010-01-01 00:00 || packageInfo.lastUpdateTime > cachedInfo.get(packageInfo.packageName)) {