From 10c45f1492e571ff27dccbfabb806169567368fd Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Wed, 3 Nov 2021 06:24:04 -0600 Subject: [PATCH] home: prevent scrollbar from showing on measure Prevent FastScrollRecyclerView from showing the scrollbar whenever it would measure itself, which again results in a scroll event for some reason. --- .../auxio/home/fastscroll/FastScrollRecyclerView.kt | 11 ++--------- app/src/main/res/values/themes.xml | 10 +++++----- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt b/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt index d085b7dbd..f146bffcf 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt @@ -96,7 +96,6 @@ class FastScrollRecyclerView @JvmOverloads constructor( private var dragStartThumbOffset = 0 private var dragging = false - private var didRelayout = true private var showingScrollbar = false private var showingPopup = false @@ -304,8 +303,8 @@ class FastScrollRecyclerView @JvmOverloads constructor( updateScrollbarState() - if (didRelayout) { - didRelayout = false + // Measure or layout events result in a fake onScrolled call. Ignore those. + if (dx == 0 && dy == 0) { return } @@ -313,12 +312,6 @@ class FastScrollRecyclerView @JvmOverloads constructor( postAutoHideScrollbar() } - override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) { - super.onLayout(changed, l, t, r, b) - - didRelayout = changed - } - override fun onApplyWindowInsets(insets: WindowInsets): WindowInsets { val bars = insets.systemBarsCompat diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e0761e4c9..1c09d0ac4 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -148,10 +148,10 @@ \ No newline at end of file