Fix long strip reader not scrolling on consecutive taps (#2650)

This commit is contained in:
AntsyLich
2025-11-04 12:46:48 +06:00
committed by GitHub
parent bdb0ce4779
commit 0acd80dd95
2 changed files with 7 additions and 3 deletions

View File

@@ -13,6 +13,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co
## [Unreleased]
### Fixed
- Fix WebView crash introduced in 0.19.2 ([@bapeey](https://github.com/bapeey)) ([#2649](https://github.com/mihonapp/mihon/pull/2649))
- Fix long strip reader not scrolling on consecutive taps ([@AntsyLich](https://github.com/AntsyLich)) ([#2650](https://github.com/mihonapp/mihon/pull/2650))
## [v0.19.2] - 2025-11-02
### Added

View File

@@ -36,7 +36,7 @@ class WebtoonRecyclerView @JvmOverloads constructor(
private var lastVisibleItemPosition = 0
private var currentScale = DEFAULT_RATE
private var isScrolling = false
private var isManuallyScrolling = false
private var hasTappedWhileScrolling = false
var zoomOutDisabled = false
@@ -70,7 +70,7 @@ class WebtoonRecyclerView @JvmOverloads constructor(
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(e: MotionEvent): Boolean {
if (e.actionMasked == MotionEvent.ACTION_DOWN) {
hasTappedWhileScrolling = isScrolling
hasTappedWhileScrolling = isManuallyScrolling
}
detector.onTouchEvent(e)
return super.onTouchEvent(e)
@@ -91,7 +91,9 @@ class WebtoonRecyclerView @JvmOverloads constructor(
val totalItemCount = layoutManager?.itemCount ?: 0
atLastPosition = visibleItemCount > 0 && lastVisibleItemPosition == totalItemCount - 1
atFirstPosition = firstVisibleItemPosition == 0
isScrolling = state != SCROLL_STATE_IDLE
if (state == SCROLL_STATE_IDLE) {
isManuallyScrolling = false
}
}
private fun getPositionX(positionX: Float): Float {
@@ -321,6 +323,7 @@ class WebtoonRecyclerView @JvmOverloads constructor(
if (startScroll) {
isZoomDragging = true
isManuallyScrolling = true
}
}