mirror of
https://github.com/mediathekview/zapp.git
synced 2024-09-20 04:12:14 +02:00
Do not display more button when list is empty
This commit is contained in:
parent
5da479de62
commit
b62a6f54c5
@ -32,6 +32,19 @@ class PersonalFragment : Fragment(), MenuProvider {
|
||||
private lateinit var continueWatchingAdapter: MediathekShowListAdapter
|
||||
private lateinit var bookmarkAdapter: MediathekShowListAdapter
|
||||
|
||||
private val downloadsHeaderAdapter = HeaderAdapater(
|
||||
R.string.activity_main_tab_downloads,
|
||||
R.drawable.ic_baseline_save_alt_24,
|
||||
) { navigateToDownloads() }
|
||||
private val continueWatchingHeaderAdapter = HeaderAdapater(
|
||||
R.string.activity_main_tab_continue_watching,
|
||||
R.drawable.ic_outline_play_circle_24
|
||||
) { navigateToDownloads() }
|
||||
private val bookmarksHeaderAdapter = HeaderAdapater(
|
||||
R.string.activity_main_tab_bookmarks,
|
||||
R.drawable.ic_outline_bookmarks_24
|
||||
) { navigateToDownloads() }
|
||||
|
||||
private val downloadsLoadStatusAdapter = LoadStatusAdapter()
|
||||
private val continueWatchingLoadStatusAdapter = LoadStatusAdapter()
|
||||
private val bookmarkLoadStatusAdapter = LoadStatusAdapter()
|
||||
@ -63,22 +76,13 @@ class PersonalFragment : Fragment(), MenuProvider {
|
||||
MediathekShowListAdapter(lifecycleScope, MediathekItemType.Bookmark, showClickListener)
|
||||
|
||||
outerAdapter = ConcatAdapter(
|
||||
HeaderAdapater(
|
||||
R.string.activity_main_tab_downloads,
|
||||
R.drawable.ic_baseline_save_alt_24
|
||||
) { navigateToDownloads() },
|
||||
downloadsHeaderAdapter,
|
||||
downloadsAdapter,
|
||||
downloadsLoadStatusAdapter,
|
||||
HeaderAdapater(
|
||||
R.string.activity_main_tab_continue_watching,
|
||||
R.drawable.ic_outline_play_circle_24
|
||||
) { navigateToContinueWatching() },
|
||||
continueWatchingHeaderAdapter,
|
||||
continueWatchingAdapter,
|
||||
continueWatchingLoadStatusAdapter,
|
||||
HeaderAdapater(
|
||||
R.string.activity_main_tab_bookmarks,
|
||||
R.drawable.ic_outline_bookmarks_24
|
||||
) { navigateToBookmarks() },
|
||||
bookmarksHeaderAdapter,
|
||||
bookmarkAdapter,
|
||||
bookmarkLoadStatusAdapter,
|
||||
)
|
||||
@ -93,23 +97,26 @@ class PersonalFragment : Fragment(), MenuProvider {
|
||||
|
||||
binding.list.adapter = outerAdapter
|
||||
|
||||
lifecycleScope.launch {
|
||||
lifecycleScope.launchWhenCreated {
|
||||
viewModel.downloadsFlow.collect {
|
||||
downloadsAdapter.setShows(it)
|
||||
downloadsHeaderAdapter.setShowMoreButton(it.isNotEmpty())
|
||||
downloadsLoadStatusAdapter.onShowsLoaded(it.size)
|
||||
}
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
lifecycleScope.launchWhenCreated {
|
||||
viewModel.continueWatchingFlow.collect {
|
||||
continueWatchingAdapter.setShows(it)
|
||||
continueWatchingHeaderAdapter.setShowMoreButton(it.isNotEmpty())
|
||||
continueWatchingLoadStatusAdapter.onShowsLoaded(it.size)
|
||||
}
|
||||
}
|
||||
|
||||
lifecycleScope.launch {
|
||||
lifecycleScope.launchWhenCreated {
|
||||
viewModel.bookmarkFlow.collect {
|
||||
bookmarkAdapter.setShows(it)
|
||||
bookmarksHeaderAdapter.setShowMoreButton(it.isNotEmpty())
|
||||
bookmarkLoadStatusAdapter.onShowsLoaded(it.size)
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,17 @@ class HeaderAdapater(
|
||||
private val listener: Listener?,
|
||||
) : RecyclerView.Adapter<HeaderViewHolder>() {
|
||||
|
||||
private var showMoreButton = false
|
||||
|
||||
fun setShowMoreButton(showMoreButton: Boolean) {
|
||||
if (this.showMoreButton == showMoreButton) {
|
||||
return
|
||||
}
|
||||
|
||||
this.showMoreButton = showMoreButton
|
||||
notifyItemChanged(1)
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HeaderViewHolder {
|
||||
val layoutInflater = LayoutInflater.from(parent.context)
|
||||
val binding = PersonalFragmentHeaderItemBinding.inflate(layoutInflater, parent, false)
|
||||
@ -30,7 +41,7 @@ class HeaderAdapater(
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: HeaderViewHolder, position: Int) {
|
||||
holder.bind(labelResId, iconResId)
|
||||
holder.bind(labelResId, iconResId, showMoreButton)
|
||||
}
|
||||
|
||||
override fun getItemCount() = 1
|
||||
|
@ -2,6 +2,7 @@ package de.christinecoenen.code.zapp.app.personal.adapter
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import de.christinecoenen.code.zapp.databinding.PersonalFragmentHeaderItemBinding
|
||||
|
||||
@ -12,9 +13,11 @@ class HeaderViewHolder(
|
||||
fun bind(
|
||||
@StringRes titleResId: Int,
|
||||
@DrawableRes iconResId: Int,
|
||||
showMoreButton: Boolean,
|
||||
) {
|
||||
binding.title.setText(titleResId)
|
||||
binding.icon.setImageResource(iconResId)
|
||||
binding.more.isVisible = showMoreButton
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user