diff --git a/CHANGELOG.md b/CHANGELOG.md index e877b903..e5f642e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Do not schedule post update job every time the app starts + ## [1.11.0] - 2022-12-07 ### Changed diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ClawApplication.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ClawApplication.kt index 2b12715b..529294be 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ClawApplication.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ClawApplication.kt @@ -7,10 +7,17 @@ package dev.msfjarvis.claw.android import android.app.Application +import androidx.work.Constraints +import androidx.work.ExistingPeriodicWorkPolicy +import androidx.work.NetworkType +import androidx.work.PeriodicWorkRequestBuilder +import androidx.work.WorkManager import com.deliveryhero.whetstone.Whetstone import com.deliveryhero.whetstone.app.ApplicationComponentOwner import com.deliveryhero.whetstone.app.ContributesAppInjector +import dev.msfjarvis.claw.android.work.SavedPostUpdaterWorker import dev.msfjarvis.claw.core.injection.AppPlugin +import java.util.concurrent.TimeUnit import javax.inject.Inject @ContributesAppInjector(generateAppComponent = true) @@ -25,5 +32,26 @@ class ClawApplication : Application(), ApplicationComponentOwner { Whetstone.inject(this) super.onCreate() plugins.forEach { plugin -> plugin.apply(this) } + val postUpdateWorkRequest = + PeriodicWorkRequestBuilder(POST_REFRESH_PERIOD, TimeUnit.HOURS) + .setConstraints( + Constraints.Builder() + .setRequiresCharging(false) + .setRequiresBatteryNotLow(true) + .setRequiredNetworkType(NetworkType.CONNECTED) + .setRequiresDeviceIdle(true) + .build() + ) + .build() + WorkManager.getInstance(this) + .enqueueUniquePeriodicWork( + "updateSavedPosts", + ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE, + postUpdateWorkRequest, + ) + } + + private companion object { + private const val POST_REFRESH_PERIOD = 24L // 24 hours } } diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt index b9677535..e211f36c 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt @@ -12,18 +12,11 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.work.Constraints -import androidx.work.ExistingPeriodicWorkPolicy -import androidx.work.NetworkType -import androidx.work.PeriodicWorkRequestBuilder -import androidx.work.WorkManager import com.deliveryhero.whetstone.Whetstone import com.deliveryhero.whetstone.activity.ContributesActivityInjector import dev.msfjarvis.claw.android.ui.LobstersApp -import dev.msfjarvis.claw.android.work.SavedPostUpdaterWorker import dev.msfjarvis.claw.common.comments.HTMLConverter import dev.msfjarvis.claw.common.urllauncher.UrlLauncher -import java.util.concurrent.TimeUnit import javax.inject.Inject @ContributesActivityInjector @@ -44,23 +37,6 @@ class MainActivity : ComponentActivity() { setWebUri = { url -> webUri = url }, ) } - val postUpdateWorkRequest = - PeriodicWorkRequestBuilder(POST_REFRESH_PERIOD, TimeUnit.HOURS) - .setConstraints( - Constraints.Builder() - .setRequiresCharging(false) - .setRequiresBatteryNotLow(true) - .setRequiredNetworkType(NetworkType.CONNECTED) - .setRequiresDeviceIdle(true) - .build() - ) - .build() - WorkManager.getInstance(this@MainActivity) - .enqueueUniquePeriodicWork( - "updateSavedPosts", - ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE, - postUpdateWorkRequest, - ) } override fun onProvideAssistContent(outContent: AssistContent?) { @@ -73,8 +49,4 @@ class MainActivity : ComponentActivity() { } } } - - private companion object { - private const val POST_REFRESH_PERIOD = 24L // 24 hours - } }