Add click listener to "View all" button
This commit is contained in:
parent
30587099de
commit
1602250415
3 changed files with 26 additions and 5 deletions
|
@ -8,13 +8,18 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import dev.jdtech.jellyfin.databinding.ViewItemBinding
|
||||
import dev.jdtech.jellyfin.models.View
|
||||
|
||||
class ViewListAdapter : ListAdapter<View, ViewListAdapter.ViewViewHolder>(DiffCallback) {
|
||||
class ViewListAdapter(
|
||||
private val onClickListener: OnClickListener
|
||||
) : ListAdapter<View, ViewListAdapter.ViewViewHolder>(DiffCallback) {
|
||||
class ViewViewHolder(private var binding: ViewItemBinding) : RecyclerView.ViewHolder(binding.root) {
|
||||
fun bind(view: View) {
|
||||
fun bind(view: View, onClickListener: OnClickListener) {
|
||||
binding.view = view
|
||||
// TODO: Change to string placeholder
|
||||
binding.viewName.text = "Latest ${view.name}"
|
||||
binding.itemsRecyclerView.adapter = ViewItemListAdapter(fixedWidth = true)
|
||||
binding.viewAll.setOnClickListener {
|
||||
onClickListener.onClick(view)
|
||||
}
|
||||
binding.executePendingBindings()
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +40,10 @@ class ViewListAdapter : ListAdapter<View, ViewListAdapter.ViewViewHolder>(DiffCa
|
|||
|
||||
override fun onBindViewHolder(holder: ViewViewHolder, position: Int) {
|
||||
val view = getItem(position)
|
||||
holder.bind(view)
|
||||
holder.bind(view, onClickListener)
|
||||
}
|
||||
|
||||
class OnClickListener(val clickListener: (view: View) -> Unit) {
|
||||
fun onClick(view: View) = clickListener(view)
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import dev.jdtech.jellyfin.adapters.ViewListAdapter
|
||||
import dev.jdtech.jellyfin.databinding.FragmentHomeBinding
|
||||
import dev.jdtech.jellyfin.viewmodels.HomeViewModel
|
||||
|
@ -21,7 +22,14 @@ class HomeFragment : Fragment() {
|
|||
|
||||
binding.lifecycleOwner = this
|
||||
binding.viewModel = viewModel
|
||||
binding.viewsRecyclerView.adapter = ViewListAdapter()
|
||||
binding.viewsRecyclerView.adapter = ViewListAdapter(ViewListAdapter.OnClickListener {
|
||||
findNavController().navigate(
|
||||
HomeFragmentDirections.actionNavigationHomeToLibraryFragment(
|
||||
it.id,
|
||||
it.name
|
||||
)
|
||||
)
|
||||
})
|
||||
|
||||
viewModel.finishedLoading.observe(viewLifecycleOwner, {
|
||||
if (it) {
|
||||
|
|
|
@ -9,7 +9,11 @@
|
|||
android:id="@+id/navigation_home"
|
||||
android:name="dev.jdtech.jellyfin.fragments.HomeFragment"
|
||||
android:label="@string/title_home"
|
||||
tools:layout="@layout/fragment_home" />
|
||||
tools:layout="@layout/fragment_home" >
|
||||
<action
|
||||
android:id="@+id/action_navigation_home_to_libraryFragment"
|
||||
app:destination="@id/libraryFragment" />
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_media"
|
||||
|
|
Loading…
Reference in a new issue