Rename app updating classes

"So I stop confusing it for updaters of other things." - arkon

agreed

Co-Authored-By: arkon <4098258+arkon@users.noreply.github.com>
This commit is contained in:
Jays2Kings 2021-10-17 12:59:08 -04:00
parent aa2d794b47
commit 895395944b
18 changed files with 100 additions and 100 deletions

View file

@ -213,7 +213,7 @@
android:exported="false" /> android:exported="false" />
<receiver <receiver
android:name=".data.updater.UpdaterBroadcast" android:name=".data.updater.AppUpdateBroadcast"
android:exported="false"> android:exported="false">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
@ -233,7 +233,7 @@
android:exported="false" /> android:exported="false" />
<service <service
android:name=".data.updater.UpdaterService" android:name=".data.updater.AppUpdateService"
android:exported="false" /> android:exported="false" />
<service <service

View file

@ -9,8 +9,8 @@ import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.plusAssign import eu.kanade.tachiyomi.data.preference.plusAssign
import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.updater.UpdaterJob import eu.kanade.tachiyomi.data.updater.AppUpdateJob
import eu.kanade.tachiyomi.data.updater.UpdaterService import eu.kanade.tachiyomi.data.updater.AppUpdateService
import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE
import eu.kanade.tachiyomi.ui.library.LibraryPresenter import eu.kanade.tachiyomi.ui.library.LibraryPresenter
@ -32,7 +32,7 @@ object Migrations {
val context = preferences.context val context = preferences.context
val prefs = PreferenceManager.getDefaultSharedPreferences(context) val prefs = PreferenceManager.getDefaultSharedPreferences(context)
prefs.edit { prefs.edit {
remove(UpdaterService.NOTIFY_ON_INSTALL_KEY) remove(AppUpdateService.NOTIFY_ON_INSTALL_KEY)
} }
val oldVersion = preferences.lastVersionCode().get() val oldVersion = preferences.lastVersionCode().get()
if (oldVersion < BuildConfig.VERSION_CODE) { if (oldVersion < BuildConfig.VERSION_CODE) {
@ -40,7 +40,7 @@ object Migrations {
// Always set up background tasks to ensure they're running // Always set up background tasks to ensure they're running
if (BuildConfig.INCLUDE_UPDATER) { if (BuildConfig.INCLUDE_UPDATER) {
UpdaterJob.setupTask(context) AppUpdateJob.setupTask(context)
} }
ExtensionUpdateJob.setupTask(context) ExtensionUpdateJob.setupTask(context)
LibraryUpdateJob.setupTask(context) LibraryUpdateJob.setupTask(context)
@ -53,7 +53,7 @@ object Migrations {
if (oldVersion < 14) { if (oldVersion < 14) {
// Restore jobs after upgrading to evernote's job scheduler. // Restore jobs after upgrading to evernote's job scheduler.
if (BuildConfig.INCLUDE_UPDATER) { if (BuildConfig.INCLUDE_UPDATER) {
UpdaterJob.setupTask(context) AppUpdateJob.setupTask(context)
} }
LibraryUpdateJob.setupTask(context) LibraryUpdateJob.setupTask(context)
} }
@ -90,7 +90,7 @@ object Migrations {
LibraryPresenter.updateDB() LibraryPresenter.updateDB()
// Restore jobs after migrating from Evernote's job scheduler to WorkManager. // Restore jobs after migrating from Evernote's job scheduler to WorkManager.
if (BuildConfig.INCLUDE_UPDATER) { if (BuildConfig.INCLUDE_UPDATER) {
UpdaterJob.setupTask(context) AppUpdateJob.setupTask(context)
} }
LibraryUpdateJob.setupTask(context) LibraryUpdateJob.setupTask(context)
BackupCreatorJob.setupTask(context) BackupCreatorJob.setupTask(context)
@ -130,7 +130,7 @@ object Migrations {
if (oldVersion < 74) { if (oldVersion < 74) {
// Turn on auto updates for all users // Turn on auto updates for all users
if (BuildConfig.INCLUDE_UPDATER) { if (BuildConfig.INCLUDE_UPDATER) {
UpdaterJob.setupTask(context) AppUpdateJob.setupTask(context)
} }
} }
if (oldVersion < 75) { if (oldVersion < 75) {

View file

@ -16,7 +16,7 @@ import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.download.DownloadService import eu.kanade.tachiyomi.data.download.DownloadService
import eu.kanade.tachiyomi.data.library.LibraryUpdateService import eu.kanade.tachiyomi.data.library.LibraryUpdateService
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.updater.UpdaterService import eu.kanade.tachiyomi.data.updater.AppUpdateService
import eu.kanade.tachiyomi.extension.ExtensionInstallService import eu.kanade.tachiyomi.extension.ExtensionInstallService
import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.main.MainActivity
@ -216,7 +216,7 @@ class NotificationReceiver : BroadcastReceiver() {
} }
private fun cancelDownloadUpdate(context: Context) { private fun cancelDownloadUpdate(context: Context) {
UpdaterService.stop(context) AppUpdateService.stop(context)
} }
companion object { companion object {

View file

@ -418,7 +418,7 @@ class PreferencesHelper(val context: Context) {
fun sideNavMode() = flowPrefs.getInt(Keys.sideNavMode, 0) fun sideNavMode() = flowPrefs.getInt(Keys.sideNavMode, 0)
fun shouldAutoUpdate() = prefs.getInt(Keys.shouldAutoUpdate, AutoUpdaterJob.ONLY_ON_UNMETERED) fun appShouldAutoUpdate() = prefs.getInt(Keys.shouldAutoUpdate, AutoUpdaterJob.ONLY_ON_UNMETERED)
fun autoUpdateExtensions() = prefs.getInt(Keys.autoUpdateExtensions, AutoUpdaterJob.ONLY_ON_UNMETERED) fun autoUpdateExtensions() = prefs.getInt(Keys.autoUpdateExtensions, AutoUpdaterJob.ONLY_ON_UNMETERED)

View file

@ -10,9 +10,9 @@ import androidx.preference.PreferenceManager
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.toast
class UpdaterBroadcast : BroadcastReceiver() { class AppUpdateBroadcast : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
if (UpdaterService.PACKAGE_INSTALLED_ACTION == intent.action) { if (AppUpdateService.PACKAGE_INSTALLED_ACTION == intent.action) {
val extras = intent.extras ?: return val extras = intent.extras ?: return
when (val status = extras.getInt(PackageInstaller.EXTRA_STATUS)) { when (val status = extras.getInt(PackageInstaller.EXTRA_STATUS)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> { PackageInstaller.STATUS_PENDING_USER_ACTION -> {
@ -22,33 +22,33 @@ class UpdaterBroadcast : BroadcastReceiver() {
PackageInstaller.STATUS_SUCCESS -> { PackageInstaller.STATUS_SUCCESS -> {
val prefs = PreferenceManager.getDefaultSharedPreferences(context) val prefs = PreferenceManager.getDefaultSharedPreferences(context)
prefs.edit { prefs.edit {
remove(UpdaterService.NOTIFY_ON_INSTALL_KEY) remove(AppUpdateService.NOTIFY_ON_INSTALL_KEY)
} }
val notifyOnInstall = extras.getBoolean(UpdaterService.EXTRA_NOTIFY_ON_INSTALL, false) val notifyOnInstall = extras.getBoolean(AppUpdateService.EXTRA_NOTIFY_ON_INSTALL, false)
try { try {
if (notifyOnInstall) { if (notifyOnInstall) {
UpdaterNotifier(context).onInstallFinished() AppUpdateNotifier(context).onInstallFinished()
} }
} finally { } finally {
UpdaterService.stop(context) AppUpdateService.stop(context)
} }
} }
PackageInstaller.STATUS_FAILURE, PackageInstaller.STATUS_FAILURE_ABORTED, PackageInstaller.STATUS_FAILURE_BLOCKED, PackageInstaller.STATUS_FAILURE_CONFLICT, PackageInstaller.STATUS_FAILURE_INCOMPATIBLE, PackageInstaller.STATUS_FAILURE_INVALID, PackageInstaller.STATUS_FAILURE_STORAGE -> { PackageInstaller.STATUS_FAILURE, PackageInstaller.STATUS_FAILURE_ABORTED, PackageInstaller.STATUS_FAILURE_BLOCKED, PackageInstaller.STATUS_FAILURE_CONFLICT, PackageInstaller.STATUS_FAILURE_INCOMPATIBLE, PackageInstaller.STATUS_FAILURE_INVALID, PackageInstaller.STATUS_FAILURE_STORAGE -> {
if (status != PackageInstaller.STATUS_FAILURE_ABORTED) { if (status != PackageInstaller.STATUS_FAILURE_ABORTED) {
context.toast(R.string.could_not_install_update) context.toast(R.string.could_not_install_update)
val uri = intent.getStringExtra(UpdaterService.EXTRA_FILE_URI) ?: return val uri = intent.getStringExtra(AppUpdateService.EXTRA_FILE_URI) ?: return
UpdaterNotifier(context).onInstallError(uri.toUri()) AppUpdateNotifier(context).onInstallError(uri.toUri())
} }
} }
} }
} else if (intent.action == Intent.ACTION_MY_PACKAGE_REPLACED) { } else if (intent.action == Intent.ACTION_MY_PACKAGE_REPLACED) {
val prefs = PreferenceManager.getDefaultSharedPreferences(context) val prefs = PreferenceManager.getDefaultSharedPreferences(context)
val notifyOnInstall = prefs.getBoolean(UpdaterService.NOTIFY_ON_INSTALL_KEY, false) val notifyOnInstall = prefs.getBoolean(AppUpdateService.NOTIFY_ON_INSTALL_KEY, false)
prefs.edit { prefs.edit {
remove(UpdaterService.NOTIFY_ON_INSTALL_KEY) remove(AppUpdateService.NOTIFY_ON_INSTALL_KEY)
} }
if (notifyOnInstall) { if (notifyOnInstall) {
UpdaterNotifier(context).onInstallFinished() AppUpdateNotifier(context).onInstallFinished()
} }
} }
} }

View file

@ -0,0 +1,15 @@
package eu.kanade.tachiyomi.data.updater
import eu.kanade.tachiyomi.data.updater.github.GithubAppUpdateChecker
abstract class AppUpdateChecker {
companion object {
fun getUpdateChecker(): AppUpdateChecker = GithubAppUpdateChecker()
}
/**
* Returns suspended result containing release information
*/
abstract suspend fun checkForUpdate(): AppUpdateResult
}

View file

@ -17,20 +17,20 @@ import kotlinx.coroutines.coroutineScope
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class UpdaterJob(private val context: Context, workerParams: WorkerParameters) : class AppUpdateJob(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) { CoroutineWorker(context, workerParams) {
override suspend fun doWork(): Result = coroutineScope { override suspend fun doWork(): Result = coroutineScope {
try { try {
val preferences: PreferencesHelper by injectLazy() val preferences: PreferencesHelper by injectLazy()
val result = UpdateChecker.getUpdateChecker().checkForUpdate() val result = AppUpdateChecker.getUpdateChecker().checkForUpdate()
if (result is UpdateResult.NewUpdate<*>) { if (result is AppUpdateResult.NewUpdate<*>) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S &&
preferences.shouldAutoUpdate() != AutoUpdaterJob.NEVER preferences.appShouldAutoUpdate() != AutoUpdaterJob.NEVER
) { ) {
AutoUpdaterJob.setupTask(context) AutoUpdaterJob.setupTask(context)
} }
UpdaterNotifier(context).promptUpdate( AppUpdateNotifier(context).promptUpdate(
result.release.info, result.release.info,
result.release.downloadLink, result.release.downloadLink,
result.release.releaseLink result.release.releaseLink
@ -55,7 +55,7 @@ class UpdaterJob(private val context: Context, workerParams: WorkerParameters) :
.setRequiredNetworkType(NetworkType.CONNECTED) .setRequiredNetworkType(NetworkType.CONNECTED)
.build() .build()
val request = PeriodicWorkRequestBuilder<UpdaterJob>( val request = PeriodicWorkRequestBuilder<AppUpdateJob>(
2, 2,
TimeUnit.DAYS, TimeUnit.DAYS,
3, 3,

View file

@ -21,7 +21,7 @@ import eu.kanade.tachiyomi.util.system.notificationManager
* *
* @param context context of application. * @param context context of application.
*/ */
internal class UpdaterNotifier(private val context: Context) { internal class AppUpdateNotifier(private val context: Context) {
/** /**
* Builder to manage notifications. * Builder to manage notifications.
@ -44,9 +44,9 @@ internal class UpdaterNotifier(private val context: Context) {
} }
fun promptUpdate(body: String, url: String, releaseUrl: String) { fun promptUpdate(body: String, url: String, releaseUrl: String) {
val intent = Intent(context, UpdaterService::class.java).apply { val intent = Intent(context, AppUpdateService::class.java).apply {
putExtra(UpdaterService.EXTRA_DOWNLOAD_URL, url) putExtra(AppUpdateService.EXTRA_DOWNLOAD_URL, url)
putExtra(UpdaterService.EXTRA_NOTIFY_ON_INSTALL, true) putExtra(AppUpdateService.EXTRA_NOTIFY_ON_INSTALL, true)
} }
val pendingIntent = NotificationReceiver.openUpdatePendingActivity(context, body, url) val pendingIntent = NotificationReceiver.openUpdatePendingActivity(context, body, url)
@ -202,7 +202,7 @@ internal class UpdaterNotifier(private val context: Context) {
addAction( addAction(
R.drawable.ic_refresh_24dp, R.drawable.ic_refresh_24dp,
context.getString(R.string.retry), context.getString(R.string.retry),
UpdaterService.downloadApkPendingService(context, url) AppUpdateService.downloadApkPendingService(context, url)
) )
// Cancel action // Cancel action
addAction( addAction(

View file

@ -0,0 +1,7 @@
package eu.kanade.tachiyomi.data.updater
abstract class AppUpdateResult {
open class NewUpdate<T : Release>(val release: T) : AppUpdateResult()
open class NoNewUpdate : AppUpdateResult()
}

View file

@ -35,7 +35,7 @@ import timber.log.Timber
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.io.File import java.io.File
class UpdaterService : Service() { class AppUpdateService : Service() {
private val network: NetworkHelper by injectLazy() private val network: NetworkHelper by injectLazy()
@ -44,7 +44,7 @@ class UpdaterService : Service() {
*/ */
private lateinit var wakeLock: PowerManager.WakeLock private lateinit var wakeLock: PowerManager.WakeLock
private lateinit var notifier: UpdaterNotifier private lateinit var notifier: AppUpdateNotifier
private var runningJob: Job? = null private var runningJob: Job? = null
@ -52,7 +52,7 @@ class UpdaterService : Service() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
notifier = UpdaterNotifier(this) notifier = AppUpdateNotifier(this)
startForeground(Notifications.ID_UPDATER, notifier.onDownloadStarted(getString(R.string.app_name)).build()) startForeground(Notifications.ID_UPDATER, notifier.onDownloadStarted(getString(R.string.app_name)).build())
@ -189,7 +189,7 @@ class UpdaterService : Service() {
} }
} }
val newIntent = Intent(this, UpdaterBroadcast::class.java) val newIntent = Intent(this, AppUpdateBroadcast::class.java)
.setAction(PACKAGE_INSTALLED_ACTION) .setAction(PACKAGE_INSTALLED_ACTION)
.putExtra(EXTRA_NOTIFY_ON_INSTALL, notifyOnInstall) .putExtra(EXTRA_NOTIFY_ON_INSTALL, notifyOnInstall)
.putExtra(EXTRA_FILE_URI, file.getUriCompat(this).toString()) .putExtra(EXTRA_FILE_URI, file.getUriCompat(this).toString())
@ -216,7 +216,7 @@ class UpdaterService : Service() {
internal const val NOTIFY_ON_INSTALL_KEY = "notify_on_install_complete" internal const val NOTIFY_ON_INSTALL_KEY = "notify_on_install_complete"
private var instance: UpdaterService? = null private var instance: AppUpdateService? = null
/** /**
* Returns the status of the service. * Returns the status of the service.
@ -234,7 +234,7 @@ class UpdaterService : Service() {
fun start(context: Context, url: String, notifyOnInstall: Boolean) { fun start(context: Context, url: String, notifyOnInstall: Boolean) {
if (!isRunning()) { if (!isRunning()) {
val title = context.getString(R.string.app_name) val title = context.getString(R.string.app_name)
val intent = Intent(context, UpdaterService::class.java).apply { val intent = Intent(context, AppUpdateService::class.java).apply {
putExtra(EXTRA_DOWNLOAD_TITLE, title) putExtra(EXTRA_DOWNLOAD_TITLE, title)
putExtra(EXTRA_DOWNLOAD_URL, url) putExtra(EXTRA_DOWNLOAD_URL, url)
putExtra(EXTRA_NOTIFY_ON_INSTALL, notifyOnInstall) putExtra(EXTRA_NOTIFY_ON_INSTALL, notifyOnInstall)
@ -253,7 +253,7 @@ class UpdaterService : Service() {
* @param context the application context. * @param context the application context.
*/ */
fun stop(context: Context) { fun stop(context: Context) {
context.stopService(Intent(context, UpdaterService::class.java)) context.stopService(Intent(context, AppUpdateService::class.java))
} }
/** /**
@ -263,7 +263,7 @@ class UpdaterService : Service() {
* @return [PendingIntent] * @return [PendingIntent]
*/ */
internal fun downloadApkPendingService(context: Context, url: String, notifyOnInstall: Boolean = false): PendingIntent { internal fun downloadApkPendingService(context: Context, url: String, notifyOnInstall: Boolean = false): PendingIntent {
val intent = Intent(context, UpdaterService::class.java).apply { val intent = Intent(context, AppUpdateService::class.java).apply {
putExtra(EXTRA_DOWNLOAD_URL, url) putExtra(EXTRA_DOWNLOAD_URL, url)
putExtra(EXTRA_NOTIFY_ON_INSTALL, notifyOnInstall) putExtra(EXTRA_NOTIFY_ON_INSTALL, notifyOnInstall)
} }

View file

@ -25,11 +25,11 @@ class AutoUpdaterJob(private val context: Context, workerParams: WorkerParameter
) { ) {
return@coroutineScope Result.failure() return@coroutineScope Result.failure()
} }
val result = UpdateChecker.getUpdateChecker().checkForUpdate() val result = AppUpdateChecker.getUpdateChecker().checkForUpdate()
if (result is UpdateResult.NewUpdate<*> && !UpdaterService.isRunning()) { if (result is AppUpdateResult.NewUpdate<*> && !AppUpdateService.isRunning()) {
UpdaterNotifier(context).cancel() AppUpdateNotifier(context).cancel()
UpdaterNotifier.releasePageUrl = result.release.releaseLink AppUpdateNotifier.releasePageUrl = result.release.releaseLink
UpdaterService.start(context, result.release.downloadLink, false) AppUpdateService.start(context, result.release.downloadLink, false)
} }
Result.success() Result.success()
} catch (e: Exception) { } catch (e: Exception) {
@ -45,7 +45,7 @@ class AutoUpdaterJob(private val context: Context, workerParams: WorkerParameter
fun setupTask(context: Context) { fun setupTask(context: Context) {
val preferences = Injekt.get<PreferencesHelper>() val preferences = Injekt.get<PreferencesHelper>()
val restrictions = preferences.shouldAutoUpdate() val restrictions = preferences.appShouldAutoUpdate()
val wifiRestriction = if (restrictions == ONLY_ON_UNMETERED) { val wifiRestriction = if (restrictions == ONLY_ON_UNMETERED) {
NetworkType.UNMETERED NetworkType.UNMETERED
} else { } else {

View file

@ -1,15 +0,0 @@
package eu.kanade.tachiyomi.data.updater
import eu.kanade.tachiyomi.data.updater.github.GithubUpdateChecker
abstract class UpdateChecker {
companion object {
fun getUpdateChecker(): UpdateChecker = GithubUpdateChecker()
}
/**
* Returns suspended result containing release information
*/
abstract suspend fun checkForUpdate(): UpdateResult
}

View file

@ -1,7 +0,0 @@
package eu.kanade.tachiyomi.data.updater
abstract class UpdateResult {
open class NewUpdate<T : Release>(val release: T) : UpdateResult()
open class NoNewUpdate : UpdateResult()
}

View file

@ -1,22 +1,22 @@
package eu.kanade.tachiyomi.data.updater.github package eu.kanade.tachiyomi.data.updater.github
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.data.updater.UpdateChecker import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
import eu.kanade.tachiyomi.data.updater.UpdateResult import eu.kanade.tachiyomi.data.updater.AppUpdateResult
class GithubUpdateChecker : UpdateChecker() { class GithubAppUpdateChecker : AppUpdateChecker() {
private val service: GithubService = GithubService.create() private val service: GithubService = GithubService.create()
override suspend fun checkForUpdate(): UpdateResult { override suspend fun checkForUpdate(): AppUpdateResult {
val release = service.getLatestVersion() val release = service.getLatestVersion()
val newVersion = release.version.replace("[^\\d.]".toRegex(), "") val newVersion = release.version.replace("[^\\d.]".toRegex(), "")
// Check if latest version is different from current version // Check if latest version is different from current version
return if (newVersion != BuildConfig.VERSION_NAME) { return if (newVersion != BuildConfig.VERSION_NAME) {
GithubUpdateResult.NewUpdate(release) GithubAppUpdateResult.NewUpdate(release)
} else { } else {
GithubUpdateResult.NoNewUpdate() GithubAppUpdateResult.NoNewUpdate()
} }
} }
} }

View file

@ -0,0 +1,9 @@
package eu.kanade.tachiyomi.data.updater.github
import eu.kanade.tachiyomi.data.updater.AppUpdateResult
sealed class GithubAppUpdateResult : AppUpdateResult() {
class NewUpdate(release: GithubRelease) : AppUpdateResult.NewUpdate<GithubRelease>(release)
class NoNewUpdate : AppUpdateResult.NoNewUpdate()
}

View file

@ -1,9 +0,0 @@
package eu.kanade.tachiyomi.data.updater.github
import eu.kanade.tachiyomi.data.updater.UpdateResult
sealed class GithubUpdateResult : UpdateResult() {
class NewUpdate(release: GithubRelease) : UpdateResult.NewUpdate<GithubRelease>(release)
class NoNewUpdate : UpdateResult.NoNewUpdate()
}

View file

@ -52,9 +52,9 @@ import eu.kanade.tachiyomi.data.library.LibraryUpdateService
import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.NotificationReceiver
import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.data.preference.asImmediateFlowIn import eu.kanade.tachiyomi.data.preference.asImmediateFlowIn
import eu.kanade.tachiyomi.data.updater.UpdateChecker import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
import eu.kanade.tachiyomi.data.updater.UpdateResult import eu.kanade.tachiyomi.data.updater.AppUpdateNotifier
import eu.kanade.tachiyomi.data.updater.UpdaterNotifier import eu.kanade.tachiyomi.data.updater.AppUpdateResult
import eu.kanade.tachiyomi.databinding.MainActivityBinding import eu.kanade.tachiyomi.databinding.MainActivityBinding
import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.extension.ExtensionManager
import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi
@ -122,7 +122,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
private val hideBottomNav private val hideBottomNav
get() = router.backstackSize > 1 && router.backstack[1].controller !is DialogController get() = router.backstackSize > 1 && router.backstack[1].controller !is DialogController
private val updateChecker by lazy { UpdateChecker.getUpdateChecker() } private val updateChecker by lazy { AppUpdateChecker.getUpdateChecker() }
private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER
private var tabAnimation: ValueAnimator? = null private var tabAnimation: ValueAnimator? = null
private var overflowDialog: Dialog? = null private var overflowDialog: Dialog? = null
@ -565,13 +565,13 @@ open class MainActivity : BaseActivity<MainActivityBinding>(), DownloadServiceLi
try { try {
val result = updateChecker.checkForUpdate() val result = updateChecker.checkForUpdate()
preferences.lastAppCheck().set(Date().time) preferences.lastAppCheck().set(Date().time)
if (result is UpdateResult.NewUpdate<*>) { if (result is AppUpdateResult.NewUpdate<*>) {
val body = result.release.info val body = result.release.info
val url = result.release.downloadLink val url = result.release.downloadLink
// Create confirmation window // Create confirmation window
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
UpdaterNotifier.releasePageUrl = result.release.releaseLink AppUpdateNotifier.releasePageUrl = result.release.releaseLink
AboutController.NewUpdateDialogController(body, url).showDialog(router) AboutController.NewUpdateDialogController(body, url).showDialog(router)
} }
} }

View file

@ -10,10 +10,10 @@ import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.updater.UpdateChecker import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
import eu.kanade.tachiyomi.data.updater.UpdateResult import eu.kanade.tachiyomi.data.updater.AppUpdateNotifier
import eu.kanade.tachiyomi.data.updater.UpdaterNotifier import eu.kanade.tachiyomi.data.updater.AppUpdateResult
import eu.kanade.tachiyomi.data.updater.UpdaterService import eu.kanade.tachiyomi.data.updater.AppUpdateService
import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.util.lang.toTimestampString import eu.kanade.tachiyomi.util.lang.toTimestampString
import eu.kanade.tachiyomi.util.system.isOnline import eu.kanade.tachiyomi.util.system.isOnline
@ -36,7 +36,7 @@ class AboutController : SettingsController() {
/** /**
* Checks for new releases * Checks for new releases
*/ */
private val updateChecker by lazy { UpdateChecker.getUpdateChecker() } private val updateChecker by lazy { AppUpdateChecker.getUpdateChecker() }
private val userPreferences: PreferencesHelper by injectLazy() private val userPreferences: PreferencesHelper by injectLazy()
@ -178,17 +178,17 @@ class AboutController : SettingsController() {
} }
} }
when (result) { when (result) {
is UpdateResult.NewUpdate<*> -> { is AppUpdateResult.NewUpdate<*> -> {
val body = result.release.info val body = result.release.info
val url = result.release.downloadLink val url = result.release.downloadLink
// Create confirmation window // Create confirmation window
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
UpdaterNotifier.releasePageUrl = result.release.releaseLink AppUpdateNotifier.releasePageUrl = result.release.releaseLink
NewUpdateDialogController(body, url).showDialog(router) NewUpdateDialogController(body, url).showDialog(router)
} }
} }
is UpdateResult.NoNewUpdate -> { is AppUpdateResult.NoNewUpdate -> {
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
activity?.toast(R.string.no_new_updates_available) activity?.toast(R.string.no_new_updates_available)
} }
@ -216,7 +216,7 @@ class AboutController : SettingsController() {
if (appContext != null) { if (appContext != null) {
// Start download // Start download
val url = args.getString(URL_KEY) ?: "" val url = args.getString(URL_KEY) ?: ""
UpdaterService.start(appContext, url, true) AppUpdateService.start(appContext, url, true)
} }
} }
.setNegativeButton(R.string.ignore, null) .setNegativeButton(R.string.ignore, null)