diff --git a/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt b/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt
index 23baa23f4..00082b71b 100644
--- a/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt
+++ b/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.kt
@@ -22,6 +22,7 @@ import androidx.annotation.IntDef
import com.davemorrissey.labs.subscaleview.decoder.Decoder
import com.davemorrissey.labs.subscaleview.decoder.ImageDecoder
import com.davemorrissey.labs.subscaleview.provider.InputProvider
+import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
@@ -462,6 +463,7 @@ open class SubsamplingScaleImageView @JvmOverloads constructor(
}
override fun onDoubleTap(e: MotionEvent): Boolean {
+ if (!ReaderActivity.readerPreferences.doubleTapToZoom().get()) return false
if (isZoomEnabled && isReady && vTranslate != null) {
// Hacky solution for #15 - after a double tap the GestureDetector gets in a state
// where the next fling is ignored, so here we replace it with a new one.
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt
index 158ff71c3..48300237a 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt
@@ -36,6 +36,7 @@ class ReaderGeneralSettings @JvmOverloads constructor(context: Context, attrs: A
binding.backgroundColor.bindToIntPreference(readerPreferences.readerTheme(), R.array.reader_themes_values)
binding.showPageNumber.bindToPreference(readerPreferences.showPageNumber())
binding.showReaderSeekbar.bindToPreference(readerPreferences.showReaderSeekbar())
+ binding.doubleTapToZoom.bindToPreference(readerPreferences.doubleTapToZoom())
binding.fullscreen.bindToPreference(readerPreferences.fullscreen())
readerPreferences.fullscreen()
.asHotFlow {
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
index 2c2d87127..8587fb323 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
@@ -15,6 +15,7 @@ class ReaderPreferences(private val preferenceStore: PreferenceStore) {
fun showPageNumber() = preferenceStore.getBoolean("pref_show_page_number_key", true)
fun showReaderSeekbar() = preferenceStore.getBoolean("pref_show_reader_seekbar", true)
+ fun doubleTapToZoom() = preferenceStore.getBoolean("pref_double_tap_to_zoom", true)
fun trueColor() = preferenceStore.getBoolean("pref_true_color_key", false)
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt
index f814fb714..7f715f361 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt
@@ -23,6 +23,7 @@ import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.Companion.EASE_OUT_QUAD
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView.Companion.SCALE_TYPE_CENTER_INSIDE
import com.github.chrisbanes.photoview.PhotoView
+import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonSubsamplingImageView
import eu.kanade.tachiyomi.util.system.animatorDurationScale
import eu.kanade.tachiyomi.util.view.isVisibleOnScreen
@@ -277,10 +278,12 @@ open class ReaderPageImageView @JvmOverloads constructor(
setOnDoubleTapListener(
object : GestureDetector.SimpleOnGestureListener() {
override fun onDoubleTap(e: MotionEvent): Boolean {
- if (scale > 1F) {
- setScale(1F, e.x, e.y, true)
- } else {
- setScale(2F, e.x, e.y, true)
+ if (ReaderActivity.readerPreferences.doubleTapToZoom().get()) {
+ if (scale > 1F) {
+ setScale(1F, e.x, e.y, true)
+ } else {
+ setScale(2F, e.x, e.y, true)
+ }
}
return true
}
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt
index 5e81ec7a9..a1abde749 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt
@@ -11,6 +11,7 @@ import android.view.animation.DecelerateInterpolator
import androidx.core.animation.doOnEnd
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.viewer.GestureDetectorWithLongTap
import kotlin.math.abs
@@ -208,7 +209,7 @@ class WebtoonRecyclerView @JvmOverloads constructor(
}
override fun onDoubleTap(ev: MotionEvent): Boolean {
- detector.isDoubleTapping = true
+ if (ReaderActivity.readerPreferences.doubleTapToZoom().get()) detector.isDoubleTapping = true
return false
}
diff --git a/app/src/main/res/layout/reader_general_settings.xml b/app/src/main/res/layout/reader_general_settings.xml
index 4876fd011..a20edfb9d 100644
--- a/app/src/main/res/layout/reader_general_settings.xml
+++ b/app/src/main/res/layout/reader_general_settings.xml
@@ -35,6 +35,15 @@
android:text="@string/pref_show_reader_seekbar"
android:textColor="?android:attr/textColorSecondary" />
+
+
页面过渡动画
显示页码
显示跳页拖动条
+ 双击缩放
自定义亮度
自定义滤镜
保持屏幕常亮
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 58b636f8b..333b42fb3 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -548,6 +548,7 @@
翻頁轉場動畫
顯示頁碼
顯示跳頁拖動條
+ 雙擊縮放
自訂亮度
色彩濾鏡
保持螢幕恆亮
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7f3a5c64a..a72a59aba 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -629,6 +629,7 @@
Animate page transitions
Show page number
Show page jumping seekbar
+ Double tap to zoom
Custom brightness
Grayscale
Inverted