mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 07:50:31 +05:30
fix worker
This commit is contained in:
parent
e253373536
commit
41cf1c782d
@ -6,6 +6,7 @@ import android.app.NotificationManager
|
||||
import android.os.Build
|
||||
import android.os.StrictMode
|
||||
import android.os.StrictMode.VmPolicy
|
||||
import androidx.work.ExistingPeriodicWorkPolicy
|
||||
import com.github.libretube.preferences.PreferenceHelper
|
||||
import com.github.libretube.preferences.PreferenceKeys
|
||||
import com.github.libretube.util.NotificationHelper
|
||||
@ -39,7 +40,7 @@ class MyApp : Application() {
|
||||
/**
|
||||
* initialize the notification listener in the background
|
||||
*/
|
||||
NotificationHelper.enqueueWork(this)
|
||||
NotificationHelper.enqueueWork(this, ExistingPeriodicWorkPolicy.KEEP)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,6 +4,7 @@ import android.os.Bundle
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import androidx.work.ExistingPeriodicWorkPolicy
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.SettingsActivity
|
||||
import com.github.libretube.util.NotificationHelper
|
||||
@ -19,14 +20,22 @@ class NotificationSettings : PreferenceFragmentCompat() {
|
||||
|
||||
val notificationsEnabled = findPreference<SwitchPreferenceCompat>(PreferenceKeys.NOTIFICATION_ENABLED)
|
||||
notificationsEnabled?.setOnPreferenceChangeListener { _, _ ->
|
||||
NotificationHelper.enqueueWork(requireContext())
|
||||
updateNotificationPrefs()
|
||||
true
|
||||
}
|
||||
|
||||
val checkingFrequency = findPreference<ListPreference>(PreferenceKeys.CHECKING_FREQUENCY)
|
||||
checkingFrequency?.setOnPreferenceChangeListener { _, _ ->
|
||||
NotificationHelper.enqueueWork(requireContext())
|
||||
updateNotificationPrefs()
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateNotificationPrefs() {
|
||||
// replace the previous queued work request
|
||||
NotificationHelper.enqueueWork(
|
||||
requireContext(),
|
||||
ExistingPeriodicWorkPolicy.REPLACE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ import java.util.concurrent.TimeUnit
|
||||
|
||||
object NotificationHelper {
|
||||
fun enqueueWork(
|
||||
context: Context
|
||||
context: Context,
|
||||
existingPeriodicWorkPolicy: ExistingPeriodicWorkPolicy
|
||||
) {
|
||||
// get the notification preferences
|
||||
PreferenceHelper.setContext(context)
|
||||
@ -57,7 +58,7 @@ object NotificationHelper {
|
||||
WorkManager.getInstance(context)
|
||||
.enqueueUniquePeriodicWork(
|
||||
uniqueWorkName,
|
||||
ExistingPeriodicWorkPolicy.REPLACE,
|
||||
existingPeriodicWorkPolicy,
|
||||
notificationWorker
|
||||
)
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user