Skip to content

Commit 99877f9

Browse files
committed
fix:Fix possible timing delay issues
1 parent e5752f5 commit 99877f9

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,7 @@ class ReaderActivity : BaseActivity<ReaderActivityBinding>() {
472472
bottomSheet = null
473473
snackbar?.dismiss()
474474
snackbar = null
475+
autoPlayTimer?.cancelTickAndProgress()
475476
}
476477

477478
/**

app/src/main/java/eu/kanade/tachiyomi/util/AutoPlayTimer.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package eu.kanade.tachiyomi.util
22

33
import android.os.CountDownTimer
4+
import android.os.SystemClock
45
import androidx.core.view.isVisible
56
import com.google.android.material.progressindicator.LinearProgressIndicator
67
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@@ -18,8 +19,16 @@ class AutoPlayTimer(
1819
private var currentTime = 0
1920
var nextPageFun: (() -> Unit)? = null
2021
var doTick: DoTick = DoTick.PositivePlus
22+
var elapsedRealtimeSave = -1L
2123
override fun onTick(millisUntilFinished: Long) {
22-
currentTime += countDownInterval.toInt()
24+
currentTime += if (elapsedRealtimeSave != -1L) {
25+
// Use more accurate SystemClock.elapsedRealtime()
26+
(SystemClock.elapsedRealtime() - elapsedRealtimeSave).toInt()
27+
} else {
28+
countDownInterval.toInt()
29+
}
30+
elapsedRealtimeSave = SystemClock.elapsedRealtime()
31+
2332
doTick.doTick(currentTime, max, progressBar)
2433
if (currentTime >= max) {
2534
currentTime = 0

0 commit comments

Comments
 (0)