mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Fallback to default viewer properly (closes #5068)
This commit is contained in:
		| @@ -50,10 +50,7 @@ import eu.kanade.tachiyomi.ui.reader.setting.OrientationType | ||||
| import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsSheet | ||||
| import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType | ||||
| 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 | ||||
| import eu.kanade.tachiyomi.util.storage.getUriCompat | ||||
| import eu.kanade.tachiyomi.util.system.GLUtil | ||||
| import eu.kanade.tachiyomi.util.system.hasDisplayCutout | ||||
| @@ -540,13 +537,7 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>() | ||||
|         val viewerMode = ReadingModeType.fromPreference(presenter.getMangaReadingMode(resolveDefault = false)) | ||||
|         binding.actionReadingMode.setImageResource(viewerMode.iconRes) | ||||
|  | ||||
|         val newViewer = when (presenter.getMangaReadingMode()) { | ||||
|             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) | ||||
|             else -> R2LPagerViewer(this) | ||||
|         } | ||||
|         val newViewer = ReadingModeType.toViewer(presenter.getMangaReadingMode(), this) | ||||
|  | ||||
|         setOrientation(presenter.getMangaOrientationType()) | ||||
|  | ||||
|   | ||||
| @@ -501,8 +501,9 @@ class ReaderPresenter( | ||||
|      */ | ||||
|     fun getMangaReadingMode(resolveDefault: Boolean = true): Int { | ||||
|         val default = preferences.defaultReadingMode() | ||||
|         val readingMode = ReadingModeType.fromPreference(manga?.readingModeType) | ||||
|         return when { | ||||
|             resolveDefault && manga?.readingModeType == ReadingModeType.DEFAULT.flagValue -> default | ||||
|             resolveDefault && readingMode == ReadingModeType.DEFAULT -> default | ||||
|             else -> manga?.readingModeType ?: default | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -3,6 +3,12 @@ package eu.kanade.tachiyomi.ui.reader.setting | ||||
| import androidx.annotation.DrawableRes | ||||
| import androidx.annotation.StringRes | ||||
| 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) { | ||||
|     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 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") | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user