Init readingModeSettings before showing

Resolve #539
This commit is contained in:
FooIbar authored and tarsin committed 2022-12-22 21:45:07 +08:00
1 parent d8e79f879f
commit 51d9ece30c
2 files changed
+35 -9

No files matched your search

@@ -7,8 +7,8 @@ import androidx.core.view.isVisible
import androidx.core.widget.NestedScrollView
import androidx.lifecycle.lifecycleScope
import com.hippo.ehviewer.R
import eu.kanade.tachiyomi.data.preference.PreferenceValues
import com.hippo.ehviewer.databinding.ReaderReadingModeSettingsBinding
import eu.kanade.tachiyomi.data.preference.PreferenceValues
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerViewer
import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer
@@ -19,12 +19,16 @@ import kotlinx.coroutines.flow.launchIn
/**
* Sheet to show reader and viewer preferences.
*/
class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
class ReaderReadingModeSettings @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null
) :
NestedScrollView(context, attrs) {
private val readerPreferences: ReaderPreferences = ReaderActivity.readerPreferences
private val binding = ReaderReadingModeSettingsBinding.inflate(LayoutInflater.from(context), this, false)
private val binding =
ReaderReadingModeSettingsBinding.inflate(LayoutInflater.from(context), this, false)
init {
addView(binding.root)
@@ -53,14 +57,18 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr
initPagerPreferences()
}
}
binding.viewer.setSelection(ReaderActivity.readerPreferences.defaultReadingMode().get().let { ReadingModeType.fromPreference(it).prefValue })
binding.viewer.setSelection(
ReaderActivity.readerPreferences.defaultReadingMode().get()
.let { ReadingModeType.fromPreference(it).prefValue })
binding.rotationMode.onItemSelectedListener = { position ->
val rotationType = OrientationType.fromSpinner(position)
readerPreferences.defaultOrientationType().set(rotationType.flagValue)
(context as ReaderActivity).setGallery()
}
binding.rotationMode.setSelection(ReaderActivity.readerPreferences.defaultOrientationType().get().let { OrientationType.fromPreference(it).prefValue })
binding.rotationMode.setSelection(
ReaderActivity.readerPreferences.defaultOrientationType().get()
.let { OrientationType.fromPreference(it).prefValue })
}
/**
@@ -70,7 +78,10 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr
binding.webtoonPrefsGroup.root.isVisible = false
binding.pagerPrefsGroup.root.isVisible = true
binding.pagerPrefsGroup.tappingInverted.bindToPreference(readerPreferences.pagerNavInverted(), PreferenceValues.TappingInvertMode::class.java)
binding.pagerPrefsGroup.tappingInverted.bindToPreference(
readerPreferences.pagerNavInverted(),
PreferenceValues.TappingInvertMode::class.java
)
binding.pagerPrefsGroup.navigatePan.bindToPreference(readerPreferences.navigateToPan())
binding.pagerPrefsGroup.pagerNav.bindToPreference(readerPreferences.navigationModePager())
@@ -99,13 +110,28 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr
binding.pagerPrefsGroup.root.isVisible = false
binding.webtoonPrefsGroup.root.isVisible = true
binding.webtoonPrefsGroup.tappingInverted.bindToPreference(readerPreferences.webtoonNavInverted(), PreferenceValues.TappingInvertMode::class.java)
binding.webtoonPrefsGroup.tappingInverted.bindToPreference(
readerPreferences.webtoonNavInverted(),
PreferenceValues.TappingInvertMode::class.java
)
binding.webtoonPrefsGroup.webtoonNav.bindToPreference(readerPreferences.navigationModeWebtoon())
readerPreferences.navigationModeWebtoon()
.asHotFlow { binding.webtoonPrefsGroup.tappingInverted.isVisible = it != 5 }
.launchIn((context as ReaderActivity).lifecycleScope)
binding.webtoonPrefsGroup.cropBordersWebtoon.bindToPreference(readerPreferences.cropBordersWebtoon())
binding.webtoonPrefsGroup.webtoonSidePadding.bindToIntPreference(readerPreferences.webtoonSidePadding(), R.array.webtoon_side_padding_values)
binding.webtoonPrefsGroup.webtoonSidePadding.bindToIntPreference(
readerPreferences.webtoonSidePadding(),
R.array.webtoon_side_padding_values
)
}
fun init() {
initGeneralPreferences()
when ((context as ReaderActivity).viewer) {
is PagerViewer -> initPagerPreferences()
is WebtoonViewer -> initWebtoonPreferences()
}
}
}
@@ -91,7 +91,7 @@ class ReaderSettingsSheet(
)
override fun show() {
initSettings()
readingModeSettings.init()
super.show()
}
}