Implement invert double pages
This commit is contained in:
parent
4d7d451fde
commit
8d291b1bc3
@ -1256,7 +1256,8 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
||||
val pages = page.chapter.pages ?: return
|
||||
|
||||
val currentPage = if (hasExtraPage) {
|
||||
if (resources.isLTR) "${page.number}-${page.number + 1}" else "${page.number + 1}-${page.number}"
|
||||
val invertDoublePage = (viewer as? PagerViewer)?.config?.invertDoublePages ?: false
|
||||
if (resources.isLTR xor invertDoublePage) "${page.number}-${page.number + 1}" else "${page.number + 1}-${page.number}"
|
||||
} else {
|
||||
"${page.number}"
|
||||
}
|
||||
|
@ -88,6 +88,7 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr
|
||||
// SY -->
|
||||
binding.pagerPrefsGroup.pageTransitionsPager.bindToPreference(preferences.pageTransitionsPager())
|
||||
binding.pagerPrefsGroup.pageLayout.bindToPreference(preferences.pageLayout())
|
||||
binding.pagerPrefsGroup.invertDoublePages.bindToPreference(preferences.invertDoublePages())
|
||||
// SY <--
|
||||
}
|
||||
|
||||
|
@ -137,6 +137,8 @@ class PagerConfig(
|
||||
}
|
||||
)
|
||||
|
||||
preferences.invertDoublePages()
|
||||
.register({ invertDoublePages = it && dualPageSplit == false }, { imagePropertyChangedListener?.invoke() })
|
||||
// SY <--
|
||||
}
|
||||
|
||||
|
@ -23,9 +23,6 @@ import eu.kanade.tachiyomi.util.system.ImageUtil
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.logcat
|
||||
import eu.kanade.tachiyomi.widget.ViewPagerAdapter
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import logcat.LogPriority
|
||||
import rx.Observable
|
||||
@ -104,12 +101,10 @@ class PagerPageHolder(
|
||||
var extraStatus: Int = 0
|
||||
var progress: Int = 0
|
||||
var extraProgress: Int = 0
|
||||
var scope: CoroutineScope? = null
|
||||
// SY <--
|
||||
|
||||
init {
|
||||
addView(progressIndicator)
|
||||
scope = CoroutineScope(Job() + Dispatchers.Default)
|
||||
observeStatus()
|
||||
}
|
||||
|
||||
@ -393,7 +388,7 @@ class PagerPageHolder(
|
||||
logcat(LogPriority.ERROR, e) { "Cannot combine pages" }
|
||||
return imageBytes.inputStream()
|
||||
}
|
||||
scope?.launchUI { progressIndicator.setProgress(96) }
|
||||
viewer.scope.launchUI { progressIndicator.setProgress(96) }
|
||||
val height = imageBitmap.height
|
||||
val width = imageBitmap.width
|
||||
|
||||
@ -417,7 +412,7 @@ class PagerPageHolder(
|
||||
logcat(LogPriority.ERROR, e) { "Cannot combine pages" }
|
||||
return imageBytes.inputStream()
|
||||
}
|
||||
scope?.launchUI { progressIndicator.setProgress(97) }
|
||||
viewer.scope.launchUI { progressIndicator.setProgress(97) }
|
||||
val height2 = imageBitmap2.height
|
||||
val width2 = imageBitmap2.width
|
||||
|
||||
@ -429,12 +424,12 @@ class PagerPageHolder(
|
||||
splitDoublePages()
|
||||
return imageBytes.inputStream()
|
||||
}
|
||||
val isLTR = (viewer !is R2LPagerViewer).xor(viewer.config.invertDoublePages)
|
||||
val isLTR = (viewer !is R2LPagerViewer) xor viewer.config.invertDoublePages
|
||||
|
||||
imageStream.close()
|
||||
imageStream2.close()
|
||||
return ImageUtil.mergeBitmaps(imageBitmap, imageBitmap2, isLTR, viewer.config.pageCanvasColor) {
|
||||
scope?.launchUI {
|
||||
viewer.scope.launchUI {
|
||||
if (it == 100) {
|
||||
progressIndicator.hide()
|
||||
} else {
|
||||
@ -445,7 +440,7 @@ class PagerPageHolder(
|
||||
}
|
||||
|
||||
private fun splitDoublePages() {
|
||||
scope?.launchUI {
|
||||
viewer.scope.launchUI {
|
||||
delay(100)
|
||||
viewer.splitDoublePages(page)
|
||||
if (extraPage?.fullPage == true || page.fullPage) {
|
||||
|
@ -88,6 +88,15 @@
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:text="@string/pref_page_transitions" />
|
||||
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||
android:id="@+id/invert_double_pages"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:text="@string/invert_double_pages" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/tapping_prefs_group"
|
||||
android:layout_width="wrap_content"
|
||||
|
Loading…
x
Reference in New Issue
Block a user