From f61e9971ab88b91ff80bde3078f9bfc510e759b9 Mon Sep 17 00:00:00 2001 From: Thore Goebel Date: Tue, 11 Feb 2025 22:26:49 +0100 Subject: [PATCH] Get all mirrors before deleting repo 1. Get ALL mirrors and not just the non-disabled ones. 2. Get them freshly before deleting the repo (in the very rare/should-not-happen case that they have changed since the ViewModel was created). Follow-up to fdroid/fdroidclient!1499 --- .../fdroid/fdroid/views/repos/RepoDetailsViewModel.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/repos/RepoDetailsViewModel.kt b/app/src/main/java/org/fdroid/fdroid/views/repos/RepoDetailsViewModel.kt index 44791114d..cde4fae24 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/repos/RepoDetailsViewModel.kt +++ b/app/src/main/java/org/fdroid/fdroid/views/repos/RepoDetailsViewModel.kt @@ -61,7 +61,6 @@ class RepoDetailsViewModel( } private val repoId = initialRepo.repoId - private val repoMirrors = initialRepo.getMirrors() private val repoManager = FDroidApp.getRepoManager(app) private val appDao = DBHelper.getDb(app).getAppDao() @@ -104,14 +103,13 @@ class RepoDetailsViewModel( } fun deleteRepository() { + val cache = DnsCache.get() + val mirrors = repoFlow.value?.getAllMirrors() ?: emptyList() + mirrors.forEach { cache.remove(it.url.host) } + viewModelScope.launch(Dispatchers.IO) { repoManager.deleteRepository(repoId) } - // clean up dns cache - val cache = DnsCache.get() - for (mirror in repoMirrors) { - cache.remove(mirror.url.host) - } } fun updateUsernameAndPassword(username: String, password: String) {