mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-20 17:59:18 +01:00
Rewrite preferences with a modified support library v7
This commit is contained in:
parent
cd92569355
commit
9beeca652f
@ -94,8 +94,6 @@ dependencies {
|
|||||||
compile "com.android.support:design:$support_library_version"
|
compile "com.android.support:design:$support_library_version"
|
||||||
compile "com.android.support:recyclerview-v7:$support_library_version"
|
compile "com.android.support:recyclerview-v7:$support_library_version"
|
||||||
compile "com.android.support:support-annotations:$support_library_version"
|
compile "com.android.support:support-annotations:$support_library_version"
|
||||||
compile "com.android.support:preference-v7:$support_library_version"
|
|
||||||
compile "com.android.support:preference-v14:$support_library_version"
|
|
||||||
compile "com.android.support:customtabs:$support_library_version"
|
compile "com.android.support:customtabs:$support_library_version"
|
||||||
|
|
||||||
// ReactiveX
|
// ReactiveX
|
||||||
@ -162,6 +160,7 @@ dependencies {
|
|||||||
compile 'com.nononsenseapps:filepicker:2.5.2'
|
compile 'com.nononsenseapps:filepicker:2.5.2'
|
||||||
compile 'com.github.amulyakhare:TextDrawable:558677e'
|
compile 'com.github.amulyakhare:TextDrawable:558677e'
|
||||||
compile 'com.afollestad.material-dialogs:core:0.8.5.9'
|
compile 'com.afollestad.material-dialogs:core:0.8.5.9'
|
||||||
|
compile 'net.xpece.android:support-preference:0.8.1'
|
||||||
|
|
||||||
// Tests
|
// Tests
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
|
@ -61,7 +61,7 @@ class ChaptersFragment : BaseRxFragment<ChaptersPresenter>(), ActionMode.Callbac
|
|||||||
return inflater.inflate(R.layout.fragment_manga_chapters, container, false)
|
return inflater.inflate(R.layout.fragment_manga_chapters, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
// Init RecyclerView and adapter
|
// Init RecyclerView and adapter
|
||||||
adapter = ChaptersAdapter(this)
|
adapter = ChaptersAdapter(this)
|
||||||
|
|
||||||
|
@ -64,9 +64,9 @@ class RecentChaptersFragment
|
|||||||
/**
|
/**
|
||||||
* Called when view is created
|
* Called when view is created
|
||||||
* @param view created view
|
* @param view created view
|
||||||
* @param savedInstanceState status of saved sate
|
* @param savedState status of saved sate
|
||||||
*/
|
*/
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
// Init RecyclerView and adapter
|
// Init RecyclerView and adapter
|
||||||
recycler.layoutManager = NpaLinearLayoutManager(activity)
|
recycler.layoutManager = NpaLinearLayoutManager(activity)
|
||||||
recycler.addItemDecoration(DividerItemDecoration(context.theme.getResourceDrawable(R.attr.divider_drawable)))
|
recycler.addItemDecoration(DividerItemDecoration(context.theme.getResourceDrawable(R.attr.divider_drawable)))
|
||||||
|
@ -54,9 +54,9 @@ class RecentlyReadFragment : BaseRxFragment<RecentlyReadPresenter>() {
|
|||||||
* Called when view is created
|
* Called when view is created
|
||||||
*
|
*
|
||||||
* @param view created view
|
* @param view created view
|
||||||
* @param savedInstanceState status of saved sate
|
* @param savedState status of saved sate
|
||||||
*/
|
*/
|
||||||
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View?, savedState: Bundle?) {
|
||||||
// Initialize adapter
|
// Initialize adapter
|
||||||
recycler.layoutManager = NpaLinearLayoutManager(activity)
|
recycler.layoutManager = NpaLinearLayoutManager(activity)
|
||||||
adapter = RecentlyReadAdapter(this)
|
adapter = RecentlyReadAdapter(this)
|
||||||
|
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.setting
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v7.preference.SwitchPreferenceCompat
|
import android.support.v7.preference.SwitchPreferenceCompat
|
||||||
|
import android.support.v7.preference.XpPreferenceFragment
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import eu.kanade.tachiyomi.BuildConfig
|
import eu.kanade.tachiyomi.BuildConfig
|
||||||
@ -17,7 +18,7 @@ import java.text.ParseException
|
|||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class SettingsAboutFragment : SettingsNestedFragment() {
|
class SettingsAboutFragment : SettingsFragment() {
|
||||||
/**
|
/**
|
||||||
* Checks for new releases
|
* Checks for new releases
|
||||||
*/
|
*/
|
||||||
@ -33,15 +34,16 @@ class SettingsAboutFragment : SettingsNestedFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
fun newInstance(rootKey: String): SettingsAboutFragment {
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
|
val args = Bundle()
|
||||||
val fragment = SettingsAboutFragment()
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
fragment.setArgs(resourcePreference, resourceTitle)
|
return SettingsAboutFragment().apply { arguments = args }
|
||||||
return fragment
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedState)
|
||||||
|
|
||||||
val version = findPreference(getString(R.string.pref_version))
|
val version = findPreference(getString(R.string.pref_version))
|
||||||
val buildTime = findPreference(getString(R.string.pref_build_time))
|
val buildTime = findPreference(getString(R.string.pref_build_time))
|
||||||
|
|
||||||
|
@ -1,97 +1,63 @@
|
|||||||
package eu.kanade.tachiyomi.ui.setting
|
package eu.kanade.tachiyomi.ui.setting
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v14.preference.PreferenceFragment
|
import android.support.v7.preference.PreferenceFragmentCompat
|
||||||
|
import android.support.v7.preference.PreferenceScreen
|
||||||
|
import android.view.MenuItem
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
|
||||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
|
||||||
import eu.kanade.tachiyomi.data.mangasync.MangaSyncManager
|
|
||||||
import eu.kanade.tachiyomi.data.network.NetworkHelper
|
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|
||||||
import eu.kanade.tachiyomi.data.source.SourceManager
|
|
||||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||||
import kotlinx.android.synthetic.main.toolbar.*
|
import kotlinx.android.synthetic.main.toolbar.*
|
||||||
import uy.kohesive.injekt.injectLazy
|
import net.xpece.android.support.preference.PreferenceScreenNavigationStrategy
|
||||||
|
import net.xpece.android.support.preference.PreferenceScreenNavigationStrategy.ReplaceFragment
|
||||||
|
|
||||||
class SettingsActivity : BaseActivity() {
|
class SettingsActivity : BaseActivity(),
|
||||||
|
PreferenceFragmentCompat.OnPreferenceStartScreenCallback,
|
||||||
|
PreferenceScreenNavigationStrategy.ReplaceFragment.Callbacks {
|
||||||
|
|
||||||
val preferences: PreferencesHelper by injectLazy()
|
private lateinit var replaceFragmentStrategy: ReplaceFragment
|
||||||
val chapterCache: ChapterCache by injectLazy()
|
|
||||||
val db: DatabaseHelper by injectLazy()
|
|
||||||
val sourceManager: SourceManager by injectLazy()
|
|
||||||
val syncManager: MangaSyncManager by injectLazy()
|
|
||||||
val networkHelper: NetworkHelper by injectLazy()
|
|
||||||
|
|
||||||
override fun onCreate(savedState: Bundle?) {
|
override fun onCreate(savedState: Bundle?) {
|
||||||
setAppTheme()
|
setAppTheme()
|
||||||
super.onCreate(savedState)
|
super.onCreate(savedState)
|
||||||
setContentView(R.layout.activity_preferences)
|
setContentView(R.layout.activity_preferences)
|
||||||
|
|
||||||
setupToolbar(toolbar)
|
replaceFragmentStrategy = ReplaceFragment(this,
|
||||||
|
R.anim.abc_fade_in, R.anim.abc_fade_out,
|
||||||
|
R.anim.abc_fade_in, R.anim.abc_fade_out)
|
||||||
|
|
||||||
if (savedState == null) {
|
if (savedState == null) {
|
||||||
fragmentManager.beginTransaction()
|
supportFragmentManager.beginTransaction()
|
||||||
.replace(R.id.settings_content, SettingsMainFragment())
|
.add(R.id.settings_content, SettingsFragment.newInstance(null), "Settings")
|
||||||
.commit()
|
.commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupToolbar(toolbar, backNavigation = false)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
if (!fragmentManager.popBackStackImmediate()) {
|
when (item.itemId) {
|
||||||
super.onBackPressed()
|
android.R.id.home -> onBackPressed()
|
||||||
}
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
return true
|
||||||
class SettingsMainFragment : PreferenceFragment() {
|
}
|
||||||
|
|
||||||
override fun onCreatePreferences(savedState: Bundle?, s: String?) {
|
override fun onBuildPreferenceFragment(key: String?): PreferenceFragmentCompat {
|
||||||
addPreferencesFromResource(R.xml.pref_main)
|
return when (key) {
|
||||||
|
"general_screen" -> SettingsGeneralFragment.newInstance(key)
|
||||||
registerSubpreference(R.string.pref_category_general_key) {
|
"downloads_screen" -> SettingsDownloadsFragment.newInstance(key)
|
||||||
SettingsGeneralFragment.newInstance(R.xml.pref_general, R.string.pref_category_general)
|
"sources_screen" -> SettingsSourcesFragment.newInstance(key)
|
||||||
}
|
"sync_screen" -> SettingsSyncFragment.newInstance(key)
|
||||||
|
"advanced_screen" -> SettingsAdvancedFragment.newInstance(key)
|
||||||
registerSubpreference(R.string.pref_category_reader_key) {
|
"about_screen" -> SettingsAboutFragment.newInstance(key)
|
||||||
SettingsNestedFragment.newInstance(R.xml.pref_reader, R.string.pref_category_reader)
|
else -> SettingsFragment.newInstance(key)
|
||||||
}
|
|
||||||
|
|
||||||
registerSubpreference(R.string.pref_category_downloads_key) {
|
|
||||||
SettingsDownloadsFragment.newInstance(R.xml.pref_downloads, R.string.pref_category_downloads)
|
|
||||||
}
|
|
||||||
|
|
||||||
registerSubpreference(R.string.pref_category_sources_key) {
|
|
||||||
SettingsSourcesFragment.newInstance(R.xml.pref_sources, R.string.pref_category_sources)
|
|
||||||
}
|
|
||||||
|
|
||||||
registerSubpreference(R.string.pref_category_sync_key) {
|
|
||||||
SettingsSyncFragment.newInstance(R.xml.pref_sync, R.string.pref_category_sync)
|
|
||||||
}
|
|
||||||
|
|
||||||
registerSubpreference(R.string.pref_category_advanced_key) {
|
|
||||||
SettingsAdvancedFragment.newInstance(R.xml.pref_advanced, R.string.pref_category_advanced)
|
|
||||||
}
|
|
||||||
|
|
||||||
registerSubpreference(R.string.pref_category_about_key) {
|
|
||||||
SettingsAboutFragment.newInstance(R.xml.pref_about, R.string.pref_category_about)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
(activity as BaseActivity).setToolbarTitle(getString(R.string.label_settings))
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun registerSubpreference(preferenceResource: Int, func: () -> PreferenceFragment) {
|
|
||||||
findPreference(getString(preferenceResource)).setOnPreferenceClickListener {
|
|
||||||
val fragment = func()
|
|
||||||
fragmentManager.beginTransaction()
|
|
||||||
.replace(R.id.settings_content, fragment)
|
|
||||||
.addToBackStack(fragment.javaClass.simpleName)
|
|
||||||
.commit()
|
|
||||||
true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onPreferenceStartScreen(p0: PreferenceFragmentCompat, p1: PreferenceScreen): Boolean {
|
||||||
|
replaceFragmentStrategy.onPreferenceStartScreen(supportFragmentManager, p0, p1)
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,36 @@
|
|||||||
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.XpPreferenceFragment
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||||
|
import eu.kanade.tachiyomi.data.network.NetworkHelper
|
||||||
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
import rx.schedulers.Schedulers
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
|
|
||||||
class SettingsAdvancedFragment : SettingsNestedFragment() {
|
class SettingsAdvancedFragment : SettingsFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
fun newInstance(rootKey: String): SettingsAdvancedFragment {
|
||||||
|
val args = Bundle()
|
||||||
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
|
return SettingsAdvancedFragment().apply { arguments = args }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
|
private val network: NetworkHelper by injectLazy()
|
||||||
val fragment = SettingsAdvancedFragment()
|
|
||||||
fragment.setArgs(resourcePreference, resourceTitle)
|
private val chapterCache: ChapterCache by injectLazy()
|
||||||
return fragment
|
|
||||||
}
|
private val db: DatabaseHelper by injectLazy()
|
||||||
}
|
|
||||||
|
|
||||||
private val clearCache by lazy { findPreference(getString(R.string.pref_clear_chapter_cache_key)) }
|
private val clearCache by lazy { findPreference(getString(R.string.pref_clear_chapter_cache_key)) }
|
||||||
|
|
||||||
@ -30,9 +38,9 @@ class SettingsAdvancedFragment : SettingsNestedFragment() {
|
|||||||
|
|
||||||
private val clearCookies by lazy { findPreference(getString(R.string.pref_clear_cookies_key)) }
|
private val clearCookies by lazy { findPreference(getString(R.string.pref_clear_cookies_key)) }
|
||||||
|
|
||||||
private var clearCacheSubscription: Subscription? = null
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedState)
|
||||||
|
|
||||||
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
|
||||||
clearCache.setOnPreferenceClickListener {
|
clearCache.setOnPreferenceClickListener {
|
||||||
clearChapterCache()
|
clearChapterCache()
|
||||||
true
|
true
|
||||||
@ -40,7 +48,7 @@ class SettingsAdvancedFragment : SettingsNestedFragment() {
|
|||||||
clearCache.summary = getString(R.string.used_cache, chapterCache.readableSize)
|
clearCache.summary = getString(R.string.used_cache, chapterCache.readableSize)
|
||||||
|
|
||||||
clearCookies.setOnPreferenceClickListener {
|
clearCookies.setOnPreferenceClickListener {
|
||||||
settingsActivity.networkHelper.cookies.removeAll()
|
network.cookies.removeAll()
|
||||||
activity.toast(R.string.cookies_cleared)
|
activity.toast(R.string.cookies_cleared)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
@ -51,11 +59,6 @@ class SettingsAdvancedFragment : SettingsNestedFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
clearCacheSubscription?.unsubscribe()
|
|
||||||
super.onDestroyView()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun clearChapterCache() {
|
private fun clearChapterCache() {
|
||||||
val deletedFiles = AtomicInteger()
|
val deletedFiles = AtomicInteger()
|
||||||
|
|
||||||
@ -67,9 +70,7 @@ class SettingsAdvancedFragment : SettingsNestedFragment() {
|
|||||||
.cancelable(false)
|
.cancelable(false)
|
||||||
.show()
|
.show()
|
||||||
|
|
||||||
clearCacheSubscription?.unsubscribe()
|
subscriptions += Observable.defer { Observable.from(files) }
|
||||||
|
|
||||||
clearCacheSubscription = Observable.defer { Observable.from(files) }
|
|
||||||
.concatMap { file ->
|
.concatMap { file ->
|
||||||
if (chapterCache.removeFileFromCache(file.name)) {
|
if (chapterCache.removeFileFromCache(file.name)) {
|
||||||
deletedFiles.incrementAndGet()
|
deletedFiles.incrementAndGet()
|
||||||
@ -102,10 +103,4 @@ class SettingsAdvancedFragment : SettingsNestedFragment() {
|
|||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val chapterCache: ChapterCache
|
|
||||||
get() = settingsActivity.chapterCache
|
|
||||||
|
|
||||||
private val db: DatabaseHelper
|
|
||||||
get() = settingsActivity.db
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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.XpPreferenceFragment
|
||||||
import android.support.v7.widget.RecyclerView
|
import android.support.v7.widget.RecyclerView
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
@ -14,29 +15,32 @@ import com.nononsenseapps.filepicker.FilePickerActivity
|
|||||||
import com.nononsenseapps.filepicker.FilePickerFragment
|
import com.nononsenseapps.filepicker.FilePickerFragment
|
||||||
import com.nononsenseapps.filepicker.LogicHandler
|
import com.nononsenseapps.filepicker.LogicHandler
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import rx.Subscription
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class SettingsDownloadsFragment : SettingsNestedFragment() {
|
class SettingsDownloadsFragment : SettingsFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
val DOWNLOAD_DIR_CODE = 103
|
val DOWNLOAD_DIR_CODE = 103
|
||||||
|
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
|
fun newInstance(rootKey: String): SettingsDownloadsFragment {
|
||||||
val fragment = SettingsDownloadsFragment()
|
val args = Bundle()
|
||||||
fragment.setArgs(resourcePreference, resourceTitle)
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
return fragment
|
return SettingsDownloadsFragment().apply { arguments = args }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
|
|
||||||
val downloadDirPref by lazy { findPreference(getString(R.string.pref_download_directory_key)) }
|
val downloadDirPref by lazy { findPreference(getString(R.string.pref_download_directory_key)) }
|
||||||
|
|
||||||
var downloadDirSubscription: Subscription? = null
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedState: Bundle?) {
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedState)
|
||||||
|
|
||||||
downloadDirPref.setOnPreferenceClickListener {
|
downloadDirPref.setOnPreferenceClickListener {
|
||||||
|
|
||||||
val currentDir = preferences.downloadsDirectory().getOrDefault()
|
val currentDir = preferences.downloadsDirectory().getOrDefault()
|
||||||
@ -66,15 +70,10 @@ class SettingsDownloadsFragment : SettingsNestedFragment() {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadDirSubscription = preferences.downloadsDirectory().asObservable()
|
subscriptions += preferences.downloadsDirectory().asObservable()
|
||||||
.subscribe { downloadDirPref.summary = it }
|
.subscribe { downloadDirPref.summary = it }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
downloadDirSubscription?.unsubscribe()
|
|
||||||
super.onDestroyView()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getExternalFilesDirs(): List<File> {
|
fun getExternalFilesDirs(): List<File> {
|
||||||
val defaultDir = Environment.getExternalStorageDirectory().absolutePath +
|
val defaultDir = Environment.getExternalStorageDirectory().absolutePath +
|
||||||
File.separator + getString(R.string.app_name) +
|
File.separator + getString(R.string.app_name) +
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package eu.kanade.tachiyomi.ui.setting
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.support.annotation.CallSuper
|
||||||
|
import android.support.v7.preference.XpPreferenceFragment
|
||||||
|
import android.view.View
|
||||||
|
import eu.kanade.tachiyomi.R
|
||||||
|
import net.xpece.android.support.preference.PreferenceScreenNavigationStrategy
|
||||||
|
import rx.subscriptions.CompositeSubscription
|
||||||
|
|
||||||
|
open class SettingsFragment : XpPreferenceFragment() {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun newInstance(rootKey: String?): SettingsFragment {
|
||||||
|
val args = Bundle()
|
||||||
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
|
return SettingsFragment().apply { arguments = args }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lateinit var subscriptions: CompositeSubscription
|
||||||
|
|
||||||
|
override final fun onCreatePreferences2(savedState: Bundle?, rootKey: String?) {
|
||||||
|
subscriptions = CompositeSubscription()
|
||||||
|
|
||||||
|
addPreferencesFromResource(R.xml.pref_general)
|
||||||
|
addPreferencesFromResource(R.xml.pref_reader)
|
||||||
|
addPreferencesFromResource(R.xml.pref_downloads)
|
||||||
|
addPreferencesFromResource(R.xml.pref_sources)
|
||||||
|
addPreferencesFromResource(R.xml.pref_sync)
|
||||||
|
addPreferencesFromResource(R.xml.pref_advanced)
|
||||||
|
addPreferencesFromResource(R.xml.pref_about)
|
||||||
|
|
||||||
|
// Setup root preference title.
|
||||||
|
preferenceScreen.title = activity.title
|
||||||
|
|
||||||
|
PreferenceScreenNavigationStrategy.ReplaceFragment.onCreatePreferences(this, rootKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
@CallSuper
|
||||||
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
listView.isFocusable = false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onStart() {
|
||||||
|
super.onStart()
|
||||||
|
activity.title = preferenceScreen.title
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
subscriptions.unsubscribe()
|
||||||
|
super.onDestroyView()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -2,29 +2,37 @@ package eu.kanade.tachiyomi.ui.setting
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v14.preference.MultiSelectListPreference
|
|
||||||
import android.support.v4.app.TaskStackBuilder
|
import android.support.v4.app.TaskStackBuilder
|
||||||
import android.support.v7.preference.Preference
|
import android.support.v7.preference.Preference
|
||||||
|
import android.support.v7.preference.PreferenceFragmentCompat
|
||||||
|
import android.support.v7.preference.XpPreferenceFragment
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateAlarm
|
import eu.kanade.tachiyomi.data.library.LibraryUpdateAlarm
|
||||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import eu.kanade.tachiyomi.widget.preference.IntListPreference
|
import eu.kanade.tachiyomi.widget.preference.IntListPreference
|
||||||
import eu.kanade.tachiyomi.widget.preference.LibraryColumnsDialog
|
import eu.kanade.tachiyomi.widget.preference.LibraryColumnsDialog
|
||||||
import eu.kanade.tachiyomi.widget.preference.SimpleDialogPreference
|
import eu.kanade.tachiyomi.widget.preference.SimpleDialogPreference
|
||||||
|
import net.xpece.android.support.preference.MultiSelectListPreference
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
|
class SettingsGeneralFragment : SettingsFragment(),
|
||||||
|
PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback {
|
||||||
|
|
||||||
class SettingsGeneralFragment : SettingsNestedFragment() {
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsGeneralFragment {
|
fun newInstance(rootKey: String): SettingsGeneralFragment {
|
||||||
val fragment = SettingsGeneralFragment();
|
val args = Bundle()
|
||||||
fragment.setArgs(resourcePreference, resourceTitle);
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
return fragment;
|
return SettingsGeneralFragment().apply { arguments = args }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
|
|
||||||
|
|
||||||
val columnsPreference by lazy {
|
val columnsPreference by lazy {
|
||||||
findPreference(getString(R.string.pref_library_columns_dialog_key)) as SimpleDialogPreference
|
findPreference(getString(R.string.pref_library_columns_dialog_key)) as SimpleDialogPreference
|
||||||
}
|
}
|
||||||
@ -41,15 +49,13 @@ class SettingsGeneralFragment : SettingsNestedFragment() {
|
|||||||
findPreference(getString(R.string.pref_theme_key)) as IntListPreference
|
findPreference(getString(R.string.pref_theme_key)) as IntListPreference
|
||||||
}
|
}
|
||||||
|
|
||||||
var updateIntervalSubscription: Subscription? = null
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedState)
|
||||||
|
|
||||||
var columnsSubscription: Subscription? = null
|
subscriptions += preferences.libraryUpdateInterval().asObservable()
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
||||||
updateIntervalSubscription = preferences.libraryUpdateInterval().asObservable()
|
|
||||||
.subscribe { updateRestriction.isVisible = it > 0 }
|
.subscribe { updateRestriction.isVisible = it > 0 }
|
||||||
|
|
||||||
columnsSubscription = Observable.combineLatest(
|
subscriptions += Observable.combineLatest(
|
||||||
preferences.portraitColumns().asObservable(),
|
preferences.portraitColumns().asObservable(),
|
||||||
preferences.landscapeColumns().asObservable())
|
preferences.landscapeColumns().asObservable())
|
||||||
{ portraitColumns, landscapeColumns -> Pair(portraitColumns, landscapeColumns) }
|
{ portraitColumns, landscapeColumns -> Pair(portraitColumns, landscapeColumns) }
|
||||||
@ -62,29 +68,21 @@ class SettingsGeneralFragment : SettingsNestedFragment() {
|
|||||||
|
|
||||||
themePreference.setOnPreferenceChangeListener { preference, newValue ->
|
themePreference.setOnPreferenceChangeListener { preference, newValue ->
|
||||||
// Rebuild activity's to apply themes.
|
// Rebuild activity's to apply themes.
|
||||||
TaskStackBuilder.create(activity)
|
TaskStackBuilder.create(context)
|
||||||
.addNextIntent(Intent(activity, MainActivity::class.java))
|
.addNextIntentWithParentStack(Intent(activity.intent))
|
||||||
.addNextIntent(activity.intent)
|
|
||||||
.startActivities()
|
.startActivities()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onPreferenceDisplayDialog(p0: PreferenceFragmentCompat?, p: Preference): Boolean {
|
||||||
updateIntervalSubscription?.unsubscribe()
|
if (p.key == getString(R.string.pref_library_columns_dialog_key)) {
|
||||||
columnsSubscription?.unsubscribe()
|
val fragment = LibraryColumnsDialog.newInstance(p)
|
||||||
super.onDestroyView()
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDisplayPreferenceDialog(preference: Preference) {
|
|
||||||
if (preference === columnsPreference) {
|
|
||||||
val fragment = LibraryColumnsDialog.newInstance(preference)
|
|
||||||
fragment.setTargetFragment(this, 0)
|
fragment.setTargetFragment(this, 0)
|
||||||
fragment.show(fragmentManagerCompat, null)
|
fragment.show(childFragmentManager, null)
|
||||||
} else {
|
return true
|
||||||
super.onDisplayPreferenceDialog(preference)
|
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateColumnsSummary(portraitColumns: Int, landscapeColumns: Int) {
|
private fun updateColumnsSummary(portraitColumns: Int, landscapeColumns: Int) {
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
package eu.kanade.tachiyomi.ui.setting
|
|
||||||
|
|
||||||
import android.app.FragmentManager
|
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.support.v14.preference.PreferenceFragment
|
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|
||||||
|
|
||||||
open class SettingsNestedFragment : PreferenceFragment() {
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
|
|
||||||
private val RESOURCE_FILE = "resource_file"
|
|
||||||
private val TOOLBAR_TITLE = "toolbar_title"
|
|
||||||
|
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
|
|
||||||
val fragment = SettingsNestedFragment()
|
|
||||||
fragment.setArgs(resourcePreference, resourceTitle)
|
|
||||||
return fragment
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreatePreferences(savedState: Bundle?, s: String?) {
|
|
||||||
addPreferencesFromResource(arguments.getInt(RESOURCE_FILE))
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
settingsActivity.setToolbarTitle(getString(arguments.getInt(TOOLBAR_TITLE)))
|
|
||||||
}
|
|
||||||
|
|
||||||
fun setArgs(resourcePreference: Int, resourceTitle: Int) {
|
|
||||||
val args = Bundle()
|
|
||||||
args.putInt(RESOURCE_FILE, resourcePreference)
|
|
||||||
args.putInt(TOOLBAR_TITLE, resourceTitle)
|
|
||||||
arguments = args
|
|
||||||
}
|
|
||||||
|
|
||||||
val settingsActivity: SettingsActivity
|
|
||||||
get() = activity as SettingsActivity
|
|
||||||
|
|
||||||
val preferences: PreferencesHelper
|
|
||||||
get() = settingsActivity.preferences
|
|
||||||
|
|
||||||
val fragmentManagerCompat: FragmentManager
|
|
||||||
get() = if (Build.VERSION.SDK_INT >= 17) childFragmentManager else fragmentManager
|
|
||||||
}
|
|
@ -2,36 +2,45 @@ package eu.kanade.tachiyomi.ui.setting
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v14.preference.MultiSelectListPreference
|
|
||||||
import android.support.v7.preference.Preference
|
import android.support.v7.preference.Preference
|
||||||
import android.support.v7.preference.PreferenceGroup
|
import android.support.v7.preference.PreferenceGroup
|
||||||
|
import android.support.v7.preference.XpPreferenceFragment
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
import eu.kanade.tachiyomi.data.source.Source
|
import eu.kanade.tachiyomi.data.source.Source
|
||||||
|
import eu.kanade.tachiyomi.data.source.SourceManager
|
||||||
import eu.kanade.tachiyomi.data.source.getLanguages
|
import eu.kanade.tachiyomi.data.source.getLanguages
|
||||||
import eu.kanade.tachiyomi.data.source.online.LoginSource
|
import eu.kanade.tachiyomi.data.source.online.LoginSource
|
||||||
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
||||||
import eu.kanade.tachiyomi.widget.preference.SourceLoginDialog
|
import eu.kanade.tachiyomi.widget.preference.SourceLoginDialog
|
||||||
import rx.Subscription
|
import net.xpece.android.support.preference.MultiSelectListPreference
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
class SettingsSourcesFragment : SettingsNestedFragment() {
|
class SettingsSourcesFragment : SettingsFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val SOURCE_CHANGE_REQUEST = 120
|
const val SOURCE_CHANGE_REQUEST = 120
|
||||||
|
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
|
fun newInstance(rootKey: String?): SettingsSourcesFragment {
|
||||||
val fragment = SettingsSourcesFragment()
|
val args = Bundle()
|
||||||
fragment.setArgs(resourcePreference, resourceTitle)
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
return fragment
|
return SettingsSourcesFragment().apply { arguments = args }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
|
|
||||||
|
private val sourceManager: SourceManager by injectLazy()
|
||||||
|
|
||||||
val languagesPref by lazy { findPreference("pref_source_languages") as MultiSelectListPreference }
|
val languagesPref by lazy { findPreference("pref_source_languages") as MultiSelectListPreference }
|
||||||
|
|
||||||
val sourcesPref by lazy { findPreference("pref_sources") as PreferenceGroup }
|
val sourcesPref by lazy { findPreference("pref_sources") as PreferenceGroup }
|
||||||
|
|
||||||
var languagesSubscription: Subscription? = null
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedState: Bundle?) {
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedState)
|
||||||
|
|
||||||
val langs = getLanguages()
|
val langs = getLanguages()
|
||||||
|
|
||||||
val entryKeys = langs.map { it.code }
|
val entryKeys = langs.map { it.code }
|
||||||
@ -39,11 +48,11 @@ class SettingsSourcesFragment : SettingsNestedFragment() {
|
|||||||
languagesPref.entryValues = entryKeys.toTypedArray()
|
languagesPref.entryValues = entryKeys.toTypedArray()
|
||||||
languagesPref.values = preferences.enabledLanguages().getOrDefault()
|
languagesPref.values = preferences.enabledLanguages().getOrDefault()
|
||||||
|
|
||||||
languagesSubscription = preferences.enabledLanguages().asObservable()
|
subscriptions += preferences.enabledLanguages().asObservable()
|
||||||
.subscribe { languages ->
|
.subscribe { languages ->
|
||||||
sourcesPref.removeAll()
|
sourcesPref.removeAll()
|
||||||
|
|
||||||
val enabledSources = settingsActivity.sourceManager.getOnlineSources()
|
val enabledSources = sourceManager.getOnlineSources()
|
||||||
.filter { it.lang.code in languages }
|
.filter { it.lang.code in languages }
|
||||||
|
|
||||||
for (source in enabledSources.filterIsInstance(LoginSource::class.java)) {
|
for (source in enabledSources.filterIsInstance(LoginSource::class.java)) {
|
||||||
@ -56,11 +65,6 @@ class SettingsSourcesFragment : SettingsNestedFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
languagesSubscription?.unsubscribe()
|
|
||||||
super.onDestroyView()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun createLoginSourceEntry(source: Source): Preference {
|
fun createLoginSourceEntry(source: Source): Preference {
|
||||||
return LoginPreference(preferenceManager.context).apply {
|
return LoginPreference(preferenceManager.context).apply {
|
||||||
key = preferences.keys.sourceUsername(source.id)
|
key = preferences.keys.sourceUsername(source.id)
|
||||||
@ -69,7 +73,7 @@ class SettingsSourcesFragment : SettingsNestedFragment() {
|
|||||||
setOnPreferenceClickListener {
|
setOnPreferenceClickListener {
|
||||||
val fragment = SourceLoginDialog.newInstance(source)
|
val fragment = SourceLoginDialog.newInstance(source)
|
||||||
fragment.setTargetFragment(this@SettingsSourcesFragment, SOURCE_CHANGE_REQUEST)
|
fragment.setTargetFragment(this@SettingsSourcesFragment, SOURCE_CHANGE_REQUEST)
|
||||||
fragment.show(fragmentManagerCompat, null)
|
fragment.show(childFragmentManager, null)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,28 +3,38 @@ package eu.kanade.tachiyomi.ui.setting
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v7.preference.PreferenceCategory
|
import android.support.v7.preference.PreferenceCategory
|
||||||
|
import android.support.v7.preference.XpPreferenceFragment
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import eu.kanade.tachiyomi.data.mangasync.MangaSyncManager
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
import eu.kanade.tachiyomi.widget.preference.LoginPreference
|
||||||
import eu.kanade.tachiyomi.widget.preference.MangaSyncLoginDialog
|
import eu.kanade.tachiyomi.widget.preference.MangaSyncLoginDialog
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
class SettingsSyncFragment : SettingsNestedFragment() {
|
class SettingsSyncFragment : SettingsFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val SYNC_CHANGE_REQUEST = 121
|
const val SYNC_CHANGE_REQUEST = 121
|
||||||
|
|
||||||
fun newInstance(resourcePreference: Int, resourceTitle: Int): SettingsNestedFragment {
|
fun newInstance(rootKey: String): SettingsSyncFragment {
|
||||||
val fragment = SettingsSyncFragment()
|
val args = Bundle()
|
||||||
fragment.setArgs(resourcePreference, resourceTitle)
|
args.putString(XpPreferenceFragment.ARG_PREFERENCE_ROOT, rootKey)
|
||||||
return fragment
|
return SettingsSyncFragment().apply { arguments = args }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val syncManager: MangaSyncManager by injectLazy()
|
||||||
|
|
||||||
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
|
|
||||||
val syncCategory by lazy { findPreference("pref_category_manga_sync_accounts") as PreferenceCategory }
|
val syncCategory by lazy { findPreference("pref_category_manga_sync_accounts") as PreferenceCategory }
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedState)
|
||||||
|
|
||||||
val themedContext = preferenceManager.context
|
val themedContext = preferenceManager.context
|
||||||
|
|
||||||
for (sync in settingsActivity.syncManager.services) {
|
for (sync in syncManager.services) {
|
||||||
val pref = LoginPreference(themedContext).apply {
|
val pref = LoginPreference(themedContext).apply {
|
||||||
key = preferences.keys.syncUsername(sync.id)
|
key = preferences.keys.syncUsername(sync.id)
|
||||||
title = sync.name
|
title = sync.name
|
||||||
@ -32,7 +42,7 @@ class SettingsSyncFragment : SettingsNestedFragment() {
|
|||||||
setOnPreferenceClickListener {
|
setOnPreferenceClickListener {
|
||||||
val fragment = MangaSyncLoginDialog.newInstance(sync)
|
val fragment = MangaSyncLoginDialog.newInstance(sync)
|
||||||
fragment.setTargetFragment(this@SettingsSyncFragment, SYNC_CHANGE_REQUEST)
|
fragment.setTargetFragment(this@SettingsSyncFragment, SYNC_CHANGE_REQUEST)
|
||||||
fragment.show(fragmentManagerCompat, null)
|
fragment.show(childFragmentManager, null)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.util;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
@ -16,7 +15,7 @@ public final class DiskUtils {
|
|||||||
String cacheKey;
|
String cacheKey;
|
||||||
try {
|
try {
|
||||||
final MessageDigest mDigest = MessageDigest.getInstance("MD5");
|
final MessageDigest mDigest = MessageDigest.getInstance("MD5");
|
||||||
mDigest.update(key.getBytes(StandardCharsets.UTF_8));
|
mDigest.update(key.getBytes());
|
||||||
cacheKey = bytesToHexString(mDigest.digest());
|
cacheKey = bytesToHexString(mDigest.digest());
|
||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
cacheKey = String.valueOf(key.hashCode());
|
cacheKey = String.valueOf(key.hashCode());
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
package eu.kanade.tachiyomi.widget.preference
|
package eu.kanade.tachiyomi.widget.preference
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v14.preference.PreferenceDialogFragment
|
|
||||||
import android.support.v7.preference.Preference
|
import android.support.v7.preference.Preference
|
||||||
|
import android.support.v7.preference.PreferenceDialogFragmentCompat
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
import eu.kanade.tachiyomi.ui.setting.SettingsActivity
|
|
||||||
import kotlinx.android.synthetic.main.pref_library_columns.view.*
|
import kotlinx.android.synthetic.main.pref_library_columns.view.*
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
class LibraryColumnsDialog : PreferenceDialogFragment() {
|
class LibraryColumnsDialog : PreferenceDialogFragmentCompat() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
@ -25,8 +25,7 @@ class LibraryColumnsDialog : PreferenceDialogFragment() {
|
|||||||
var portrait: Int = 0
|
var portrait: Int = 0
|
||||||
var landscape: Int = 0
|
var landscape: Int = 0
|
||||||
|
|
||||||
val preferences: PreferencesHelper
|
val preferences: PreferencesHelper by injectLazy()
|
||||||
get() = (activity as SettingsActivity).preferences
|
|
||||||
|
|
||||||
override fun onBindDialogView(view: View) {
|
override fun onBindDialogView(view: View) {
|
||||||
super.onBindDialogView(view)
|
super.onBindDialogView(view)
|
||||||
|
@ -1,28 +1,27 @@
|
|||||||
package eu.kanade.tachiyomi.widget.preference
|
package eu.kanade.tachiyomi.widget.preference
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.app.DialogFragment
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.support.v4.app.DialogFragment
|
||||||
import android.text.method.PasswordTransformationMethod
|
import android.text.method.PasswordTransformationMethod
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import com.dd.processbutton.iml.ActionProcessButton
|
import com.dd.processbutton.iml.ActionProcessButton
|
||||||
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.ui.setting.SettingsActivity
|
|
||||||
import eu.kanade.tachiyomi.widget.SimpleTextWatcher
|
import eu.kanade.tachiyomi.widget.SimpleTextWatcher
|
||||||
import kotlinx.android.synthetic.main.pref_account_login.view.*
|
import kotlinx.android.synthetic.main.pref_account_login.view.*
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
abstract class LoginDialogPreference : DialogFragment() {
|
abstract class LoginDialogPreference : DialogFragment() {
|
||||||
|
|
||||||
var v: View? = null
|
var v: View? = null
|
||||||
private set
|
private set
|
||||||
|
|
||||||
val preferences: PreferencesHelper
|
val preferences: PreferencesHelper by injectLazy()
|
||||||
get() = (activity as SettingsActivity).preferences
|
|
||||||
|
|
||||||
var requestSubscription: Subscription? = null
|
var requestSubscription: Subscription? = null
|
||||||
|
|
||||||
|
@ -3,12 +3,13 @@ package eu.kanade.tachiyomi.widget.preference
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
|
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.ui.setting.SettingsActivity
|
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.pref_account_login.view.*
|
import kotlinx.android.synthetic.main.pref_account_login.view.*
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
import rx.schedulers.Schedulers
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
class MangaSyncLoginDialog : LoginDialogPreference() {
|
class MangaSyncLoginDialog : LoginDialogPreference() {
|
||||||
|
|
||||||
@ -23,13 +24,15 @@ class MangaSyncLoginDialog : LoginDialogPreference() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val syncManager: MangaSyncManager by injectLazy()
|
||||||
|
|
||||||
lateinit var sync: MangaSyncService
|
lateinit var sync: MangaSyncService
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
val syncId = arguments.getInt("key")
|
val syncId = arguments.getInt("key")
|
||||||
sync = (activity as SettingsActivity).syncManager.getService(syncId)!!
|
sync = syncManager.getService(syncId)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setCredentialsOnView(view: View) = with(view) {
|
override fun setCredentialsOnView(view: View) = with(view) {
|
||||||
|
@ -4,12 +4,13 @@ import android.os.Bundle
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.source.Source
|
import eu.kanade.tachiyomi.data.source.Source
|
||||||
|
import eu.kanade.tachiyomi.data.source.SourceManager
|
||||||
import eu.kanade.tachiyomi.data.source.online.LoginSource
|
import eu.kanade.tachiyomi.data.source.online.LoginSource
|
||||||
import eu.kanade.tachiyomi.ui.setting.SettingsActivity
|
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.pref_account_login.view.*
|
import kotlinx.android.synthetic.main.pref_account_login.view.*
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
import rx.schedulers.Schedulers
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
class SourceLoginDialog : LoginDialogPreference() {
|
class SourceLoginDialog : LoginDialogPreference() {
|
||||||
|
|
||||||
@ -24,13 +25,15 @@ class SourceLoginDialog : LoginDialogPreference() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val sourceManager: SourceManager by injectLazy()
|
||||||
|
|
||||||
lateinit var source: LoginSource
|
lateinit var source: LoginSource
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
val sourceId = arguments.getInt("key")
|
val sourceId = arguments.getInt("key")
|
||||||
source = (activity as SettingsActivity).sourceManager.get(sourceId) as LoginSource
|
source = sourceManager.get(sourceId) as LoginSource
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setCredentialsOnView(view: View) = with(view) {
|
override fun setCredentialsOnView(view: View) = with(view) {
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||||
<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
|
<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
|
||||||
<item name="android:alertDialogTheme">@style/Theme.AlertDialog.Light</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--============-->
|
<!--============-->
|
||||||
@ -19,6 +18,5 @@
|
|||||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||||
<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
|
<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
|
||||||
<item name="android:alertDialogTheme">@style/Theme.AlertDialog.Dark</item>
|
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
@ -26,7 +26,9 @@
|
|||||||
<!-- Themes -->
|
<!-- Themes -->
|
||||||
<item name="windowActionModeOverlay">true</item>
|
<item name="windowActionModeOverlay">true</item>
|
||||||
<item name="actionBarTheme">@style/Theme.ActionBar.Light</item>
|
<item name="actionBarTheme">@style/Theme.ActionBar.Light</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.Material</item>
|
||||||
|
<item name="alertDialogTheme">@style/Theme.AlertDialog.Light</item>
|
||||||
|
|
||||||
|
|
||||||
<!-- Custom Attributes-->
|
<!-- Custom Attributes-->
|
||||||
<item name="selectable_list_drawable">@drawable/list_item_selector_light</item>
|
<item name="selectable_list_drawable">@drawable/list_item_selector_light</item>
|
||||||
@ -61,7 +63,9 @@
|
|||||||
<item name="windowActionModeOverlay">true</item>
|
<item name="windowActionModeOverlay">true</item>
|
||||||
<item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
|
<item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
|
||||||
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat</item>
|
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.Material</item>
|
||||||
|
<item name="alertDialogTheme">@style/Theme.AlertDialog.Dark</item>
|
||||||
|
|
||||||
|
|
||||||
<!-- Custom Attributes-->
|
<!-- Custom Attributes-->
|
||||||
<item name="navigation_view_theme">@style/Theme.Widget.NavigationView.Dark</item>
|
<item name="navigation_view_theme">@style/Theme.Widget.NavigationView.Dark</item>
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<PreferenceScreen
|
||||||
|
android:key="about_screen"
|
||||||
|
android:title="@string/pref_category_about"
|
||||||
|
android:persistent="false">
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="acra.enable"
|
android:key="acra.enable"
|
||||||
android:summary="@string/pref_acra_summary"
|
android:summary="@string/pref_acra_summary"
|
||||||
@ -25,4 +29,6 @@
|
|||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/build_time"/>
|
android:title="@string/build_time"/>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@ -1,7 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<PreferenceScreen
|
||||||
|
android:key="advanced_screen"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/pref_category_advanced">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="@string/pref_clear_chapter_cache_key"
|
android:key="@string/pref_clear_chapter_cache_key"
|
||||||
android:title="@string/pref_clear_chapter_cache"/>
|
android:title="@string/pref_clear_chapter_cache"/>
|
||||||
@ -15,10 +20,12 @@
|
|||||||
android:summary="@string/pref_clear_database_summary"
|
android:summary="@string/pref_clear_database_summary"
|
||||||
android:title="@string/pref_clear_database"/>
|
android:title="@string/pref_clear_database"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/pref_reencode_key"
|
android:key="@string/pref_reencode_key"
|
||||||
android:summary="@string/pref_reencode_summary"
|
android:summary="@string/pref_reencode_summary"
|
||||||
android:title="@string/pref_reencode"/>
|
android:title="@string/pref_reencode"/>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@ -1,12 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
<PreferenceScreen
|
||||||
|
android:key="downloads_screen"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/pref_category_downloads">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="@string/pref_download_directory_key"
|
android:key="@string/pref_download_directory_key"
|
||||||
android:title="@string/pref_download_directory"/>
|
android:title="@string/pref_download_directory"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/pref_download_only_over_wifi_key"
|
android:key="@string/pref_download_only_over_wifi_key"
|
||||||
android:title="@string/pref_download_only_over_wifi"/>
|
android:title="@string/pref_download_only_over_wifi"/>
|
||||||
@ -22,22 +26,25 @@
|
|||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/cat_remove_after_read"/>
|
android:title="@string/cat_remove_after_read"/>
|
||||||
<SwitchPreferenceCompat
|
|
||||||
|
<SwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/pref_remove_after_marked_as_read_key"
|
android:key="@string/pref_remove_after_marked_as_read_key"
|
||||||
android:title="@string/pref_remove_after_marked_as_read"/>
|
android:title="@string/pref_remove_after_marked_as_read"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/pref_remove_after_read_key"
|
android:key="@string/pref_remove_after_read_key"
|
||||||
android:summary="@string/current_chapter"
|
android:summary="@string/current_chapter"
|
||||||
android:title="@string/pref_remove_after_read"/>
|
android:title="@string/pref_remove_after_read"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:dependency="@string/pref_remove_after_read_key"
|
android:dependency="@string/pref_remove_after_read_key"
|
||||||
android:key="@string/pref_remove_after_read_previous_key"
|
android:key="@string/pref_remove_after_read_previous_key"
|
||||||
android:summary="@string/previous_chapter"
|
android:summary="@string/previous_chapter"
|
||||||
android:title="@string/pref_remove_after_read"/>
|
android:title="@string/pref_remove_after_read"/>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@ -1,6 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
<PreferenceScreen
|
||||||
|
android:key="general_screen"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/pref_category_general">
|
||||||
|
|
||||||
<eu.kanade.tachiyomi.widget.preference.IntListPreference
|
<eu.kanade.tachiyomi.widget.preference.IntListPreference
|
||||||
android:defaultValue="1"
|
android:defaultValue="1"
|
||||||
@ -31,9 +35,11 @@
|
|||||||
android:summary="@string/pref_library_update_restriction_summary"
|
android:summary="@string/pref_library_update_restriction_summary"
|
||||||
android:title="@string/pref_library_update_restriction" />
|
android:title="@string/pref_library_update_restriction" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/pref_update_only_non_completed_key"
|
android:key="@string/pref_update_only_non_completed_key"
|
||||||
android:title="@string/pref_update_only_non_completed"/>
|
android:title="@string/pref_update_only_non_completed"/>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@ -1,40 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.support.v7.preference.PreferenceScreen
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android" >
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_general_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_general" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_reader_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_reader" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_downloads_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_downloads" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_sources_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_sources" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_sync_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_sync" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_advanced_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_advanced" />
|
|
||||||
|
|
||||||
<Preference
|
|
||||||
android:key="@string/pref_category_about_key"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/pref_category_about" />
|
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
|
@ -1,6 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
<PreferenceScreen
|
||||||
|
android:key="reader_screen"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/pref_category_reader">
|
||||||
|
|
||||||
<eu.kanade.tachiyomi.widget.preference.IntListPreference
|
<eu.kanade.tachiyomi.widget.preference.IntListPreference
|
||||||
android:title="@string/pref_viewer_type"
|
android:title="@string/pref_viewer_type"
|
||||||
@ -50,27 +54,27 @@
|
|||||||
android:defaultValue="0"
|
android:defaultValue="0"
|
||||||
android:summary="%s" />
|
android:summary="%s" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_hide_status_bar"
|
android:title="@string/pref_hide_status_bar"
|
||||||
android:key="@string/pref_hide_status_bar_key"
|
android:key="@string/pref_hide_status_bar_key"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_enable_transitions"
|
android:title="@string/pref_enable_transitions"
|
||||||
android:key="@string/pref_enable_transitions_key"
|
android:key="@string/pref_enable_transitions_key"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_show_page_number"
|
android:title="@string/pref_show_page_number"
|
||||||
android:key="@string/pref_show_page_number_key"
|
android:key="@string/pref_show_page_number_key"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_custom_brightness"
|
android:title="@string/pref_custom_brightness"
|
||||||
android:key="@string/pref_custom_brightness_key"
|
android:key="@string/pref_custom_brightness_key"
|
||||||
android:defaultValue="false" />
|
android:defaultValue="false" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_keep_screen_on"
|
android:title="@string/pref_keep_screen_on"
|
||||||
android:key="@string/pref_keep_screen_on_key"
|
android:key="@string/pref_keep_screen_on_key"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
@ -78,16 +82,18 @@
|
|||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/pref_reader_navigation">
|
android:title="@string/pref_reader_navigation">
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_read_with_tapping"
|
android:title="@string/pref_read_with_tapping"
|
||||||
android:key="@string/pref_read_with_tapping_key"
|
android:key="@string/pref_read_with_tapping_key"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:title="@string/pref_read_with_volume_keys"
|
android:title="@string/pref_read_with_volume_keys"
|
||||||
android:key="@string/pref_read_with_volume_keys_key"
|
android:key="@string/pref_read_with_volume_keys_key"
|
||||||
android:defaultValue="false" />
|
android:defaultValue="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@ -1,7 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orderingFromXml="true">
|
<PreferenceScreen
|
||||||
|
android:key="sources_screen"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/pref_category_sources">
|
||||||
|
|
||||||
<MultiSelectListPreference
|
<MultiSelectListPreference
|
||||||
android:key="@string/pref_source_languages"
|
android:key="@string/pref_source_languages"
|
||||||
@ -13,4 +16,6 @@
|
|||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/accounts"/>
|
android:title="@string/accounts"/>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@ -1,14 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.v7.preference.PreferenceScreen
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orderingFromXml="true">
|
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<PreferenceScreen
|
||||||
|
android:key="sync_screen"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/pref_category_sync">
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
android:key="@string/pref_auto_update_manga_sync_key"
|
android:key="@string/pref_auto_update_manga_sync_key"
|
||||||
android:title="@string/pref_auto_update_manga_sync"
|
android:title="@string/pref_auto_update_manga_sync"
|
||||||
android:defaultValue="true"/>
|
android:defaultValue="true"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreference
|
||||||
android:key="@string/pref_ask_update_manga_sync_key"
|
android:key="@string/pref_ask_update_manga_sync_key"
|
||||||
android:title="@string/pref_ask_update_manga_sync"
|
android:title="@string/pref_ask_update_manga_sync"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
@ -19,4 +22,6 @@
|
|||||||
android:title="@string/services"
|
android:title="@string/services"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
</android.support.v7.preference.PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
Loading…
Reference in New Issue
Block a user