Add simple method for preference bindings

This commit is contained in:
len 2016-10-06 19:39:59 +02:00
parent 1f70be688a
commit 4524c705da
8 changed files with 31 additions and 34 deletions

View file

@ -22,6 +22,15 @@ import java.text.SimpleDateFormat
import java.util.* import java.util.*
class SettingsAboutFragment : SettingsFragment() { class SettingsAboutFragment : SettingsFragment() {
companion object {
fun newInstance(rootKey: String): SettingsAboutFragment {
val args = Bundle()
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
return SettingsAboutFragment().apply { arguments = args }
}
}
/** /**
* Checks for new releases * Checks for new releases
*/ */
@ -32,17 +41,7 @@ class SettingsAboutFragment : SettingsFragment() {
*/ */
private var releaseSubscription: Subscription? = null private var releaseSubscription: Subscription? = null
val automaticUpdates by lazy { val automaticUpdates: SwitchPreference by bindPref(R.string.pref_enable_automatic_updates_key)
findPreference(getString(R.string.pref_enable_automatic_updates_key)) as SwitchPreference
}
companion object {
fun newInstance(rootKey: String): SettingsAboutFragment {
val args = Bundle()
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
return SettingsAboutFragment().apply { arguments = args }
}
}
override fun onViewCreated(view: View, savedState: Bundle?) { override fun onViewCreated(view: View, savedState: Bundle?) {
super.onViewCreated(view, savedState) super.onViewCreated(view, savedState)

View file

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.setting package eu.kanade.tachiyomi.ui.setting
import android.os.Bundle import android.os.Bundle
import android.support.v7.preference.Preference
import android.support.v7.preference.XpPreferenceFragment import android.support.v7.preference.XpPreferenceFragment
import android.view.View import android.view.View
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
@ -33,13 +34,13 @@ class SettingsAdvancedFragment : SettingsFragment() {
private val db: DatabaseHelper by injectLazy() private val db: DatabaseHelper by injectLazy()
private val clearCache by lazy { findPreference(getString(R.string.pref_clear_chapter_cache_key)) } private val clearCache: Preference by bindPref(R.string.pref_clear_chapter_cache_key)
private val clearDatabase by lazy { findPreference(getString(R.string.pref_clear_database_key)) } private val clearDatabase: Preference by bindPref(R.string.pref_clear_database_key)
private val clearCookies by lazy { findPreference(getString(R.string.pref_clear_cookies_key)) } private val clearCookies: Preference by bindPref(R.string.pref_clear_cookies_key)
private val refreshMetadata by lazy { findPreference(getString(R.string.pref_refresh_library_metadata_key)) } private val refreshMetadata: Preference by bindPref(R.string.pref_refresh_library_metadata_key)
override fun onViewCreated(view: View, savedState: Bundle?) { override fun onViewCreated(view: View, savedState: Bundle?) {
super.onViewCreated(view, savedState) super.onViewCreated(view, savedState)

View file

@ -5,6 +5,7 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.os.Environment import android.os.Environment
import android.support.v4.content.ContextCompat import android.support.v4.content.ContextCompat
import android.support.v7.preference.Preference
import android.support.v7.preference.XpPreferenceFragment import android.support.v7.preference.XpPreferenceFragment
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
import android.view.View import android.view.View
@ -36,7 +37,7 @@ class SettingsDownloadsFragment : SettingsFragment() {
private val preferences: PreferencesHelper by injectLazy() private val preferences: PreferencesHelper by injectLazy()
val downloadDirPref by lazy { findPreference(getString(R.string.pref_download_directory_key)) } val downloadDirPref: Preference by bindPref(R.string.pref_download_directory_key)
override fun onViewCreated(view: View, savedState: Bundle?) { override fun onViewCreated(view: View, savedState: Bundle?) {
super.onViewCreated(view, savedState) super.onViewCreated(view, savedState)

View file

@ -4,6 +4,7 @@ import android.os.Bundle
import android.support.annotation.CallSuper import android.support.annotation.CallSuper
import android.support.graphics.drawable.VectorDrawableCompat import android.support.graphics.drawable.VectorDrawableCompat
import android.support.v4.content.ContextCompat import android.support.v4.content.ContextCompat
import android.support.v7.preference.Preference
import android.support.v7.preference.XpPreferenceFragment import android.support.v7.preference.XpPreferenceFragment
import android.view.View import android.view.View
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
@ -83,4 +84,8 @@ open class SettingsFragment : XpPreferenceFragment() {
"about_screen" to R.drawable.ic_help_black_24dp "about_screen" to R.drawable.ic_help_black_24dp
) )
protected inline fun <reified T : Preference> bindPref(resId: Int): Lazy<T> {
return lazy { findPreference(getString(resId)) as T }
}
} }

View file

@ -34,26 +34,15 @@ class SettingsGeneralFragment : SettingsFragment(),
private val db: DatabaseHelper by injectLazy() private val db: DatabaseHelper by injectLazy()
val columnsPreference: SimpleDialogPreference by bindPref(R.string.pref_library_columns_dialog_key)
val columnsPreference by lazy { val updateInterval: IntListPreference by bindPref(R.string.pref_library_update_interval_key)
findPreference(getString(R.string.pref_library_columns_dialog_key)) as SimpleDialogPreference
}
val updateInterval by lazy { val updateRestriction: MultiSelectListPreference by bindPref(R.string.pref_library_update_restriction_key)
findPreference(getString(R.string.pref_library_update_interval_key)) as IntListPreference
}
val updateRestriction by lazy { val themePreference: IntListPreference by bindPref(R.string.pref_theme_key)
findPreference(getString(R.string.pref_library_update_restriction_key)) as MultiSelectListPreference
}
val themePreference by lazy { val categoryUpdate: MultiSelectListPreference by bindPref(R.string.pref_library_update_categories_key)
findPreference(getString(R.string.pref_theme_key)) as IntListPreference
}
val categoryUpdate by lazy {
findPreference(getString(R.string.pref_library_update_categories_key)) as MultiSelectListPreference
}
override fun onViewCreated(view: View, savedState: Bundle?) { override fun onViewCreated(view: View, savedState: Bundle?) {
super.onViewCreated(view, savedState) super.onViewCreated(view, savedState)

View file

@ -5,6 +5,7 @@ import android.os.Bundle
import android.support.v7.preference.PreferenceCategory import android.support.v7.preference.PreferenceCategory
import android.support.v7.preference.XpPreferenceFragment import android.support.v7.preference.XpPreferenceFragment
import android.view.View import android.view.View
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.mangasync.MangaSyncManager import eu.kanade.tachiyomi.data.mangasync.MangaSyncManager
import eu.kanade.tachiyomi.data.mangasync.MangaSyncService import eu.kanade.tachiyomi.data.mangasync.MangaSyncService
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -28,7 +29,7 @@ class SettingsSyncFragment : SettingsFragment() {
private val preferences: PreferencesHelper by injectLazy() private val preferences: PreferencesHelper by injectLazy()
val syncCategory by lazy { findPreference("pref_category_manga_sync_accounts") as PreferenceCategory } val syncCategory: PreferenceCategory by bindPref(R.string.pref_category_manga_sync_accounts_key)
override fun onViewCreated(view: View, savedState: Bundle?) { override fun onViewCreated(view: View, savedState: Bundle?) {
super.onViewCreated(view, savedState) super.onViewCreated(view, savedState)

View file

@ -53,6 +53,7 @@
<string name="pref_last_used_category_key">last_used_category</string> <string name="pref_last_used_category_key">last_used_category</string>
<string name="pref_source_languages">pref_source_languages</string> <string name="pref_source_languages">pref_source_languages</string>
<string name="pref_category_manga_sync_accounts_key">category_manga_sync_accounts</string>
<string name="pref_clear_chapter_cache_key">pref_clear_chapter_cache_key</string> <string name="pref_clear_chapter_cache_key">pref_clear_chapter_cache_key</string>
<string name="pref_clear_database_key">pref_clear_database_key</string> <string name="pref_clear_database_key">pref_clear_database_key</string>

View file

@ -18,7 +18,7 @@
android:dependency="@string/pref_auto_update_manga_sync_key"/> android:dependency="@string/pref_auto_update_manga_sync_key"/>
<PreferenceCategory <PreferenceCategory
android:key="pref_category_manga_sync_accounts" android:key="@string/pref_category_manga_sync_accounts_key"
android:title="@string/services" android:title="@string/services"
android:persistent="false"/> android:persistent="false"/>