diff --git a/app/src/main/java/org/oxycblt/auxio/songs/FastScrollView.kt b/app/src/main/java/org/oxycblt/auxio/songs/FastScrollView.kt index 056072aa5..9ba37054f 100644 --- a/app/src/main/java/org/oxycblt/auxio/songs/FastScrollView.kt +++ b/app/src/main/java/org/oxycblt/auxio/songs/FastScrollView.kt @@ -49,6 +49,31 @@ class FastScrollView @JvmOverloads constructor( private var mRecycler: RecyclerView? = null private var mGetItem: ((Int) -> Char)? = null + private val mObserver = object : RecyclerView.AdapterDataObserver() { + override fun onChanged() = postIndicatorUpdate() + + override fun onItemRangeChanged( + positionStart: Int, + itemCount: Int, + payload: Any? + ) = postIndicatorUpdate() + + override fun onItemRangeInserted( + positionStart: Int, + itemCount: Int + ) = onChanged() + + override fun onItemRangeMoved( + fromPosition: Int, + toPosition: Int, + itemCount: Int + ) = onChanged() + + override fun onItemRangeRemoved( + positionStart: Int, + itemCount: Int + ) = onChanged() + } // --- INDICATORS --- @@ -93,6 +118,8 @@ class FastScrollView @JvmOverloads constructor( mRecycler = recycler mGetItem = getItem + recycler.adapter?.registerAdapterDataObserver(mObserver) + postIndicatorUpdate() }