@@ -17,7 +17,6 @@ import androidx.core.view.isVisible
17
17
import androidx.lifecycle.lifecycleScope
18
18
import androidx.recyclerview.widget.LinearLayoutManager
19
19
import androidx.recyclerview.widget.PagerSnapHelper
20
- import androidx.recyclerview.widget.RecyclerView
21
20
import com.bumptech.glide.Glide
22
21
import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader
23
22
import com.bumptech.glide.request.target.Target.SIZE_ORIGINAL
@@ -58,6 +57,7 @@ import io.legado.app.ui.widget.recycler.LoadMoreView
58
57
import io.legado.app.utils.GSON
59
58
import io.legado.app.utils.NetworkUtils
60
59
import io.legado.app.utils.StartActivityContract
60
+ import io.legado.app.utils.canScroll
61
61
import io.legado.app.utils.fastBinarySearch
62
62
import io.legado.app.utils.findCenterViewPosition
63
63
import io.legado.app.utils.fromJsonObject
@@ -418,7 +418,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
418
418
}
419
419
420
420
override fun scrollBy (distance : Int ) {
421
- if (binding.recyclerView.isAtEnd( )) {
421
+ if (! binding.recyclerView.canScroll( 1 )) {
422
422
return
423
423
}
424
424
val time = ceil(16f / distance * 10000 ).toInt()
@@ -657,25 +657,15 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
657
657
}
658
658
659
659
private fun scrollToNext () {
660
- if (binding.recyclerView.isAtEnd()) {
661
- return
662
- }
663
- var dx = 0
664
- var dy = 0
665
- if (AppConfig .enableMangaHorizontalScroll) {
666
- dx = binding.recyclerView.run {
667
- width - paddingStart - paddingEnd
668
- }
669
- } else {
670
- dy = binding.recyclerView.run {
671
- height - paddingTop - paddingBottom
672
- }
673
- }
674
- binding.recyclerView.smoothScrollBy(dx, dy)
660
+ scrollPageTo(1 )
675
661
}
676
662
677
663
private fun scrollToPrev () {
678
- if (binding.recyclerView.isAtStart()) {
664
+ scrollPageTo(- 1 )
665
+ }
666
+
667
+ private fun scrollPageTo (direction : Int ) {
668
+ if (! binding.recyclerView.canScroll(direction)) {
679
669
return
680
670
}
681
671
var dx = 0
@@ -689,7 +679,9 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
689
679
height - paddingTop - paddingBottom
690
680
}
691
681
}
692
- binding.recyclerView.smoothScrollBy(- dx, - dy)
682
+ dx * = direction
683
+ dy * = direction
684
+ binding.recyclerView.smoothScrollBy(dx, dy)
693
685
}
694
686
695
687
private fun showNumberPickerDialog (
@@ -731,14 +723,6 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
731
723
}
732
724
}
733
725
734
- private fun RecyclerView.isAtStart (): Boolean {
735
- return ! canScrollVertically(- 1 ) && ! canScrollHorizontally(- 1 )
736
- }
737
-
738
- private fun RecyclerView.isAtEnd (): Boolean {
739
- return ! canScrollVertically(1 ) && ! canScrollHorizontally(1 )
740
- }
741
-
742
726
fun updateWindowBrightness (brightness : Int ) {
743
727
val layoutParams = window.attributes
744
728
val normalizedBrightness = brightness.toFloat() / 255.0f
0 commit comments