Dismiss the filter sheet when a button is pressed
This commit is contained in:
parent
65f66630cf
commit
bc871cd2ee
@ -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<*>
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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<EXHSavedSearch> = 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
|
||||
|
@ -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<MangaDexFabHeaderAdapter.SavedSearchesViewHolder>() {
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user