From 1758c2c9f16c9d535157b526a53b42a2ecee7ef7 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 6 Apr 2021 17:49:53 +0200 Subject: [PATCH] when no internet and local repos, only update local repos closes #2146 --- .../main/java/org/fdroid/fdroid/UpdateService.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java index fa866259f..5443982fb 100644 --- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java +++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java @@ -404,22 +404,23 @@ public class UpdateService extends JobIntentService { if (isLocalRepoAddress(address)) { Utils.debugLog(TAG, "skipping internet check, this is local: " + address); } else if (netState == ConnectivityMonitorService.FLAG_NET_UNAVAILABLE) { - boolean foundLocalRepo = false; + // keep track of repos that have a local copy in case internet is not available + ArrayList localRepos = new ArrayList<>(); for (Repo repo : repos) { if (isLocalRepoAddress(repo.address)) { - foundLocalRepo = true; + localRepos.add(repo); } else { for (String mirrorAddress : repo.getMirrorList()) { if (isLocalRepoAddress(mirrorAddress)) { - foundLocalRepo = true; - //localRepos.add(repo); - //FDroidApp.setLastWorkingMirror(repo.getId(), mirrorAddress); + localRepos.add(repo); break; } } } } - if (!foundLocalRepo) { + if (localRepos.size() > 0) { + repos = localRepos; + } else { Utils.debugLog(TAG, "No internet, cannot update"); if (manualUpdate) { Utils.showToastFromService(this, getString(R.string.warning_no_internet), Toast.LENGTH_SHORT);