From 2c7e9ef7f377fbed3a51135ff673307a7365b3d3 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 30 Aug 2021 17:05:29 -0400 Subject: [PATCH] Fixed extension job queueing library to run ext updates when not needed Best way i can phrase it, but theres a chance the previous logic would run the extension job at weird times --- .../tachiyomi/extension/ExtensionUpdateJob.kt | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt index 6fbe3ab984..93907c38fd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionUpdateJob.kt @@ -56,10 +56,14 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam val extensions = extensionsList.toMutableList() val preferences: PreferencesHelper by injectLazy() preferences.extensionUpdatesCount().set(extensions.size) + val extensionsInstalledByApp by lazy { + extensions.filter { Injekt.get().isInstalledByApp(it) } + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && inputData.getBoolean(RUN_AUTO, true) && preferences.autoUpdateExtensions() != AutoUpdaterJob.NEVER && - !ExtensionInstallService.isRunning() + !ExtensionInstallService.isRunning() && + extensionsInstalledByApp.isNotEmpty() ) { val cm = context.connectivityManager val libraryServiceRunning = LibraryUpdateService.isRunning() @@ -69,27 +73,22 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam !cm.isActiveNetworkMetered ) && !libraryServiceRunning ) { - val extensionManager = Injekt.get() - val extensionsInstalledByApp = - extensions.filter { extensionManager.isInstalledByApp(it) } - if (extensionsInstalledByApp.isNotEmpty()) { - val intent = - ExtensionInstallService.jobIntent( - context, - extensionsInstalledByApp, - // Re run this job if not all the extensions can be auto updated - if (extensionsInstalledByApp.size == extensions.size) { - 1 - } else { - 2 - } - ) - context.startForegroundService(intent) - if (extensionsInstalledByApp.size == extensions.size) { - return - } else { - extensions.removeAll(extensionsInstalledByApp) - } + val intent = + ExtensionInstallService.jobIntent( + context, + extensionsInstalledByApp, + // Re run this job if not all the extensions can be auto updated + if (extensionsInstalledByApp.size == extensions.size) { + 1 + } else { + 2 + } + ) + context.startForegroundService(intent) + if (extensionsInstalledByApp.size == extensions.size) { + return + } else { + extensions.removeAll(extensionsInstalledByApp) } } else if (!libraryServiceRunning) { runJobAgain(context, NetworkType.UNMETERED)