From 1242a88f8ef1e571103e6f1eebc5fda0cfaa11b7 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 22 Nov 2023 15:10:26 +0200 Subject: [PATCH] Fix disabling webtoon scale --- .../kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt | 5 ++++- .../kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt | 4 ++++ .../kotatsu/reader/ui/pager/webtoon/WebtoonScalingFrame.kt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt index f0cea3488..7637cf0ae 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt @@ -119,9 +119,12 @@ class ReaderViewModel @Inject constructor( valueProducer = { isReaderKeepScreenOn }, ) + val isWebtoonZooEnabled = observeIsWebtoonZoomEnabled() + .stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Lazily, false) + val isZoomControlsEnabled = getObserveIsZoomControlEnabled().flatMapLatest { zoom -> if (zoom) { - combine(readerMode, observeIsWebtoonZoomEnabled()) { mode, ze -> ze || mode != ReaderMode.WEBTOON } + combine(readerMode, isWebtoonZooEnabled) { mode, ze -> ze || mode != ReaderMode.WEBTOON } } else { flowOf(false) } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt index 00f6867f8..a36b5335d 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt @@ -13,6 +13,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.os.NetworkState import org.koitharu.kotatsu.core.util.ext.findCenterViewPosition import org.koitharu.kotatsu.core.util.ext.firstVisibleItemPosition +import org.koitharu.kotatsu.core.util.ext.observe import org.koitharu.kotatsu.databinding.FragmentReaderWebtoonBinding import org.koitharu.kotatsu.reader.domain.PageLoader import org.koitharu.kotatsu.reader.ui.ReaderState @@ -44,6 +45,9 @@ class WebtoonReaderFragment : BaseReaderFragment() adapter = readerAdapter addOnPageScrollListener(PageScrollListener()) } + viewModel.isWebtoonZooEnabled.observe(viewLifecycleOwner) { + binding.frame.isZoomEnable = it + } } override fun onDestroyView() { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonScalingFrame.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonScalingFrame.kt index d5ac88df9..c57858ee7 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonScalingFrame.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonScalingFrame.kt @@ -51,7 +51,7 @@ class WebtoonScalingFrame @JvmOverloads constructor( private val targetHitRect = Rect() private var animator: ValueAnimator? = null - var isZoomEnable = true + var isZoomEnable = false set(value) { field = value if (scale != 1f) {