diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardAdapter.kt index 17791f3be8..9b3b71b0ac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardAdapter.kt @@ -22,6 +22,7 @@ class CatalogueSearchCardAdapter(controller: CatalogueSearchController) : */ interface OnMangaClickListener { fun onMangaClick(manga: Manga) + fun onMangaLongClick(manga: Manga) } } \ No newline at end of file diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardHolder.kt index b67e89394c..450db610d1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchCardHolder.kt @@ -19,6 +19,13 @@ class CatalogueSearchCardHolder(view: View, adapter: CatalogueSearchCardAdapter) adapter.mangaClickListener.onMangaClick(item.manga) } } + itemView.setOnLongClickListener { + val item = adapter.getItem(adapterPosition) + if (item != null) { + adapter.mangaClickListener.onMangaLongClick(item.manga) + } + true + } } fun bind(manga: Manga) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchController.kt index bfae375527..77e23a6ba3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/global_search/CatalogueSearchController.kt @@ -25,7 +25,7 @@ open class CatalogueSearchController(protected val initialQuery: String? = null) /** * Adapter containing search results grouped by lang. */ - private var adapter: CatalogueSearchAdapter? = null + protected var adapter: CatalogueSearchAdapter? = null /** * Called when controller is initialized. @@ -73,6 +73,16 @@ open class CatalogueSearchController(protected val initialQuery: String? = null) router.pushController(MangaController(manga, true).withFadeTransaction()) } + /** + * Called when manga in global search is long clicked. + * + * @param manga clicked item containing manga information. + */ + override fun onMangaLongClick(manga: Manga) { + // Delegate to single click by default. + onMangaClick(manga) + } + /** * Adds items to the options menu. * diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt index d8299cada2..275d3a911a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/SearchController.kt @@ -59,6 +59,11 @@ class SearchController( dialog.showDialog(router) } + override fun onMangaLongClick(manga: Manga) { + // Call parent's default click listener + super.onMangaClick(manga) + } + class MigrationDialog : DialogController() { private val preferences: PreferencesHelper by injectLazy()