diff --git a/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java b/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java index 6eecece38..257ed7fa1 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java @@ -64,7 +64,19 @@ public class ApkProvider extends FDroidProvider { resolver.delete(uri, null, null); } - public static void deleteApks(Context context, List apks) { + public static void deleteApks(final Context context, final List apks) { + if (apks.size() > ApkProvider.MAX_APKS_TO_QUERY) { + int middle = apks.size() / 2; + List apks1 = apks.subList(0, middle); + List apks2 = apks.subList(middle, apks.size()); + deleteApks(context, apks1); + deleteApks(context, apks2); + } else { + deleteApksSafely(context, apks); + } + } + + private static void deleteApksSafely(final Context context, final List apks) { ContentResolver resolver = context.getContentResolver(); Uri uri = getContentUri(apks); resolver.delete(uri, null, null);