diff --git a/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java b/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java index d8be8e343..75e45158c 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java @@ -340,7 +340,7 @@ public class ApkProvider extends FDroidProvider { if (i != 0) { builder.append(','); } - builder.append(apks.get(0).id); + builder.append(apks.get(i).id); } return builder.toString(); } diff --git a/F-Droid/src/org/fdroid/fdroid/data/RepoPersister.java b/F-Droid/src/org/fdroid/fdroid/data/RepoPersister.java index 2302ddd23..6d223df2b 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/RepoPersister.java +++ b/F-Droid/src/org/fdroid/fdroid/data/RepoPersister.java @@ -243,27 +243,20 @@ public class RepoPersister { */ @Nullable private ContentProviderOperation deleteOrphanedApks(List apps, Map> packages) { - String[] projection = new String[]{ApkProvider.DataColumns.APK_ID, ApkProvider.DataColumns.VERSION_CODE}; List existing = ApkProvider.Helper.find(context, repo, apps, projection); - List toDelete = new ArrayList<>(); for (Apk existingApk : existing) { - boolean shouldStay = false; - for (Map.Entry> entry : packages.entrySet()) { - for (Apk newApk : entry.getValue()) { + if (packages.containsKey(existingApk.id)) { + for (Apk newApk : packages.get(existingApk.id)) { if (newApk.vercode == existingApk.vercode) { shouldStay = true; break; } } - - if (shouldStay) { - break; - } } if (!shouldStay) {