Remove duplicate entries from installed packages list

This commit is contained in:
Oliver Scott 2021-04-27 11:30:55 -04:00 committed by Uldiniad
parent e677d815d4
commit b52c7ca39a

View File

@ -23,10 +23,9 @@ import org.fdroid.fdroid.privileged.IPrivilegedService;
import java.io.File; import java.io.File;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeSet;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -221,13 +220,9 @@ public class InstalledAppProviderService extends JobIntentService {
packageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.GET_SIGNATURES); packageInfoList = context.getPackageManager().getInstalledPackages(PackageManager.GET_SIGNATURES);
} }
Map<String, Long> cachedInfo = InstalledAppProvider.Helper.lastUpdateTimes(context); Map<String, Long> cachedInfo = InstalledAppProvider.Helper.lastUpdateTimes(context);
Collections.sort(packageInfoList, new Comparator<PackageInfo>() { TreeSet<PackageInfo> packageInfoSet = new TreeSet<>((o1, o2) -> o1.packageName.compareTo(o2.packageName));
@Override packageInfoSet.addAll(packageInfoList);
public int compare(PackageInfo o1, PackageInfo o2) { for (PackageInfo packageInfo : packageInfoSet) {
return o1.packageName.compareTo(o2.packageName);
}
});
for (PackageInfo packageInfo : packageInfoList) {
if (cachedInfo.containsKey(packageInfo.packageName)) { if (cachedInfo.containsKey(packageInfo.packageName)) {
if (packageInfo.lastUpdateTime < 1262300400000L // 2010-01-01 00:00 if (packageInfo.lastUpdateTime < 1262300400000L // 2010-01-01 00:00
|| packageInfo.lastUpdateTime > cachedInfo.get(packageInfo.packageName)) { || packageInfo.lastUpdateTime > cachedInfo.get(packageInfo.packageName)) {