SettingsBrowseController.kt 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package eu.kanade.tachiyomi.ui.setting
  2. import androidx.fragment.app.FragmentActivity
  3. import androidx.preference.PreferenceScreen
  4. import eu.kanade.tachiyomi.R
  5. import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
  6. import eu.kanade.tachiyomi.util.preference.bindTo
  7. import eu.kanade.tachiyomi.util.preference.defaultValue
  8. import eu.kanade.tachiyomi.util.preference.infoPreference
  9. import eu.kanade.tachiyomi.util.preference.onChange
  10. import eu.kanade.tachiyomi.util.preference.preferenceCategory
  11. import eu.kanade.tachiyomi.util.preference.requireAuthentication
  12. import eu.kanade.tachiyomi.util.preference.summaryRes
  13. import eu.kanade.tachiyomi.util.preference.switchPreference
  14. import eu.kanade.tachiyomi.util.preference.titleRes
  15. import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported
  16. import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
  17. class SettingsBrowseController : SettingsController() {
  18. override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
  19. titleRes = R.string.browse
  20. preferenceCategory {
  21. titleRes = R.string.label_sources
  22. switchPreference {
  23. bindTo(preferences.duplicatePinnedSources())
  24. titleRes = R.string.pref_duplicate_pinned_sources
  25. summaryRes = R.string.pref_duplicate_pinned_sources_summary
  26. }
  27. }
  28. preferenceCategory {
  29. titleRes = R.string.label_extensions
  30. switchPreference {
  31. bindTo(preferences.automaticExtUpdates())
  32. titleRes = R.string.pref_enable_automatic_extension_updates
  33. onChange { newValue ->
  34. val checked = newValue as Boolean
  35. ExtensionUpdateJob.setupTask(activity!!, checked)
  36. true
  37. }
  38. }
  39. }
  40. preferenceCategory {
  41. titleRes = R.string.action_global_search
  42. switchPreference {
  43. key = Keys.searchPinnedSourcesOnly
  44. titleRes = R.string.pref_search_pinned_sources_only
  45. defaultValue = false
  46. }
  47. }
  48. preferenceCategory {
  49. titleRes = R.string.pref_category_nsfw_content
  50. switchPreference {
  51. bindTo(preferences.showNsfwSource())
  52. titleRes = R.string.pref_show_nsfw_source
  53. summaryRes = R.string.requires_app_restart
  54. if (context.isAuthenticationSupported() && activity != null) {
  55. requireAuthentication(
  56. activity as? FragmentActivity,
  57. context.getString(R.string.pref_category_nsfw_content),
  58. context.getString(R.string.confirm_lock_change),
  59. )
  60. }
  61. }
  62. infoPreference(R.string.parental_controls_info)
  63. }
  64. }
  65. }