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] ## [Unreleased]
### Fixed ### Fixed
- Fix WebView crash introduced in 0.19.2 ([@bapeey](https://github.com/bapeey)) ([#2649](https://github.com/mihonapp/mihon/pull/2649)) - 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 ## [v0.19.2] - 2025-11-02
### Added ### Added

View File

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