mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-23 18:51:51 +01:00
Check for app updates on foreground
Figured to leave the check for updates option incase people don't use the app often (there is no disabling foreground though)
This commit is contained in:
parent
4b50692cee
commit
7d62d78976
@ -253,6 +253,8 @@ class PreferencesHelper(val context: Context) {
|
||||
|
||||
fun lastExtCheck() = rxPrefs.getLong("last_ext_check", 0)
|
||||
|
||||
fun lastAppCheck() = flowPrefs.getLong("last_app_check", 0)
|
||||
|
||||
fun unreadBadgeType() = rxPrefs.getInteger("unread_badge_type", 2)
|
||||
|
||||
fun hideStartReadingButton() = rxPrefs.getBoolean("hide_reading_button", false)
|
||||
|
@ -21,6 +21,7 @@ import androidx.appcompat.graphics.drawable.DrawerArrowDrawable
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import androidx.core.view.GestureDetectorCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.afollestad.materialdialogs.MaterialDialog
|
||||
import com.bluelinelabs.conductor.Conductor
|
||||
import com.bluelinelabs.conductor.Controller
|
||||
@ -40,6 +41,8 @@ import eu.kanade.tachiyomi.data.download.DownloadServiceListener
|
||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
|
||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
import eu.kanade.tachiyomi.data.updater.UpdateChecker
|
||||
import eu.kanade.tachiyomi.data.updater.UpdateResult
|
||||
import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BaseController
|
||||
@ -50,6 +53,7 @@ import eu.kanade.tachiyomi.ui.recent_updates.RecentChaptersController
|
||||
import eu.kanade.tachiyomi.ui.recently_read.RecentlyReadController
|
||||
import eu.kanade.tachiyomi.ui.recents.RecentsController
|
||||
import eu.kanade.tachiyomi.ui.security.SecureActivityDelegate
|
||||
import eu.kanade.tachiyomi.ui.setting.AboutController
|
||||
import eu.kanade.tachiyomi.ui.setting.SettingsController
|
||||
import eu.kanade.tachiyomi.ui.setting.SettingsMainController
|
||||
import eu.kanade.tachiyomi.ui.source.SourceController
|
||||
@ -71,6 +75,7 @@ import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import timber.log.Timber
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import java.util.Date
|
||||
@ -96,6 +101,9 @@ open class MainActivity : BaseActivity(), DownloadServiceListener {
|
||||
private val hideBottomNav
|
||||
get() = router.backstackSize > 1 && router.backstack[1].controller() !is DialogController
|
||||
|
||||
private val updateChecker by lazy { UpdateChecker.getUpdateChecker() }
|
||||
private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER
|
||||
|
||||
fun setUndoSnackBar(snackBar: Snackbar?, extraViewToCheck: View? = null) {
|
||||
this.snackBar = snackBar
|
||||
canDismissSnackBar = false
|
||||
@ -348,7 +356,7 @@ open class MainActivity : BaseActivity(), DownloadServiceListener {
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
// setting in case someone comes from the search activity to main
|
||||
getAppUpdates()
|
||||
getExtensionUpdates()
|
||||
DownloadService.callListeners()
|
||||
showDLQueueTutorial()
|
||||
@ -384,6 +392,29 @@ open class MainActivity : BaseActivity(), DownloadServiceListener {
|
||||
snackBar?.dismiss()
|
||||
}
|
||||
|
||||
private fun getAppUpdates() {
|
||||
if (isUpdaterEnabled &&
|
||||
Date().time >= preferences.lastAppCheck().get() + TimeUnit.DAYS.toMillis(1)) {
|
||||
lifecycleScope.launch(Dispatchers.IO) {
|
||||
try {
|
||||
val result = updateChecker.checkForUpdate()
|
||||
preferences.lastAppCheck().set(Date().time)
|
||||
if (result is UpdateResult.NewUpdate<*>) {
|
||||
val body = result.release.info
|
||||
val url = result.release.downloadLink
|
||||
|
||||
// Create confirmation window
|
||||
withContext(Dispatchers.Main) {
|
||||
AboutController.NewUpdateDialogController(body, url).showDialog(router)
|
||||
}
|
||||
}
|
||||
} catch (error: Exception) {
|
||||
Timber.e(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getExtensionUpdates() {
|
||||
if (Date().time >= preferences.lastExtCheck().getOrDefault() + TimeUnit.HOURS.toMillis(6)) {
|
||||
GlobalScope.launch(Dispatchers.IO) {
|
||||
|
Loading…
Reference in New Issue
Block a user