From 51d9ece30c4ce15c4d24e907fc8d1a5d0523435f Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 22 Dec 2022 19:19:38 +0800 Subject: [PATCH] Init readingModeSettings before showing Resolve #539 --- .../setting/ReaderReadingModeSettings.kt | 42 +++++++++++++++---- .../ui/reader/setting/ReaderSettingsSheet.kt | 2 +- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt index a4638844b..f3319860e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt @@ -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() + } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderSettingsSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderSettingsSheet.kt index a933d9894..47e61601f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderSettingsSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderSettingsSheet.kt @@ -91,7 +91,7 @@ class ReaderSettingsSheet( ) override fun show() { - initSettings() + readingModeSettings.init() super.show() } }