diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt index cfd16732ef..bea19f4819 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt @@ -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