Use view binding for sheets

This commit is contained in:
arkon 2020-07-12 16:53:46 -04:00
parent 4809d06d04
commit dc43e41896
5 changed files with 95 additions and 134 deletions

View file

@ -3,15 +3,13 @@ package eu.kanade.tachiyomi.ui.browse.source.browse
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.databinding.SourceFilterSheetBinding
import eu.kanade.tachiyomi.util.view.inflate
import eu.kanade.tachiyomi.widget.SimpleNavigationView import eu.kanade.tachiyomi.widget.SimpleNavigationView
import kotlinx.android.synthetic.main.source_filter_sheet.view.filter_btn
import kotlinx.android.synthetic.main.source_filter_sheet.view.reset_btn
class SourceFilterSheet( class SourceFilterSheet(
activity: Activity, activity: Activity,
@ -46,14 +44,15 @@ class SourceFilterSheet(
.setDisplayHeadersAtStartUp(true) .setDisplayHeadersAtStartUp(true)
.setStickyHeaders(true) .setStickyHeaders(true)
private val binding = SourceFilterSheetBinding.inflate(LayoutInflater.from(context), null, false)
init { init {
recycler.adapter = adapter recycler.adapter = adapter
recycler.setHasFixedSize(true) recycler.setHasFixedSize(true)
val view = inflate(R.layout.source_filter_sheet) (binding.root.getChildAt(1) as ViewGroup).addView(recycler)
((view as ViewGroup).getChildAt(1) as ViewGroup).addView(recycler) addView(binding.root)
addView(view) binding.filterBtn.setOnClickListener { onFilterClicked() }
filter_btn.setOnClickListener { onFilterClicked() } binding.resetBtn.setOnClickListener { onResetClicked() }
reset_btn.setOnClickListener { onResetClicked() }
} }
} }
} }

View file

@ -1,28 +1,14 @@
package eu.kanade.tachiyomi.ui.reader package eu.kanade.tachiyomi.ui.reader
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.SeekBar import android.widget.SeekBar
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.ReaderColorFilterSheetBinding
import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
import kotlinx.android.synthetic.main.reader_color_filter_sheet.brightness_seekbar
import kotlinx.android.synthetic.main.reader_color_filter_sheet.color_filter_mode
import kotlinx.android.synthetic.main.reader_color_filter_sheet.custom_brightness
import kotlinx.android.synthetic.main.reader_color_filter_sheet.seekbar_color_filter_alpha
import kotlinx.android.synthetic.main.reader_color_filter_sheet.seekbar_color_filter_blue
import kotlinx.android.synthetic.main.reader_color_filter_sheet.seekbar_color_filter_green
import kotlinx.android.synthetic.main.reader_color_filter_sheet.seekbar_color_filter_red
import kotlinx.android.synthetic.main.reader_color_filter_sheet.switch_color_filter
import kotlinx.android.synthetic.main.reader_color_filter_sheet.txt_brightness_seekbar_value
import kotlinx.android.synthetic.main.reader_color_filter_sheet.txt_color_filter_alpha_value
import kotlinx.android.synthetic.main.reader_color_filter_sheet.txt_color_filter_blue_value
import kotlinx.android.synthetic.main.reader_color_filter_sheet.txt_color_filter_green_value
import kotlinx.android.synthetic.main.reader_color_filter_sheet.txt_color_filter_red_value
import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.sample import kotlinx.coroutines.flow.sample
@ -37,57 +23,58 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
private var sheetBehavior: BottomSheetBehavior<*>? = null private var sheetBehavior: BottomSheetBehavior<*>? = null
init { private val binding = ReaderColorFilterSheetBinding.inflate(activity.layoutInflater, null, false)
val view = activity.layoutInflater.inflate(R.layout.reader_color_filter_sheet, null)
setContentView(view)
sheetBehavior = BottomSheetBehavior.from(view.parent as ViewGroup) init {
setContentView(binding.root)
sheetBehavior = BottomSheetBehavior.from(binding.root.parent as ViewGroup)
preferences.colorFilter().asFlow() preferences.colorFilter().asFlow()
.onEach { setColorFilter(it, view) } .onEach { setColorFilter(it) }
.launchIn(activity.scope) .launchIn(activity.scope)
preferences.colorFilterMode().asFlow() preferences.colorFilterMode().asFlow()
.onEach { setColorFilter(preferences.colorFilter().get(), view) } .onEach { setColorFilter(preferences.colorFilter().get()) }
.launchIn(activity.scope) .launchIn(activity.scope)
preferences.customBrightness().asFlow() preferences.customBrightness().asFlow()
.onEach { setCustomBrightness(it, view) } .onEach { setCustomBrightness(it) }
.launchIn(activity.scope) .launchIn(activity.scope)
// Get color and update values // Get color and update values
val color = preferences.colorFilterValue().get() val color = preferences.colorFilterValue().get()
val brightness = preferences.customBrightnessValue().get() val brightness = preferences.customBrightnessValue().get()
val argb = setValues(color, view) val argb = setValues(color)
// Set brightness value // Set brightness value
txt_brightness_seekbar_value.text = brightness.toString() binding.txtBrightnessSeekbarValue.text = brightness.toString()
brightness_seekbar.progress = brightness binding.brightnessSeekbar.progress = brightness
// Initialize seekBar progress // Initialize seekBar progress
seekbar_color_filter_alpha.progress = argb[0] binding.seekbarColorFilterAlpha.progress = argb[0]
seekbar_color_filter_red.progress = argb[1] binding.seekbarColorFilterRed.progress = argb[1]
seekbar_color_filter_green.progress = argb[2] binding.seekbarColorFilterGreen.progress = argb[2]
seekbar_color_filter_blue.progress = argb[3] binding.seekbarColorFilterBlue.progress = argb[3]
// Set listeners // Set listeners
switch_color_filter.isChecked = preferences.colorFilter().get() binding.switchColorFilter.isChecked = preferences.colorFilter().get()
switch_color_filter.setOnCheckedChangeListener { _, isChecked -> binding.switchColorFilter.setOnCheckedChangeListener { _, isChecked ->
preferences.colorFilter().set(isChecked) preferences.colorFilter().set(isChecked)
} }
custom_brightness.isChecked = preferences.customBrightness().get() binding.customBrightness.isChecked = preferences.customBrightness().get()
custom_brightness.setOnCheckedChangeListener { _, isChecked -> binding.customBrightness.setOnCheckedChangeListener { _, isChecked ->
preferences.customBrightness().set(isChecked) preferences.customBrightness().set(isChecked)
} }
color_filter_mode.onItemSelectedListener = IgnoreFirstSpinnerListener { position -> binding.colorFilterMode.onItemSelectedListener = IgnoreFirstSpinnerListener { position ->
preferences.colorFilterMode().set(position) preferences.colorFilterMode().set(position)
} }
color_filter_mode.setSelection(preferences.colorFilterMode().get(), false) binding.colorFilterMode.setSelection(preferences.colorFilterMode().get(), false)
seekbar_color_filter_alpha.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { binding.seekbarColorFilterAlpha.setOnSeekBarChangeListener(object : SimpleSeekBarListener() {
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser) {
setColorValue(value, ALPHA_MASK, 24) setColorValue(value, ALPHA_MASK, 24)
@ -95,7 +82,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
} }
}) })
seekbar_color_filter_red.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { binding.seekbarColorFilterRed.setOnSeekBarChangeListener(object : SimpleSeekBarListener() {
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser) {
setColorValue(value, RED_MASK, 16) setColorValue(value, RED_MASK, 16)
@ -103,7 +90,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
} }
}) })
seekbar_color_filter_green.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { binding.seekbarColorFilterGreen.setOnSeekBarChangeListener(object : SimpleSeekBarListener() {
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser) {
setColorValue(value, GREEN_MASK, 8) setColorValue(value, GREEN_MASK, 8)
@ -111,7 +98,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
} }
}) })
seekbar_color_filter_blue.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { binding.seekbarColorFilterBlue.setOnSeekBarChangeListener(object : SimpleSeekBarListener() {
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser) {
setColorValue(value, BLUE_MASK, 0) setColorValue(value, BLUE_MASK, 0)
@ -119,7 +106,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
} }
}) })
brightness_seekbar.setOnSeekBarChangeListener(object : SimpleSeekBarListener() { binding.brightnessSeekbar.setOnSeekBarChangeListener(object : SimpleSeekBarListener() {
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
if (fromUser) { if (fromUser) {
preferences.customBrightnessValue().set(value) preferences.customBrightnessValue().set(value)
@ -137,40 +124,37 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
/** /**
* Set enabled status of seekBars belonging to color filter * Set enabled status of seekBars belonging to color filter
* @param enabled determines if seekBar gets enabled * @param enabled determines if seekBar gets enabled
* @param view view of the dialog
*/ */
private fun setColorFilterSeekBar(enabled: Boolean, view: View) = with(view) { private fun setColorFilterSeekBar(enabled: Boolean) {
seekbar_color_filter_red.isEnabled = enabled binding.seekbarColorFilterRed.isEnabled = enabled
seekbar_color_filter_green.isEnabled = enabled binding.seekbarColorFilterGreen.isEnabled = enabled
seekbar_color_filter_blue.isEnabled = enabled binding.seekbarColorFilterBlue.isEnabled = enabled
seekbar_color_filter_alpha.isEnabled = enabled binding.seekbarColorFilterAlpha.isEnabled = enabled
} }
/** /**
* Set enabled status of seekBars belonging to custom brightness * Set enabled status of seekBars belonging to custom brightness
* @param enabled value which determines if seekBar gets enabled * @param enabled value which determines if seekBar gets enabled
* @param view view of the dialog
*/ */
private fun setCustomBrightnessSeekBar(enabled: Boolean, view: View) = with(view) { private fun setCustomBrightnessSeekBar(enabled: Boolean) {
brightness_seekbar.isEnabled = enabled binding.brightnessSeekbar.isEnabled = enabled
} }
/** /**
* Set the text value's of color filter * Set the text value's of color filter
* @param color integer containing color information * @param color integer containing color information
* @param view view of the dialog
*/ */
fun setValues(color: Int, view: View): Array<Int> { fun setValues(color: Int): Array<Int> {
val alpha = getAlphaFromColor(color) val alpha = getAlphaFromColor(color)
val red = getRedFromColor(color) val red = getRedFromColor(color)
val green = getGreenFromColor(color) val green = getGreenFromColor(color)
val blue = getBlueFromColor(color) val blue = getBlueFromColor(color)
// Initialize values // Initialize values
txt_color_filter_alpha_value.text = alpha.toString() binding.txtColorFilterAlphaValue.text = alpha.toString()
txt_color_filter_red_value.text = red.toString() binding.txtColorFilterRedValue.text = red.toString()
txt_color_filter_green_value.text = green.toString() binding.txtColorFilterGreenValue.text = green.toString()
txt_color_filter_blue_value.text = blue.toString() binding.txtColorFilterBlueValue.text = blue.toString()
return arrayOf(alpha, red, green, blue) return arrayOf(alpha, red, green, blue)
} }
@ -178,18 +162,17 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
/** /**
* Manages the custom brightness value subscription * Manages the custom brightness value subscription
* @param enabled determines if the subscription get (un)subscribed * @param enabled determines if the subscription get (un)subscribed
* @param view view of the dialog
*/ */
private fun setCustomBrightness(enabled: Boolean, view: View) { private fun setCustomBrightness(enabled: Boolean) {
if (enabled) { if (enabled) {
preferences.customBrightnessValue().asFlow() preferences.customBrightnessValue().asFlow()
.sample(100) .sample(100)
.onEach { setCustomBrightnessValue(it, view) } .onEach { setCustomBrightnessValue(it) }
.launchIn(activity.scope) .launchIn(activity.scope)
} else { } else {
setCustomBrightnessValue(0, view, true) setCustomBrightnessValue(0, true)
} }
setCustomBrightnessSeekBar(enabled, view) setCustomBrightnessSeekBar(enabled)
} }
/** /**
@ -198,34 +181,32 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
* From 1 to 100 it sets that value as brightness. * From 1 to 100 it sets that value as brightness.
* 0 sets system brightness and hides the overlay. * 0 sets system brightness and hides the overlay.
*/ */
private fun setCustomBrightnessValue(value: Int, view: View, isDisabled: Boolean = false) = with(view) { private fun setCustomBrightnessValue(value: Int, isDisabled: Boolean = false) {
if (!isDisabled) { if (!isDisabled) {
txt_brightness_seekbar_value.text = value.toString() binding.txtBrightnessSeekbarValue.text = value.toString()
} }
} }
/** /**
* Manages the color filter value subscription * Manages the color filter value subscription
* @param enabled determines if the subscription get (un)subscribed * @param enabled determines if the subscription get (un)subscribed
* @param view view of the dialog
*/ */
private fun setColorFilter(enabled: Boolean, view: View) { private fun setColorFilter(enabled: Boolean) {
if (enabled) { if (enabled) {
preferences.colorFilterValue().asFlow() preferences.colorFilterValue().asFlow()
.sample(100) .sample(100)
.onEach { setColorFilterValue(it, view) } .onEach { setColorFilterValue(it) }
.launchIn(activity.scope) .launchIn(activity.scope)
} }
setColorFilterSeekBar(enabled, view) setColorFilterSeekBar(enabled)
} }
/** /**
* Sets the color filter overlay of the screen. Determined by HEX of integer * Sets the color filter overlay of the screen. Determined by HEX of integer
* @param color hex of color. * @param color hex of color.
* @param view view of the dialog
*/ */
private fun setColorFilterValue(@ColorInt color: Int, view: View) = with(view) { private fun setColorFilterValue(@ColorInt color: Int) {
setValues(color, view) setValues(color)
} }
/** /**
@ -245,7 +226,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
* @param color color hex as int * @param color color hex as int
* @return alpha of color * @return alpha of color
*/ */
fun getAlphaFromColor(color: Int): Int { private fun getAlphaFromColor(color: Int): Int {
return color shr 24 and 0xFF return color shr 24 and 0xFF
} }
@ -254,7 +235,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
* @param color color hex as int * @param color color hex as int
* @return red of color * @return red of color
*/ */
fun getRedFromColor(color: Int): Int { private fun getRedFromColor(color: Int): Int {
return color shr 16 and 0xFF return color shr 16 and 0xFF
} }
@ -263,7 +244,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
* @param color color hex as int * @param color color hex as int
* @return green of color * @return green of color
*/ */
fun getGreenFromColor(color: Int): Int { private fun getGreenFromColor(color: Int): Int {
return color shr 8 and 0xFF return color shr 8 and 0xFF
} }
@ -272,7 +253,7 @@ class ReaderColorFilterSheet(private val activity: ReaderActivity) : BottomSheet
* @param color color hex as int * @param color color hex as int
* @return blue of color * @return blue of color
*/ */
fun getBlueFromColor(color: Int): Int { private fun getBlueFromColor(color: Int): Int {
return color and 0xFF return color and 0xFF
} }

View file

@ -5,11 +5,9 @@ import android.view.ViewGroup
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.ReaderPageSheetBinding
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
import kotlinx.android.synthetic.main.reader_page_sheet.save_layout
import kotlinx.android.synthetic.main.reader_page_sheet.set_as_cover_layout
import kotlinx.android.synthetic.main.reader_page_sheet.share_layout
/** /**
* Sheet to show when a page is long clicked. * Sheet to show when a page is long clicked.
@ -19,14 +17,14 @@ class ReaderPageSheet(
private val page: ReaderPage private val page: ReaderPage
) : BottomSheetDialog(activity) { ) : BottomSheetDialog(activity) {
private val view = activity.layoutInflater.inflate(R.layout.reader_page_sheet, null) private val binding = ReaderPageSheetBinding.inflate(activity.layoutInflater, null, false)
init { init {
setContentView(view) setContentView(binding.root)
set_as_cover_layout.setOnClickListener { setAsCover() } binding.setAsCoverLayout.setOnClickListener { setAsCover() }
share_layout.setOnClickListener { share() } binding.shareLayout.setOnClickListener { share() }
save_layout.setOnClickListener { save() } binding.saveLayout.setOnClickListener { save() }
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {

View file

@ -9,30 +9,13 @@ import com.google.android.material.bottomsheet.BottomSheetDialog
import com.tfcporciuncula.flow.Preference import com.tfcporciuncula.flow.Preference
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.databinding.ReaderSettingsSheetBinding
import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerViewer import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerViewer
import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer
import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.invisible import eu.kanade.tachiyomi.util.view.invisible
import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.util.view.visible
import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener
import kotlinx.android.synthetic.main.reader_settings_sheet.always_show_chapter_transition
import kotlinx.android.synthetic.main.reader_settings_sheet.background_color
import kotlinx.android.synthetic.main.reader_settings_sheet.crop_borders
import kotlinx.android.synthetic.main.reader_settings_sheet.cutout_short
import kotlinx.android.synthetic.main.reader_settings_sheet.fullscreen
import kotlinx.android.synthetic.main.reader_settings_sheet.keepscreen
import kotlinx.android.synthetic.main.reader_settings_sheet.long_tap
import kotlinx.android.synthetic.main.reader_settings_sheet.navigation_prefs_group
import kotlinx.android.synthetic.main.reader_settings_sheet.page_transitions
import kotlinx.android.synthetic.main.reader_settings_sheet.pager_prefs_group
import kotlinx.android.synthetic.main.reader_settings_sheet.rotation_mode
import kotlinx.android.synthetic.main.reader_settings_sheet.scale_type
import kotlinx.android.synthetic.main.reader_settings_sheet.show_page_number
import kotlinx.android.synthetic.main.reader_settings_sheet.tapping_inverted
import kotlinx.android.synthetic.main.reader_settings_sheet.viewer
import kotlinx.android.synthetic.main.reader_settings_sheet.webtoon_prefs_group
import kotlinx.android.synthetic.main.reader_settings_sheet.webtoon_side_padding
import kotlinx.android.synthetic.main.reader_settings_sheet.zoom_start
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
/** /**
@ -42,11 +25,11 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
private val preferences by injectLazy<PreferencesHelper>() private val preferences by injectLazy<PreferencesHelper>()
private val binding = ReaderSettingsSheetBinding.inflate(activity.layoutInflater, null, false)
init { init {
// Use activity theme for this layout
val view = activity.layoutInflater.inflate(R.layout.reader_settings_sheet, null)
val scroll = NestedScrollView(activity) val scroll = NestedScrollView(activity)
scroll.addView(view) scroll.addView(binding.root)
setContentView(scroll) setContentView(scroll)
} }
@ -69,7 +52,7 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
* Init general reader preferences. * Init general reader preferences.
*/ */
private fun initGeneralPreferences() { private fun initGeneralPreferences() {
viewer.onItemSelectedListener = IgnoreFirstSpinnerListener { position -> binding.viewer.onItemSelectedListener = IgnoreFirstSpinnerListener { position ->
activity.presenter.setMangaViewer(position) activity.presenter.setMangaViewer(position)
val mangaViewer = activity.presenter.getMangaViewer() val mangaViewer = activity.presenter.getMangaViewer()
@ -79,39 +62,39 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
initPagerPreferences() initPagerPreferences()
} }
} }
viewer.setSelection(activity.presenter.manga?.viewer ?: 0, false) binding.viewer.setSelection(activity.presenter.manga?.viewer ?: 0, false)
rotation_mode.bindToPreference(preferences.rotation(), 1) binding.rotationMode.bindToPreference(preferences.rotation(), 1)
background_color.bindToIntPreference(preferences.readerTheme(), R.array.reader_themes_values) binding.backgroundColor.bindToIntPreference(preferences.readerTheme(), R.array.reader_themes_values)
show_page_number.bindToPreference(preferences.showPageNumber()) binding.showPageNumber.bindToPreference(preferences.showPageNumber())
fullscreen.bindToPreference(preferences.fullscreen()) binding.fullscreen.bindToPreference(preferences.fullscreen())
cutout_short.bindToPreference(preferences.cutoutShort()) binding.cutoutShort.bindToPreference(preferences.cutoutShort())
keepscreen.bindToPreference(preferences.keepScreenOn()) binding.keepscreen.bindToPreference(preferences.keepScreenOn())
long_tap.bindToPreference(preferences.readWithLongTap()) binding.longTap.bindToPreference(preferences.readWithLongTap())
always_show_chapter_transition.bindToPreference(preferences.alwaysShowChapterTransition()) binding.alwaysShowChapterTransition.bindToPreference(preferences.alwaysShowChapterTransition())
crop_borders.bindToPreference(preferences.cropBorders()) binding.cropBorders.bindToPreference(preferences.cropBorders())
page_transitions.bindToPreference(preferences.pageTransitions()) binding.pageTransitions.bindToPreference(preferences.pageTransitions())
} }
/** /**
* Init the preferences for the pager reader. * Init the preferences for the pager reader.
*/ */
private fun initPagerPreferences() { private fun initPagerPreferences() {
webtoon_prefs_group.invisible() binding.webtoonPrefsGroup.invisible()
pager_prefs_group.visible() binding.pagerPrefsGroup.visible()
scale_type.bindToPreference(preferences.imageScaleType(), 1) binding.scaleType.bindToPreference(preferences.imageScaleType(), 1)
zoom_start.bindToPreference(preferences.zoomStart(), 1) binding.zoomStart.bindToPreference(preferences.zoomStart(), 1)
} }
/** /**
* Init the preferences for the webtoon reader. * Init the preferences for the webtoon reader.
*/ */
private fun initWebtoonPreferences() { private fun initWebtoonPreferences() {
pager_prefs_group.invisible() binding.pagerPrefsGroup.invisible()
webtoon_prefs_group.visible() binding.webtoonPrefsGroup.visible()
webtoon_side_padding.bindToIntPreference(preferences.webtoonSidePadding(), R.array.webtoon_side_padding_values) binding.webtoonSidePadding.bindToIntPreference(preferences.webtoonSidePadding(), R.array.webtoon_side_padding_values)
} }
/** /**
@ -119,10 +102,10 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) : BottomSheetDia
*/ */
private fun initNavigationPreferences() { private fun initNavigationPreferences() {
if (!preferences.readWithTapping().get()) { if (!preferences.readWithTapping().get()) {
navigation_prefs_group.gone() binding.navigationPrefsGroup.gone()
} }
tapping_inverted.bindToPreference(preferences.readWithTappingInverted()) binding.tappingInverted.bindToPreference(preferences.readWithTappingInverted())
} }
/** /**

View file

@ -244,8 +244,8 @@
<string name="pref_true_color">32-bit color</string> <string name="pref_true_color">32-bit color</string>
<string name="pref_true_color_summary">Reduces banding, but impacts performance</string> <string name="pref_true_color_summary">Reduces banding, but impacts performance</string>
<string name="pref_crop_borders">Crop borders</string> <string name="pref_crop_borders">Crop borders</string>
<string name="pref_custom_brightness">Use custom brightness</string> <string name="pref_custom_brightness">Custom brightness</string>
<string name="pref_custom_color_filter">Use custom color filter</string> <string name="pref_custom_color_filter">Custom color filter</string>
<string name="pref_color_filter_mode">Color filter blend mode</string> <string name="pref_color_filter_mode">Color filter blend mode</string>
<string name="filter_mode_default">Default</string> <string name="filter_mode_default">Default</string>
<string name="filter_mode_overlay">Overlay</string> <string name="filter_mode_overlay">Overlay</string>