Migrate source filter sheet to Compose (#9135)

(cherry picked from commit 92132c59f5417ef81a7bbba6849be849282fc25e)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/components/SettingsItems.kt
#	app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/filter/GroupItem.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/filter/SectionItems.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/SimpleNavigationView.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/listener/IgnoreFirstSpinnerListener.kt
#	app/src/main/res/drawable/empty_drawable_32dp.xml
#	app/src/main/res/drawable/ic_check_box_24dp.xml
#	app/src/main/res/drawable/ic_check_box_outline_blank_24dp.xml
#	app/src/main/res/drawable/ic_check_box_x_24dp.xml
#	app/src/main/res/layout/navigation_view_checkbox.xml
#	app/src/main/res/layout/navigation_view_checkedtext.xml
#	app/src/main/res/layout/navigation_view_group.xml
#	app/src/main/res/layout/navigation_view_radio.xml
#	app/src/main/res/layout/navigation_view_spinner.xml
#	app/src/main/res/layout/navigation_view_text.xml
#	app/src/main/res/layout/source_filter_sheet.xml
This commit is contained in:
arkon
2023-02-23 22:32:40 -05:00
committed by Jobobby04
parent 1a5bf9f763
commit 314a740906
53 changed files with 1122 additions and 2032 deletions
@@ -1,54 +0,0 @@
package exh.md
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import cafe.adriel.voyager.navigator.Navigator
import eu.kanade.tachiyomi.databinding.SourceFilterMangadexHeaderBinding
import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.online.RandomMangaSource
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
import exh.md.follows.MangaDexFollowsScreen
import tachiyomi.core.util.lang.launchUI
import tachiyomi.core.util.lang.withIOContext
class MangaDexFabHeaderAdapter(val navigator: Navigator, val source: CatalogueSource, val onClick: () -> Unit) :
RecyclerView.Adapter<MangaDexFabHeaderAdapter.SavedSearchesViewHolder>() {
private lateinit var binding: SourceFilterMangadexHeaderBinding
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SavedSearchesViewHolder {
binding = SourceFilterMangadexHeaderBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return SavedSearchesViewHolder(binding.root)
}
override fun getItemCount(): Int = 1
override fun onBindViewHolder(holder: SavedSearchesViewHolder, position: Int) {
holder.bind()
}
inner class SavedSearchesViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun bind() {
binding.mangadexFollows.setOnClickListener {
navigator.replace(MangaDexFollowsScreen(source.id))
onClick()
}
binding.mangadexRandom.setOnClickListener {
launchUI {
val randomMangaUrl = withIOContext {
(source as? RandomMangaSource)?.fetchRandomMangaUrl()
}
navigator.replace(
BrowseSourceScreen(
source.id,
"id:$randomMangaUrl",
),
)
onClick()
}
}
}
}
}
@@ -1,7 +1,5 @@
package exh.md.follows
import android.content.Context
import cafe.adriel.voyager.navigator.Navigator
import eu.kanade.domain.source.model.SourcePagingSourceType
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.online.all.MangaDex
@@ -10,6 +8,7 @@ import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.source.getMainSource
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.update
import tachiyomi.domain.manga.model.Manga
class MangaDexFollowsScreenModel(sourceId: Long) : BrowseSourceScreenModel(sourceId, null) {
@@ -22,7 +21,7 @@ class MangaDexFollowsScreenModel(sourceId: Long) : BrowseSourceScreenModel(sourc
return map { it to metadata }
}
override fun initFilterSheet(context: Context, navigator: Navigator) {
// No-op: we don't allow filtering in recs
init {
mutableState.update { it.copy(filterable = false) }
}
}
@@ -1,7 +1,5 @@
package exh.md.similar
import android.content.Context
import cafe.adriel.voyager.navigator.Navigator
import eu.kanade.domain.source.model.SourcePagingSourceType
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.online.all.MangaDex
@@ -10,6 +8,7 @@ import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.source.getMainSource
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.runBlocking
import tachiyomi.domain.manga.interactor.GetManga
import tachiyomi.domain.manga.model.Manga
@@ -32,7 +31,7 @@ class MangaDexSimilarScreenModel(
return map { it to metadata }
}
override fun initFilterSheet(context: Context, navigator: Navigator) {
// No-op: we don't allow filtering in recs
init {
mutableState.update { it.copy(filterable = false) }
}
}