From ce7d241196a9b4d25a92d734069fd7afd00df453 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 3 Mar 2021 12:03:29 +0100 Subject: [PATCH] CleanCacheWorker: delete all package files, not just *.apk The installer can copy OTA .zip, *.obf, etc. there too. refs #1869 --- .../java/org/fdroid/fdroid/nearby/LocalRepoManager.java | 5 +++++ .../java/org/fdroid/fdroid/nearby/LocalRepoManager.java | 2 +- .../main/java/org/fdroid/fdroid/work/CleanCacheWorker.java | 6 +++++- 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 app/src/basic/java/org/fdroid/fdroid/nearby/LocalRepoManager.java diff --git a/app/src/basic/java/org/fdroid/fdroid/nearby/LocalRepoManager.java b/app/src/basic/java/org/fdroid/fdroid/nearby/LocalRepoManager.java new file mode 100644 index 000000000..b1cb50b71 --- /dev/null +++ b/app/src/basic/java/org/fdroid/fdroid/nearby/LocalRepoManager.java @@ -0,0 +1,5 @@ +package org.fdroid.fdroid.nearby; + +public class LocalRepoManager { + public static final String[] WEB_ROOT_ASSET_FILES = {}; +} diff --git a/app/src/full/java/org/fdroid/fdroid/nearby/LocalRepoManager.java b/app/src/full/java/org/fdroid/fdroid/nearby/LocalRepoManager.java index 652c40094..14d653613 100644 --- a/app/src/full/java/org/fdroid/fdroid/nearby/LocalRepoManager.java +++ b/app/src/full/java/org/fdroid/fdroid/nearby/LocalRepoManager.java @@ -64,7 +64,7 @@ public final class LocalRepoManager { private final AssetManager assetManager; private final String fdroidPackageName; - private static final String[] WEB_ROOT_ASSET_FILES = { + public static final String[] WEB_ROOT_ASSET_FILES = { "swap-icon.png", "swap-tick-done.png", "swap-tick-not-done.png", diff --git a/app/src/main/java/org/fdroid/fdroid/work/CleanCacheWorker.java b/app/src/main/java/org/fdroid/fdroid/work/CleanCacheWorker.java index f2db0f1d5..6c84bbcf1 100644 --- a/app/src/main/java/org/fdroid/fdroid/work/CleanCacheWorker.java +++ b/app/src/main/java/org/fdroid/fdroid/work/CleanCacheWorker.java @@ -20,8 +20,11 @@ import org.apache.commons.io.FileUtils; import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.installer.ApkCache; +import org.fdroid.fdroid.nearby.LocalRepoManager; import java.io.File; +import java.util.Arrays; +import java.util.List; import java.util.concurrent.TimeUnit; /** @@ -127,8 +130,9 @@ public class CleanCacheWorker extends Worker { return; } + final List webRootAssetFiles = Arrays.asList(LocalRepoManager.WEB_ROOT_ASSET_FILES); for (File f : files) { - if (f.getName().endsWith(".apk")) { + if (f.isFile() && !f.getName().endsWith(".html") && !webRootAssetFiles.contains(f.getName())) { clearOldFiles(f, TimeUnit.HOURS.toMillis(1)); } }