Update update check service

This commit is contained in:
topjohnwu 2019-06-08 15:28:59 -07:00
parent 86c4928e0f
commit e799918ab6

View File

@ -4,7 +4,6 @@ import androidx.work.ListenableWorker
import com.topjohnwu.magisk.BuildConfig
import com.topjohnwu.magisk.Config
import com.topjohnwu.magisk.data.repository.MagiskRepository
import com.topjohnwu.magisk.model.entity.MagiskConfig
import com.topjohnwu.magisk.model.worker.DelegateWorker
import com.topjohnwu.magisk.utils.inject
import com.topjohnwu.magisk.view.Notifications
@ -14,18 +13,15 @@ class UpdateCheckService : DelegateWorker() {
private val magiskRepo: MagiskRepository by inject()
override fun doWork(): ListenableWorker.Result {
val config = runCatching { magiskRepo.fetchConfig().blockingGet() }
config.getOrNull()?.let { checkUpdates(it) }
return when {
config.isFailure -> ListenableWorker.Result.failure()
else -> ListenableWorker.Result.success()
}
}
private fun checkUpdates(config: MagiskConfig) {
when {
BuildConfig.VERSION_CODE < config.app.versionCode.toIntOrNull() ?: -1 -> Notifications.managerUpdate()
Config.magiskVersionCode < config.magisk.versionCode.toIntOrNull() ?: -1 -> Notifications.magiskUpdate()
return runCatching {
magiskRepo.fetchConfig().blockingGet()
if (BuildConfig.VERSION_CODE < Config.remoteManagerVersionCode)
Notifications.managerUpdate()
else if (Config.magiskVersionCode < Config.remoteManagerVersionCode)
Notifications.magiskUpdate()
ListenableWorker.Result.success()
}.getOrElse {
ListenableWorker.Result.failure()
}
}
}