From ac9902fc3ce69805d97134034fcf5d8d1d05c0b2 Mon Sep 17 00:00:00 2001 From: Jonas Mayer Date: Tue, 9 Apr 2024 16:51:10 +0200 Subject: [PATCH] Make code better readable Signed-off-by: Jonas Mayer --- .../nextcloud/client/jobs/FilesSyncWork.kt | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt b/app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt index 17574d0fcc4d..ed12c9bafa43 100644 --- a/app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt +++ b/app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt @@ -92,21 +92,35 @@ class FilesSyncWork( setForegroundAsync(foregroundInfo) } + private fun canExitEarly(changedFiles: Array?): Boolean { + // If we are in power save mode better to postpone scan and upload + val overridePowerSaving = inputData.getBoolean(OVERRIDE_POWER_SAVING, false) + if ((powerManagementService.isPowerSavingEnabled && !overridePowerSaving)){ + return true + } + + // or sync worker already running and no changed files to be processed + val alreadyRunning = backgroundJobManager.bothFilesSyncJobsRunning() + if (alreadyRunning && changedFiles.isNullOrEmpty()) { + Log_OC.d(TAG, "Kill Sync Worker since another instance of the worker seems to be running already!") + return true + } + + return false + } + @Suppress("MagicNumber") override fun doWork(): Result { backgroundJobManager.logStartOfWorker(BackgroundJobManagerImpl.formatClassTag(this::class)) - // If we are in power save mode or sync worker already running, better to postpone upload - val overridePowerSaving = inputData.getBoolean(OVERRIDE_POWER_SAVING, false) - val alreadyRunning = backgroundJobManager.bothFilesSyncJobsRunning() - if ((powerManagementService.isPowerSavingEnabled && !overridePowerSaving) || alreadyRunning) { - if (alreadyRunning) { - Log_OC.d(TAG, "Kill Sync Worker since another instance of the worker seems to be running already!") - } + val changedFiles = inputData.getStringArray(CHANGED_FILES) + + if (canExitEarly(changedFiles)) { val result = Result.success() backgroundJobManager.logEndOfWorker(BackgroundJobManagerImpl.formatClassTag(this::class), result) return result } + val resources = context.resources val lightVersion = resources.getBoolean(R.bool.syncedFolder_light) FilesSyncHelper.restartJobsIfNeeded( @@ -117,7 +131,6 @@ class FilesSyncWork( ) // Get changed files from ContentObserverWork (only images and videos) or by scanning filesystem - val changedFiles = inputData.getStringArray(CHANGED_FILES) collectChangedFiles(changedFiles) // Create all the providers we'll need