SettingsReaderController.kt 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package eu.kanade.tachiyomi.ui.setting
  2. import android.os.Build
  3. import androidx.preference.PreferenceScreen
  4. import eu.kanade.tachiyomi.R
  5. import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
  6. import eu.kanade.tachiyomi.util.preference.defaultValue
  7. import eu.kanade.tachiyomi.util.preference.entriesRes
  8. import eu.kanade.tachiyomi.util.preference.intListPreference
  9. import eu.kanade.tachiyomi.util.preference.preferenceCategory
  10. import eu.kanade.tachiyomi.util.preference.switchPreference
  11. import eu.kanade.tachiyomi.util.preference.titleRes
  12. class SettingsReaderController : SettingsController() {
  13. override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) {
  14. titleRes = R.string.pref_category_reader
  15. preferenceCategory {
  16. titleRes = R.string.pref_category_general
  17. intListPreference {
  18. key = Keys.defaultViewer
  19. titleRes = R.string.pref_viewer_type
  20. entriesRes = arrayOf(R.string.left_to_right_viewer, R.string.right_to_left_viewer,
  21. R.string.vertical_viewer, R.string.webtoon_viewer, R.string.vertical_plus_viewer)
  22. entryValues = arrayOf("1", "2", "3", "4", "5")
  23. defaultValue = "1"
  24. summary = "%s"
  25. }
  26. intListPreference {
  27. key = Keys.imageScaleType
  28. titleRes = R.string.pref_image_scale_type
  29. entriesRes = arrayOf(R.string.scale_type_fit_screen, R.string.scale_type_stretch,
  30. R.string.scale_type_fit_width, R.string.scale_type_fit_height,
  31. R.string.scale_type_original_size, R.string.scale_type_smart_fit)
  32. entryValues = arrayOf("1", "2", "3", "4", "5", "6")
  33. defaultValue = "1"
  34. summary = "%s"
  35. }
  36. intListPreference {
  37. key = Keys.zoomStart
  38. titleRes = R.string.pref_zoom_start
  39. entriesRes = arrayOf(R.string.zoom_start_automatic, R.string.zoom_start_left,
  40. R.string.zoom_start_right, R.string.zoom_start_center)
  41. entryValues = arrayOf("1", "2", "3", "4")
  42. defaultValue = "1"
  43. summary = "%s"
  44. }
  45. intListPreference {
  46. key = Keys.rotation
  47. titleRes = R.string.pref_rotation_type
  48. entriesRes = arrayOf(R.string.rotation_free, R.string.rotation_lock,
  49. R.string.rotation_force_portrait, R.string.rotation_force_landscape)
  50. entryValues = arrayOf("1", "2", "3", "4")
  51. defaultValue = "1"
  52. summary = "%s"
  53. }
  54. intListPreference {
  55. key = Keys.readerTheme
  56. titleRes = R.string.pref_reader_theme
  57. entriesRes = arrayOf(R.string.white_background, R.string.black_background)
  58. entryValues = arrayOf("0", "1")
  59. defaultValue = "1"
  60. summary = "%s"
  61. }
  62. intListPreference {
  63. key = Keys.doubleTapAnimationSpeed
  64. titleRes = R.string.pref_double_tap_anim_speed
  65. entries = arrayOf(context.getString(R.string.double_tap_anim_speed_0), context.getString(R.string.double_tap_anim_speed_fast), context.getString(R.string.double_tap_anim_speed_normal))
  66. entryValues = arrayOf("1", "250", "500") // using a value of 0 breaks the image viewer, so min is 1
  67. defaultValue = "500"
  68. summary = "%s"
  69. }
  70. switchPreference {
  71. key = Keys.fullscreen
  72. titleRes = R.string.pref_fullscreen
  73. defaultValue = true
  74. }
  75. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
  76. switchPreference {
  77. key = Keys.cutoutShort
  78. titleRes = R.string.pref_cutout_short
  79. defaultValue = true
  80. }
  81. }
  82. switchPreference {
  83. key = Keys.keepScreenOn
  84. titleRes = R.string.pref_keep_screen_on
  85. defaultValue = true
  86. }
  87. switchPreference {
  88. key = Keys.showPageNumber
  89. titleRes = R.string.pref_show_page_number
  90. defaultValue = true
  91. }
  92. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  93. switchPreference {
  94. key = Keys.trueColor
  95. titleRes = R.string.pref_true_color
  96. defaultValue = false
  97. }
  98. }
  99. }
  100. preferenceCategory {
  101. titleRes = R.string.pref_category_reading
  102. switchPreference {
  103. key = Keys.skipRead
  104. titleRes = R.string.pref_skip_read_chapters
  105. defaultValue = false
  106. }
  107. switchPreference {
  108. key = Keys.skipFiltered
  109. titleRes = R.string.pref_skip_filtered_chapters
  110. defaultValue = false
  111. }
  112. switchPreference {
  113. key = Keys.alwaysShowChapterTransition
  114. titleRes = R.string.pref_always_show_chapter_transition
  115. defaultValue = true
  116. }
  117. }
  118. preferenceCategory {
  119. titleRes = R.string.pager_viewer
  120. switchPreference {
  121. key = Keys.enableTransitions
  122. titleRes = R.string.pref_page_transitions
  123. defaultValue = true
  124. }
  125. switchPreference {
  126. key = Keys.cropBorders
  127. titleRes = R.string.pref_crop_borders
  128. defaultValue = false
  129. }
  130. }
  131. preferenceCategory {
  132. titleRes = R.string.webtoon_viewer
  133. switchPreference {
  134. key = Keys.cropBordersWebtoon
  135. titleRes = R.string.pref_crop_borders
  136. defaultValue = false
  137. }
  138. intListPreference {
  139. key = Keys.webtoonSidePadding
  140. titleRes = R.string.pref_webtoon_side_padding
  141. entriesRes = arrayOf(
  142. R.string.webtoon_side_padding_0,
  143. R.string.webtoon_side_padding_10,
  144. R.string.webtoon_side_padding_15,
  145. R.string.webtoon_side_padding_20,
  146. R.string.webtoon_side_padding_25)
  147. entryValues = arrayOf("0", "10", "15", "20", "25")
  148. defaultValue = "0"
  149. summary = "%s"
  150. }
  151. }
  152. preferenceCategory {
  153. titleRes = R.string.pref_reader_navigation
  154. switchPreference {
  155. key = Keys.readWithTapping
  156. titleRes = R.string.pref_read_with_tapping
  157. defaultValue = true
  158. }
  159. switchPreference {
  160. key = Keys.readWithLongTap
  161. titleRes = R.string.pref_read_with_long_tap
  162. defaultValue = true
  163. }
  164. switchPreference {
  165. key = Keys.readWithVolumeKeys
  166. titleRes = R.string.pref_read_with_volume_keys
  167. defaultValue = false
  168. }
  169. switchPreference {
  170. key = Keys.readWithVolumeKeysInverted
  171. titleRes = R.string.pref_read_with_volume_keys_inverted
  172. defaultValue = false
  173. }.apply { dependency = Keys.readWithVolumeKeys }
  174. }
  175. }
  176. }