From d0650c7cf45721c22f89dc2cb1a204c0348bef9c Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 12 Oct 2022 12:35:33 +0300 Subject: [PATCH] Refactor webtoon zoom option --- .../org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt | 6 ++++++ .../koitharu/kotatsu/reader/ui/config/ReaderSettings.kt | 9 +++++---- .../reader/ui/pager/webtoon/WebtoonReaderFragment.kt | 4 +++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt index ea9abd350..feb64b21b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt @@ -106,6 +106,12 @@ class ReaderViewModel @AssistedInject constructor( valueProducer = { isReaderBarEnabled }, ) + val isWebtoonZoomEnabled = settings.observeAsLiveData( + context = viewModelScope.coroutineContext + Dispatchers.Default, + key = AppSettings.KEY_WEBTOON_ZOOM, + valueProducer = { isWebtoonZoomEnable }, + ) + val readerSettings = ReaderSettings( parentScope = viewModelScope, settings = settings, diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/config/ReaderSettings.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/config/ReaderSettings.kt index 283bfc661..03a6c49e9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/config/ReaderSettings.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/config/ReaderSettings.kt @@ -2,9 +2,13 @@ package org.koitharu.kotatsu.reader.ui.config import android.content.SharedPreferences import androidx.lifecycle.MediatorLiveData -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job import kotlinx.coroutines.flow.FlowCollector import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.koitharu.kotatsu.core.model.ZoomMode import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.reader.domain.ReaderColorFilter @@ -27,9 +31,6 @@ class ReaderSettings( val isPagesNumbersEnabled: Boolean get() = settings.isPagesNumbersEnabled - val isWebtoonZoomEnable: Boolean - get() = settings.isWebtoonZoomEnable - override fun onInactive() { super.onInactive() settings.unsubscribe(internalObserver) diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt index c414ffb9c..79a4e8927 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonReaderFragment.kt @@ -36,7 +36,9 @@ class WebtoonReaderFragment : BaseReader() { addOnPageScrollListener(PageScrollListener()) } - viewModel.readerSettings.observe(viewLifecycleOwner) { binding.frame.isZoomEnable = it.isWebtoonZoomEnable } + viewModel.isWebtoonZoomEnabled.observe(viewLifecycleOwner) { + binding.frame.isZoomEnable = it + } } override fun onDestroyView() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 068b04c90..c1e429c11 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -391,4 +391,5 @@ No space left on device Show page switching slider Webtoon zoom + Allow zoom in/zoom out gesture in webtoon mode (beta)