From 90b23f2e7026294103ad89ea8b14e9e57e2a859e Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 17 Dec 2024 10:20:21 -0300 Subject: [PATCH] [app] don't update repos if they already have been updated in last 15s --- .../main/java/org/fdroid/fdroid/RepoUpdateManager.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/RepoUpdateManager.kt b/app/src/main/java/org/fdroid/fdroid/RepoUpdateManager.kt index 8c0c4e399..9bdb74190 100644 --- a/app/src/main/java/org/fdroid/fdroid/RepoUpdateManager.kt +++ b/app/src/main/java/org/fdroid/fdroid/RepoUpdateManager.kt @@ -26,6 +26,7 @@ import org.fdroid.index.v1.IndexV1Updater import java.io.File private val TAG = RepoUpdateManager::class.java.simpleName +private const val MIN_UPDATE_INTERVAL_MILLIS = 15_000 class RepoUpdateManager @JvmOverloads constructor( private val context: Context, @@ -76,6 +77,14 @@ class RepoUpdateManager @JvmOverloads constructor( @WorkerThread fun updateRepos() { + if (isUpdating.value) { + Log.w(TAG, "Already updating repositories: updateRepos()") + } + val timeSinceLastCheck = System.currentTimeMillis() - fdroidPrefs.lastUpdateCheck + if (timeSinceLastCheck < MIN_UPDATE_INTERVAL_MILLIS) { + Log.i(TAG, "Not updating, only $timeSinceLastCheck ms since last check.") + return + } _isUpdating.value = true try { var reposUpdated = false @@ -122,6 +131,9 @@ class RepoUpdateManager @JvmOverloads constructor( @WorkerThread fun updateRepo(repoId: Long): IndexUpdateResult { + if (isUpdating.value) { + Log.w(TAG, "Already updating repositories: updateRepo($repoId)") + } val repo = repoManager.getRepository(repoId) ?: return IndexUpdateResult.NotFound _isUpdating.value = true try {