Fallback to default viewer properly (closes #5068)
(cherry picked from commit 2a7ed1375af6c2b705127f0ef2d2ac69e8b6bb67) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
This commit is contained in:
parent
a855c4a929
commit
82a92b9497
@ -58,7 +58,6 @@ import eu.kanade.tachiyomi.ui.reader.setting.ReaderBottomButton
|
|||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsSheet
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsSheet
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
|
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.pager.L2RPagerViewer
|
|
||||||
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.pager.R2LPagerViewer
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.R2LPagerViewer
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.pager.VerticalPagerViewer
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.VerticalPagerViewer
|
||||||
@ -890,16 +889,10 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
|||||||
fun setManga(manga: Manga) {
|
fun setManga(manga: Manga) {
|
||||||
val prevViewer = viewer
|
val prevViewer = viewer
|
||||||
|
|
||||||
/*val viewerMode = ReadingModeType.fromPreference(presenter.getMangaReadingMode(resolveDefault = false))
|
val viewerMode = ReadingModeType.fromPreference(presenter.getMangaReadingMode(resolveDefault = false))
|
||||||
binding.actionReadingMode.setImageResource(viewerMode.iconRes)*/
|
binding.actionReadingMode.setImageResource(viewerMode.iconRes)
|
||||||
|
|
||||||
val newViewer = when (presenter.getMangaReadingMode()) {
|
val newViewer = ReadingModeType.toViewer(presenter.getMangaReadingMode(), this)
|
||||||
ReadingModeType.LEFT_TO_RIGHT.prefValue -> L2RPagerViewer(this)
|
|
||||||
ReadingModeType.VERTICAL.prefValue -> VerticalPagerViewer(this)
|
|
||||||
ReadingModeType.WEBTOON.prefValue -> WebtoonViewer(this)
|
|
||||||
ReadingModeType.CONTINUOUS_VERTICAL.prefValue -> WebtoonViewer(this, isContinuous = false /* SY --> */, tapByPage = preferences.continuousVerticalTappingByPage().get() /* SY <-- */)
|
|
||||||
else -> R2LPagerViewer(this)
|
|
||||||
}
|
|
||||||
|
|
||||||
setOrientation(presenter.getMangaOrientationType())
|
setOrientation(presenter.getMangaOrientationType())
|
||||||
|
|
||||||
|
@ -599,15 +599,19 @@ class ReaderPresenter(
|
|||||||
* Returns the viewer position used by this manga or the default one.
|
* Returns the viewer position used by this manga or the default one.
|
||||||
*/
|
*/
|
||||||
fun getMangaReadingMode(resolveDefault: Boolean = true): Int {
|
fun getMangaReadingMode(resolveDefault: Boolean = true): Int {
|
||||||
val manga = manga ?: return preferences.defaultReadingMode()
|
val default = preferences.defaultReadingMode()
|
||||||
|
val manga = manga ?: return default
|
||||||
|
val readingMode = ReadingModeType.fromPreference(manga.readingModeType)
|
||||||
// SY -->
|
// SY -->
|
||||||
return when {
|
return when {
|
||||||
resolveDefault && manga.readingModeType == ReadingModeType.DEFAULT.flagValue && preferences.useAutoWebtoon().get() -> {
|
resolveDefault && readingMode == ReadingModeType.DEFAULT && preferences.useAutoWebtoon().get() -> {
|
||||||
manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name)) ?: if (manga.readingModeType == ReadingModeType.DEFAULT.flagValue) preferences.defaultReadingMode() else manga.readingModeType
|
manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name)) ?: if (manga.readingModeType == ReadingModeType.DEFAULT.flagValue) {
|
||||||
}
|
default
|
||||||
resolveDefault && manga.readingModeType == ReadingModeType.DEFAULT.flagValue -> {
|
} else {
|
||||||
preferences.defaultReadingMode()
|
readingMode.prefValue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
resolveDefault && readingMode == ReadingModeType.DEFAULT -> default
|
||||||
else -> manga.readingModeType
|
else -> manga.readingModeType
|
||||||
}
|
}
|
||||||
// SY <--
|
// SY <--
|
||||||
|
@ -3,6 +3,12 @@ package eu.kanade.tachiyomi.ui.reader.setting
|
|||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.L2RPagerViewer
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.R2LPagerViewer
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.VerticalPagerViewer
|
||||||
|
import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer
|
||||||
|
|
||||||
enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int, @DrawableRes val iconRes: Int, val flagValue: Int) {
|
enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int, @DrawableRes val iconRes: Int, val flagValue: Int) {
|
||||||
DEFAULT(0, R.string.default_viewer, R.drawable.ic_reader_default_24dp, 0x00000000),
|
DEFAULT(0, R.string.default_viewer, R.drawable.ic_reader_default_24dp, 0x00000000),
|
||||||
@ -24,5 +30,16 @@ enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int, @D
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun fromSpinner(position: Int?) = values().find { value -> value.prefValue == position } ?: DEFAULT
|
fun fromSpinner(position: Int?) = values().find { value -> value.prefValue == position } ?: DEFAULT
|
||||||
|
|
||||||
|
fun toViewer(preference: Int?, activity: ReaderActivity): BaseViewer {
|
||||||
|
return when (fromPreference(preference)) {
|
||||||
|
LEFT_TO_RIGHT -> L2RPagerViewer(activity)
|
||||||
|
RIGHT_TO_LEFT -> R2LPagerViewer(activity)
|
||||||
|
VERTICAL -> VerticalPagerViewer(activity)
|
||||||
|
WEBTOON -> WebtoonViewer(activity)
|
||||||
|
CONTINUOUS_VERTICAL -> WebtoonViewer(activity, isContinuous = false)
|
||||||
|
DEFAULT -> throw IllegalStateException("Preference value must be resolved: $preference")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user