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
This commit is contained in:
Jays2Kings 2021-08-30 17:05:29 -04:00
parent 6990bcaa26
commit 2c7e9ef7f3

View file

@ -56,10 +56,14 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam
val extensions = extensionsList.toMutableList() val extensions = extensionsList.toMutableList()
val preferences: PreferencesHelper by injectLazy() val preferences: PreferencesHelper by injectLazy()
preferences.extensionUpdatesCount().set(extensions.size) preferences.extensionUpdatesCount().set(extensions.size)
val extensionsInstalledByApp by lazy {
extensions.filter { Injekt.get<ExtensionManager>().isInstalledByApp(it) }
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S &&
inputData.getBoolean(RUN_AUTO, true) && inputData.getBoolean(RUN_AUTO, true) &&
preferences.autoUpdateExtensions() != AutoUpdaterJob.NEVER && preferences.autoUpdateExtensions() != AutoUpdaterJob.NEVER &&
!ExtensionInstallService.isRunning() !ExtensionInstallService.isRunning() &&
extensionsInstalledByApp.isNotEmpty()
) { ) {
val cm = context.connectivityManager val cm = context.connectivityManager
val libraryServiceRunning = LibraryUpdateService.isRunning() val libraryServiceRunning = LibraryUpdateService.isRunning()
@ -69,27 +73,22 @@ class ExtensionUpdateJob(private val context: Context, workerParams: WorkerParam
!cm.isActiveNetworkMetered !cm.isActiveNetworkMetered
) && !libraryServiceRunning ) && !libraryServiceRunning
) { ) {
val extensionManager = Injekt.get<ExtensionManager>() val intent =
val extensionsInstalledByApp = ExtensionInstallService.jobIntent(
extensions.filter { extensionManager.isInstalledByApp(it) } context,
if (extensionsInstalledByApp.isNotEmpty()) { extensionsInstalledByApp,
val intent = // Re run this job if not all the extensions can be auto updated
ExtensionInstallService.jobIntent( if (extensionsInstalledByApp.size == extensions.size) {
context, 1
extensionsInstalledByApp, } else {
// Re run this job if not all the extensions can be auto updated 2
if (extensionsInstalledByApp.size == extensions.size) { }
1 )
} else { context.startForegroundService(intent)
2 if (extensionsInstalledByApp.size == extensions.size) {
} return
) } else {
context.startForegroundService(intent) extensions.removeAll(extensionsInstalledByApp)
if (extensionsInstalledByApp.size == extensions.size) {
return
} else {
extensions.removeAll(extensionsInstalledByApp)
}
} }
} else if (!libraryServiceRunning) { } else if (!libraryServiceRunning) {
runJobAgain(context, NetworkType.UNMETERED) runJobAgain(context, NetworkType.UNMETERED)