diff --git a/app/src/main/java/com/futo/platformplayer/SettingsDev.kt b/app/src/main/java/com/futo/platformplayer/SettingsDev.kt index 76d7adf2..ef0cdcf4 100644 --- a/app/src/main/java/com/futo/platformplayer/SettingsDev.kt +++ b/app/src/main/java/com/futo/platformplayer/SettingsDev.kt @@ -235,13 +235,17 @@ class SettingsDev : FragmentedStorageFileJson() { R.string.test_background_worker_description, 4) fun triggerBackgroundUpdate() { val act = SettingsActivity.getActivity()!!; - UIDialogs.toast(SettingsActivity.getActivity()!!, "Starting test background worker"); + try { + UIDialogs.toast(SettingsActivity.getActivity()!!, "Starting test background worker"); - val wm = WorkManager.getInstance(act); - val req = OneTimeWorkRequestBuilder() - .setInputData(Data.Builder().putBoolean("bypassMainCheck", true).build()) - .build(); - wm.enqueue(req); + val wm = WorkManager.getInstance(act); + val req = OneTimeWorkRequestBuilder() + .setInputData(Data.Builder().putBoolean("bypassMainCheck", true).build()) + .build(); + wm.enqueue(req); + } catch (e: Throwable) { + UIDialogs.showGeneralErrorDialog(act, "Failed to trigger background update", e) + } } @FormField(R.string.clear_channel_cache, FieldForm.BUTTON, R.string.test_background_worker_description, 4) diff --git a/app/src/main/java/com/futo/platformplayer/states/StateApp.kt b/app/src/main/java/com/futo/platformplayer/states/StateApp.kt index b4305f89..e44cdea7 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StateApp.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StateApp.kt @@ -627,21 +627,25 @@ class StateApp { fun scheduleBackgroundWork(context: Context, active: Boolean = true, intervalMinutes: Int = 60 * 12) { - val wm = WorkManager.getInstance(context); + try { + val wm = WorkManager.getInstance(context); - if(active) { - if(BuildConfig.DEBUG) - UIDialogs.toast(context, "Scheduling background every ${intervalMinutes} minutes"); + if(active) { + if(BuildConfig.DEBUG) + UIDialogs.toast(context, "Scheduling background every ${intervalMinutes} minutes"); - val req = PeriodicWorkRequest.Builder(BackgroundWorker::class.java, intervalMinutes.toLong(), TimeUnit.MINUTES, 5, TimeUnit.MINUTES) - .setConstraints(Constraints.Builder() - .setRequiredNetworkType(NetworkType.UNMETERED) - .build()) - .build(); - wm.enqueueUniquePeriodicWork("backgroundSubscriptions", ExistingPeriodicWorkPolicy.UPDATE, req); + val req = PeriodicWorkRequest.Builder(BackgroundWorker::class.java, intervalMinutes.toLong(), TimeUnit.MINUTES, 5, TimeUnit.MINUTES) + .setConstraints(Constraints.Builder() + .setRequiredNetworkType(NetworkType.UNMETERED) + .build()) + .build(); + wm.enqueueUniquePeriodicWork("backgroundSubscriptions", ExistingPeriodicWorkPolicy.UPDATE, req); + } + else + wm.cancelAllWork(); + } catch (e: Throwable) { + Logger.e(TAG, "Failed to schedule background subscription updates.", e) } - else - wm.cancelAllWork(); }