diff --git a/app/src/main/java/dev/jdtech/jellyfin/adapters/ViewListAdapter.kt b/app/src/main/java/dev/jdtech/jellyfin/adapters/ViewListAdapter.kt index 8a924376..d77c60f1 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/adapters/ViewListAdapter.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/adapters/ViewListAdapter.kt @@ -8,13 +8,18 @@ import androidx.recyclerview.widget.RecyclerView import dev.jdtech.jellyfin.databinding.ViewItemBinding import dev.jdtech.jellyfin.models.View -class ViewListAdapter : ListAdapter(DiffCallback) { +class ViewListAdapter( + private val onClickListener: OnClickListener +) : ListAdapter(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(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) } } \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt index aa3382de..cbaff76a 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt @@ -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) { diff --git a/app/src/main/res/navigation/main_navigation.xml b/app/src/main/res/navigation/main_navigation.xml index 570f6d4b..0bf2ec50 100644 --- a/app/src/main/res/navigation/main_navigation.xml +++ b/app/src/main/res/navigation/main_navigation.xml @@ -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" > + +