From bc871cd2ee0637519f03a1fce474a1e6e9d10765 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Fri, 14 May 2021 13:54:25 -0400 Subject: [PATCH] Dismiss the filter sheet when a button is pressed --- .../tachiyomi/source/online/BrowseSourceFilterHeader.kt | 2 +- .../eu/kanade/tachiyomi/source/online/all/MangaDex.kt | 6 +++--- .../ui/browse/source/browse/SourceFilterSheet.kt | 8 +++++--- app/src/main/java/exh/md/MangaDexFabHeaderAdapter.kt | 4 +++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/BrowseSourceFilterHeader.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/BrowseSourceFilterHeader.kt index 929795a1e..d1fd39a8a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/BrowseSourceFilterHeader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/BrowseSourceFilterHeader.kt @@ -5,5 +5,5 @@ import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.ui.base.controller.BaseController interface BrowseSourceFilterHeader : CatalogueSource { - fun getFilterHeader(controller: BaseController<*>): RecyclerView.Adapter<*> + fun getFilterHeader(controller: BaseController<*>, onClick: () -> Unit): RecyclerView.Adapter<*> } diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt index e4b2a3c4a..4092c4644 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt @@ -234,8 +234,8 @@ class MangaDex(delegate: HttpSource, val context: Context) : return FollowsHandler(baseHttpClient, headers, preferences, mdLang.lang, useLowQualityThumbnail(), mdList).updateFollowStatus(mangaID, followStatus) } - override fun getFilterHeader(controller: BaseController<*>): MangaDexFabHeaderAdapter { - return MangaDexFabHeaderAdapter(controller, this) + override fun getFilterHeader(controller: BaseController<*>, onClick: () -> Unit): MangaDexFabHeaderAdapter { + return MangaDexFabHeaderAdapter(controller, this, onClick) } override suspend fun fetchRandomMangaUrl(): String { @@ -246,7 +246,7 @@ class MangaDex(delegate: HttpSource, val context: Context) : return SimilarHandler(baseHttpClient, mdLang.lang, preferences, useLowQualityThumbnail()).getSimilar(manga) } - //todo remove when mangadex gets it cover api + // todo remove when mangadex gets it cover api override fun fetchSearchManga( page: Int, query: String, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt index 79a644a88..d3833bdea 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt @@ -43,7 +43,8 @@ class SourceFilterSheet( // SY --> searches = searches, source = source, - controller = controller + controller = controller, + dismissSheet = ::dismiss // SY <-- ) private val sheetBehavior: BottomSheetBehavior<*> @@ -93,7 +94,8 @@ class SourceFilterSheet( // SY --> searches: List = emptyList(), source: CatalogueSource? = null, - controller: BaseController<*>? = null + controller: BaseController<*>? = null, + dismissSheet: (() -> Unit)? = null // SY <-- ) : SimpleNavigationView(context, attrs) { @@ -126,7 +128,7 @@ class SourceFilterSheet( // SY --> val mainSource = source?.getMainSource() if (mainSource is BrowseSourceFilterHeader && controller != null) { - adapters += mainSource.getFilterHeader(controller) + adapters += mainSource.getFilterHeader(controller) { dismissSheet?.invoke() } } adapters += savedSearchesAdapter adapters += adapter diff --git a/app/src/main/java/exh/md/MangaDexFabHeaderAdapter.kt b/app/src/main/java/exh/md/MangaDexFabHeaderAdapter.kt index 2827d7dc4..ebef6e427 100644 --- a/app/src/main/java/exh/md/MangaDexFabHeaderAdapter.kt +++ b/app/src/main/java/exh/md/MangaDexFabHeaderAdapter.kt @@ -16,7 +16,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import reactivecircus.flowbinding.android.view.clicks -class MangaDexFabHeaderAdapter(val controller: BaseController<*>, val source: CatalogueSource) : +class MangaDexFabHeaderAdapter(val controller: BaseController<*>, val source: CatalogueSource, val onClick: () -> Unit) : RecyclerView.Adapter() { private lateinit var binding: SourceFilterMangadexHeaderBinding @@ -36,6 +36,7 @@ class MangaDexFabHeaderAdapter(val controller: BaseController<*>, val source: Ca fun bind() { binding.mangadexFollows.setOnClickListener { controller.router.replaceTopController(MangaDexFollowsController(source).withFadeTransaction()) + onClick() } binding.mangadexRandom.clicks() .onEach { @@ -43,6 +44,7 @@ class MangaDexFabHeaderAdapter(val controller: BaseController<*>, val source: Ca (source as? RandomMangaSource)?.fetchRandomMangaUrl() } controller.router.replaceTopController(BrowseSourceController(source, randomMangaUrl).withFadeTransaction()) + onClick() }.launchIn(controller.viewScope) } }