Преглед на файлове

fix:修复seek无法刷新的问题 (#1993)

Co-authored-by: todoXu <xuyukai1995@gamil.com>
todoXu преди 3 месеца
родител
ревизия
5c761f11e5

+ 2 - 1
app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt

@@ -194,7 +194,7 @@ class ReadBookController(
     private val prevPageDebounce by lazy { Debounce { keyPage(PageDirection.PREV) } }
     private val prevPageDebounce by lazy { Debounce { keyPage(PageDirection.PREV) } }
 
 
     private val upSeekBarThrottle = throttle(200) {
     private val upSeekBarThrottle = throttle(200) {
-        onUnhandledEffect(ReadBookEffect.UpSeekBar)
+        viewModel.refreshSeekState()
     }
     }
 
 
     fun onRefsReady(newRefs: ReadBookViewRefs) {
     fun onRefsReady(newRefs: ReadBookViewRefs) {
@@ -1050,6 +1050,7 @@ class ReadBookController(
                     consumePendingSearchResultMark()
                     consumePendingSearchResultMark()
                 }
                 }
                 if (effect.relativePosition == 0) onUnhandledEffect(ReadBookEffect.UpSeekBar)
                 if (effect.relativePosition == 0) onUnhandledEffect(ReadBookEffect.UpSeekBar)
+                if (effect.relativePosition == 0) viewModel.refreshSeekState()
             }
             }
 
 
             is ReadBookEffect.UpPageAnim -> refs?.readView?.upPageAnim(effect.upRecorder)
             is ReadBookEffect.UpPageAnim -> refs?.readView?.upPageAnim(effect.upRecorder)

+ 7 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt

@@ -2321,6 +2321,13 @@ class ReadBookViewModel(
         }
         }
     }
     }
 
 
+    fun refreshSeekState() {
+        _uiState.update { it.copy(
+            seekProgress = calculateSeekProgress(),
+            seekMax = calculateSeekMax(),
+        ) }
+    }
+
     private fun openChapterUrl() {
     private fun openChapterUrl() {
         if (ReadBook.isLocalBook) return
         if (ReadBook.isLocalBook) return
         viewModelScope.launch {
         viewModelScope.launch {