Add automatic updates for dev builds (#2128)

This commit is contained in:
Eugene
2019-07-13 13:36:30 -04:00
committed by inorichi
parent e8638cb0b3
commit d5f5ba95bb
13 changed files with 147 additions and 34 deletions

View File

@@ -9,8 +9,8 @@ import android.view.View
import com.afollestad.materialdialogs.MaterialDialog
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.updater.GithubUpdateChecker
import eu.kanade.tachiyomi.data.updater.GithubUpdateResult
import eu.kanade.tachiyomi.data.updater.UpdateChecker
import eu.kanade.tachiyomi.data.updater.UpdateResult
import eu.kanade.tachiyomi.data.updater.UpdaterJob
import eu.kanade.tachiyomi.data.updater.UpdaterService
import eu.kanade.tachiyomi.ui.base.controller.DialogController
@@ -26,20 +26,19 @@ import java.util.Locale
import java.util.TimeZone
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
class SettingsAboutController : SettingsController() {
/**
* Checks for new releases
*/
private val updateChecker by lazy { GithubUpdateChecker() }
private val updateChecker by lazy { UpdateChecker.getUpdateChecker() }
/**
* The subscribtion service of the obtained release object
*/
private var releaseSubscription: Subscription? = null
private val isUpdaterEnabled = !BuildConfig.DEBUG && BuildConfig.INCLUDE_UPDATER
private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER
override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
titleRes = R.string.pref_category_about
@@ -124,14 +123,14 @@ class SettingsAboutController : SettingsController() {
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ result ->
when (result) {
is GithubUpdateResult.NewUpdate -> {
val body = result.release.changeLog
is UpdateResult.NewUpdate<*> -> {
val body = result.release.info
val url = result.release.downloadLink
// Create confirmation window
NewUpdateDialogController(body, url).showDialog(router)
}
is GithubUpdateResult.NoNewUpdate -> {
is UpdateResult.NoNewUpdate -> {
activity?.toast(R.string.update_check_no_new_updates)
}
}