mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-13 20:47:00 +05:30
fix(android): only queue post update worker on Application
init
This commit is contained in:
parent
74684fe115
commit
30fa04db56
3 changed files with 32 additions and 28 deletions
|
@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Do not schedule post update job every time the app starts
|
||||||
|
|
||||||
## [1.11.0] - 2022-12-07
|
## [1.11.0] - 2022-12-07
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
@ -7,10 +7,17 @@
|
||||||
package dev.msfjarvis.claw.android
|
package dev.msfjarvis.claw.android
|
||||||
|
|
||||||
import android.app.Application
|
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.Whetstone
|
||||||
import com.deliveryhero.whetstone.app.ApplicationComponentOwner
|
import com.deliveryhero.whetstone.app.ApplicationComponentOwner
|
||||||
import com.deliveryhero.whetstone.app.ContributesAppInjector
|
import com.deliveryhero.whetstone.app.ContributesAppInjector
|
||||||
|
import dev.msfjarvis.claw.android.work.SavedPostUpdaterWorker
|
||||||
import dev.msfjarvis.claw.core.injection.AppPlugin
|
import dev.msfjarvis.claw.core.injection.AppPlugin
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ContributesAppInjector(generateAppComponent = true)
|
@ContributesAppInjector(generateAppComponent = true)
|
||||||
|
@ -25,5 +32,26 @@ class ClawApplication : Application(), ApplicationComponentOwner {
|
||||||
Whetstone.inject(this)
|
Whetstone.inject(this)
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
plugins.forEach { plugin -> plugin.apply(this) }
|
plugins.forEach { plugin -> plugin.apply(this) }
|
||||||
|
val postUpdateWorkRequest =
|
||||||
|
PeriodicWorkRequestBuilder<SavedPostUpdaterWorker>(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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,18 +12,11 @@ import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
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.Whetstone
|
||||||
import com.deliveryhero.whetstone.activity.ContributesActivityInjector
|
import com.deliveryhero.whetstone.activity.ContributesActivityInjector
|
||||||
import dev.msfjarvis.claw.android.ui.LobstersApp
|
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.comments.HTMLConverter
|
||||||
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
|
import dev.msfjarvis.claw.common.urllauncher.UrlLauncher
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ContributesActivityInjector
|
@ContributesActivityInjector
|
||||||
|
@ -44,23 +37,6 @@ class MainActivity : ComponentActivity() {
|
||||||
setWebUri = { url -> webUri = url },
|
setWebUri = { url -> webUri = url },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val postUpdateWorkRequest =
|
|
||||||
PeriodicWorkRequestBuilder<SavedPostUpdaterWorker>(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?) {
|
override fun onProvideAssistContent(outContent: AssistContent?) {
|
||||||
|
@ -73,8 +49,4 @@ class MainActivity : ComponentActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private companion object {
|
|
||||||
private const val POST_REFRESH_PERIOD = 24L // 24 hours
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue