Skip to content

Commit

Permalink
properly schedule periodic update checks
Browse files Browse the repository at this point in the history
  • Loading branch information
newhinton committed Apr 25, 2024
1 parent 3083b13 commit 5f9d31b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@ import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import ca.pkay.rcloneexplorer.R
import de.felixnuesse.extract.settings.preferences.ButtonPreference
import de.felixnuesse.extract.updates.UpdateChecker
import es.dmoral.toasty.Toasty


class NotificationPreferencesFragment : PreferenceFragmentCompat() {
class NotificationPreferencesFragment : PreferenceFragmentCompat(),
SharedPreferences.OnSharedPreferenceChangeListener {

private lateinit var sharedPreferences: SharedPreferences

Expand Down Expand Up @@ -41,4 +43,21 @@ class NotificationPreferencesFragment : PreferenceFragmentCompat() {
}
}
}

override fun onResume() {
super.onResume()
preferenceManager.sharedPreferences!!.registerOnSharedPreferenceChangeListener(this)
}

override fun onPause() {
preferenceManager.sharedPreferences!!.unregisterOnSharedPreferenceChangeListener(this)
super.onPause()
}

override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
if(key == getString(R.string.pref_key_app_updates)) {
UpdateChecker(requireContext()).schedule()
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,21 @@ package de.felixnuesse.extract.updates.workmanager

import android.content.Context
import androidx.work.Constraints
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.NetworkType
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.PeriodicWorkRequest
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.WorkRequest
import java.util.concurrent.TimeUnit

class UpdateManager(private var mContext: Context) {

companion object {
private val TAG_ONETIME = "TAG_ONETIME"
private val TAG_REPEATING = "TAG_REPEATING"
}


fun queueOnetime() {
val uploadWorkRequest = OneTimeWorkRequestBuilder<UpdateWorker>()
uploadWorkRequest.addTag(TAG_ONETIME)
work(uploadWorkRequest.build())
}

fun queueRepeating() {
val checkRequest = PeriodicWorkRequestBuilder<UpdateWorker>(15, TimeUnit.MINUTES)
val checkRequest = PeriodicWorkRequestBuilder<UpdateWorker>(1, TimeUnit.DAYS)
checkRequest.setConstraints(getConstrains())
work(checkRequest.build())
}
Expand All @@ -37,16 +29,8 @@ class UpdateManager(private var mContext: Context) {
return constraints
}

private fun work(request: WorkRequest) {
WorkManager.getInstance(mContext).enqueue(request)
}

fun cancelOnetime() {
WorkManager.getInstance(mContext).cancelAllWorkByTag(TAG_ONETIME)
}

fun cancelRepeating() {
WorkManager.getInstance(mContext).cancelAllWorkByTag(TAG_REPEATING)
private fun work(request: PeriodicWorkRequest) {
WorkManager.getInstance(mContext).enqueueUniquePeriodicWork(TAG_REPEATING, ExistingPeriodicWorkPolicy.KEEP, request)
}

fun cancelAll() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class UpdateWorker (private var mContext: Context, workerParams: WorkerParameter
val source = GithubTagSource(
ownerUsername = "newhinton",
repoName = "Round-Sync",
currentVersion = "v1.0.0" //Todo: BuildConfig.VERSION_NAME
currentVersion = BuildConfig.VERSION_NAME
)

val customVersionComparator = object : VersionComparator<String> {
Expand Down

0 comments on commit 5f9d31b

Please sign in to comment.