Vibrate device when library fast scroll changes categories

This commit is contained in:
Jays2Kings 2022-07-12 17:49:17 -04:00
parent 7d309bd600
commit 116a191364

View file

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.library
import android.os.Build
import android.view.HapticFeedbackConstants
import android.view.View
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.IFlexible
@ -34,6 +35,8 @@ class LibraryCategoryAdapter(val controller: LibraryController?) :
var showOutline = preferences.outlineOnCovers().get()
private var lastCategory = ""
val hasActiveFilters: Boolean
get() = controller?.hasActiveFilters == true
@ -175,7 +178,10 @@ class LibraryCategoryAdapter(val controller: LibraryController?) :
val db: DatabaseHelper by injectLazy()
if (position == itemCount - 1) return recyclerView.context.getString(R.string.bottom)
return when (val item: IFlexible<*>? = getItem(position)) {
is LibraryHeaderItem -> item.category.name
is LibraryHeaderItem -> {
vibrateOnCategoryChange(item.category.name)
item.category.name
}
is LibraryItem -> {
val text = if (item.manga.isBlank()) return item.header?.category?.name.orEmpty()
else when (getSort(position)) {
@ -259,6 +265,9 @@ class LibraryCategoryAdapter(val controller: LibraryController?) :
getFirstLetter(title)
}
}
if (!isSingleCategory) {
vibrateOnCategoryChange(item.header?.category?.name.orEmpty())
}
when {
isSingleCategory -> text
recyclerView.resources.isLTR -> text + " - " + item.header?.category?.name.orEmpty()
@ -269,6 +278,13 @@ class LibraryCategoryAdapter(val controller: LibraryController?) :
}
}
private fun vibrateOnCategoryChange(categoryName: String) {
if (categoryName != lastCategory) {
lastCategory = categoryName
recyclerView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP)
}
}
private fun getSort(position: Int): LibrarySort {
val header = (getItem(position) as? LibraryItem)?.header
return header?.category?.sortingMode() ?: LibrarySort.DragAndDrop