Add icons for reading mode toggle

This commit is contained in:
arkon
2021-03-14 17:13:20 -04:00
parent 2f08515455
commit 609d8c9685
10 changed files with 111 additions and 13 deletions

View File

@ -343,7 +343,7 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
}
binding.actionReaderMode.setOnClickListener {
val newReadingMode = ReadingModeType.getNextReadingMode(presenter.manga?.viewer ?: 0)
val newReadingMode = ReadingModeType.getNextReadingMode(presenter.getMangaViewer(resolveDefault = false))
presenter.setMangaViewer(newReadingMode.prefValue)
menuToggleToast?.cancel()
@ -464,12 +464,16 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
*/
fun setManga(manga: Manga) {
val prevViewer = viewer
val viewerMode = ReadingModeType.fromPreference(presenter.getMangaViewer(resolveDefault = false))
binding.actionReaderMode.setImageResource(viewerMode.iconRes)
val newViewer = when (presenter.getMangaViewer()) {
ReadingModeType.RIGHT_TO_LEFT.prefValue -> R2LPagerViewer(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)
else -> L2RPagerViewer(this)
else -> R2LPagerViewer(this)
}
// Destroy previous viewer if there was one

View File

@ -489,9 +489,9 @@ class ReaderPresenter(
/**
* Returns the viewer position used by this manga or the default one.
*/
fun getMangaViewer(): Int {
fun getMangaViewer(resolveDefault: Boolean = true): Int {
val manga = manga ?: return preferences.defaultViewer()
return if (manga.viewer == 0) preferences.defaultViewer() else manga.viewer
return if (resolveDefault && manga.viewer == 0) preferences.defaultViewer() else manga.viewer
}
/**

View File

@ -1,16 +1,17 @@
package eu.kanade.tachiyomi.ui.reader.setting
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.lang.next
enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int) {
DEFAULT(0, R.string.default_viewer),
LEFT_TO_RIGHT(1, R.string.left_to_right_viewer),
RIGHT_TO_LEFT(2, R.string.right_to_left_viewer),
VERTICAL(3, R.string.vertical_viewer),
WEBTOON(4, R.string.webtoon_viewer),
CONTINUOUS_VERTICAL(5, R.string.vertical_plus_viewer),
enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int, @DrawableRes val iconRes: Int) {
DEFAULT(0, R.string.default_viewer, R.drawable.ic_reader_default_24dp),
LEFT_TO_RIGHT(1, R.string.left_to_right_viewer, R.drawable.ic_reader_ltr_24dp),
RIGHT_TO_LEFT(2, R.string.right_to_left_viewer, R.drawable.ic_reader_rtl_24dp),
VERTICAL(3, R.string.vertical_viewer, R.drawable.ic_reader_vertical_24dp),
WEBTOON(4, R.string.webtoon_viewer, R.drawable.ic_reader_webtoon_24dp),
CONTINUOUS_VERTICAL(5, R.string.vertical_plus_viewer, R.drawable.ic_reader_continuous_vertical_24dp),
;
companion object {