Rewrote UpdateDownloader to Kotlin

Added auto update check (every 12 hour)
Warning message optional fix #256
Lots of bug fixes!
This commit is contained in:
NoodleMage
2016-04-18 00:20:58 +02:00
parent ec9c19ce7d
commit 55e9d2880c
23 changed files with 532 additions and 249 deletions

View File

@@ -73,5 +73,4 @@ open class BaseActivity : AppCompatActivity() {
snack.f()
snack.show()
}
}
}

View File

@@ -1,12 +1,14 @@
package eu.kanade.tachiyomi.ui.setting
import android.os.Bundle
import android.support.v7.preference.SwitchPreferenceCompat
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.UpdateDownloader
import eu.kanade.tachiyomi.data.updater.UpdateDownloaderAlarm
import eu.kanade.tachiyomi.util.toast
import rx.Subscription
import rx.android.schedulers.AndroidSchedulers
@@ -27,6 +29,10 @@ class SettingsAboutFragment : SettingsNestedFragment() {
*/
private var releaseSubscription: Subscription? = null
val automaticUpdateToggle by lazy {
findPreference(getString(R.string.pref_enable_automatic_updates_key)) as SwitchPreferenceCompat
}
companion object {
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
@@ -45,11 +51,25 @@ class SettingsAboutFragment : SettingsNestedFragment() {
else
BuildConfig.VERSION_NAME
//Set onClickListener to check for new version
version.setOnPreferenceClickListener {
if (!BuildConfig.DEBUG && BuildConfig.INCLUDE_UPDATER)
checkVersion()
true
if (!BuildConfig.DEBUG && BuildConfig.INCLUDE_UPDATER) {
//Set onClickListener to check for new version
version.setOnPreferenceClickListener {
true
}
automaticUpdateToggle.isEnabled = true
automaticUpdateToggle.setOnPreferenceChangeListener { preference, any ->
val status = any as Boolean
UpdateDownloaderAlarm.startAlarm(activity, 12, status)
true
}
automaticUpdateToggle.isEnabled = true
automaticUpdateToggle.setOnPreferenceChangeListener { preference, any ->
val status = any as Boolean
UpdateDownloaderAlarm.startAlarm(activity, 12, status)
true
}
}
buildTime.summary = getFormattedBuildTime()

View File

@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.setting
import android.content.Intent
import android.os.Bundle
import android.support.v14.preference.MultiSelectListPreference
import android.support.v4.app.TaskStackBuilder
import android.support.v7.preference.Preference
import android.view.View
@@ -33,13 +34,28 @@ class SettingsGeneralFragment : SettingsNestedFragment() {
findPreference(getString(R.string.pref_library_update_interval_key)) as IntListPreference
}
val updateRestriction by lazy {
findPreference(getString(R.string.pref_library_update_restriction_key)) as MultiSelectListPreference
}
val themePreference by lazy {
findPreference(getString(R.string.pref_theme_key)) as IntListPreference
}
var updateIntervalSubscription: Subscription? = null
var columnsSubscription: Subscription? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
updateIntervalSubscription = preferences.libraryUpdateInterval().asObservable()
.subscribe { updateRestriction.isVisible = it > 0 }
columnsSubscription = Observable.combineLatest(
preferences.portraitColumns().asObservable(),
preferences.landscapeColumns().asObservable())
{ portraitColumns, landscapeColumns -> Pair(portraitColumns, landscapeColumns) }
.subscribe { updateColumnsSummary(it.first, it.second) }
updateInterval.setOnPreferenceChangeListener { preference, newValue ->
LibraryUpdateAlarm.startAlarm(activity, (newValue as String).toInt())
true
@@ -57,17 +73,11 @@ class SettingsGeneralFragment : SettingsNestedFragment() {
}
}
override fun onResume() {
super.onResume()
columnsSubscription = Observable.combineLatest(preferences.portraitColumns().asObservable(),
preferences.landscapeColumns().asObservable(),
{ portraitColumns, landscapeColumns -> Pair(portraitColumns, landscapeColumns) })
.subscribe { updateColumnsSummary(it.first, it.second) }
}
override fun onPause() {
override fun onDestroyView() {
updateIntervalSubscription?.unsubscribe()
columnsSubscription?.unsubscribe()
super.onPause()
super.onDestroyView()
}
override fun onDisplayPreferenceDialog(preference: Preference) {