refactor: clean up adapter callbacks
This commit is contained in:
parent
256371d17c
commit
0512d89bee
19 changed files with 60 additions and 131 deletions
|
@ -10,7 +10,7 @@ import dev.jdtech.jellyfin.databinding.CollectionItemBinding
|
||||||
import dev.jdtech.jellyfin.models.FindroidCollection
|
import dev.jdtech.jellyfin.models.FindroidCollection
|
||||||
|
|
||||||
class CollectionListAdapter(
|
class CollectionListAdapter(
|
||||||
private val onClickListener: OnClickListener,
|
private val onClickListener: (collection: FindroidCollection) -> Unit,
|
||||||
) : ListAdapter<FindroidCollection, CollectionListAdapter.CollectionViewHolder>(DiffCallback) {
|
) : ListAdapter<FindroidCollection, CollectionListAdapter.CollectionViewHolder>(DiffCallback) {
|
||||||
class CollectionViewHolder(private var binding: CollectionItemBinding) :
|
class CollectionViewHolder(private var binding: CollectionItemBinding) :
|
||||||
RecyclerView.ViewHolder(binding.root) {
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
|
@ -43,12 +43,8 @@ class CollectionListAdapter(
|
||||||
override fun onBindViewHolder(holder: CollectionViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: CollectionViewHolder, position: Int) {
|
||||||
val collection = getItem(position)
|
val collection = getItem(position)
|
||||||
holder.itemView.setOnClickListener {
|
holder.itemView.setOnClickListener {
|
||||||
onClickListener.onClick(collection)
|
onClickListener(collection)
|
||||||
}
|
}
|
||||||
holder.bind(collection)
|
holder.bind(collection)
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (collection: FindroidCollection) -> Unit) {
|
|
||||||
fun onClick(collection: FindroidCollection) = clickListener(collection)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ private const val ITEM_VIEW_TYPE_HEADER = 0
|
||||||
private const val ITEM_VIEW_TYPE_EPISODE = 1
|
private const val ITEM_VIEW_TYPE_EPISODE = 1
|
||||||
|
|
||||||
class EpisodeListAdapter(
|
class EpisodeListAdapter(
|
||||||
private val onClickListener: OnClickListener,
|
private val onClickListener: (item: FindroidEpisode) -> Unit,
|
||||||
) :
|
) :
|
||||||
ListAdapter<EpisodeItem, RecyclerView.ViewHolder>(DiffCallback) {
|
ListAdapter<EpisodeItem, RecyclerView.ViewHolder>(DiffCallback) {
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ class EpisodeListAdapter(
|
||||||
ITEM_VIEW_TYPE_EPISODE -> {
|
ITEM_VIEW_TYPE_EPISODE -> {
|
||||||
val item = getItem(position) as EpisodeItem.Episode
|
val item = getItem(position) as EpisodeItem.Episode
|
||||||
holder.itemView.setOnClickListener {
|
holder.itemView.setOnClickListener {
|
||||||
onClickListener.onClick(item.episode)
|
onClickListener(item.episode)
|
||||||
}
|
}
|
||||||
(holder as EpisodeViewHolder).bind(item.episode)
|
(holder as EpisodeViewHolder).bind(item.episode)
|
||||||
}
|
}
|
||||||
|
@ -122,8 +122,4 @@ class EpisodeListAdapter(
|
||||||
is EpisodeItem.Episode -> ITEM_VIEW_TYPE_EPISODE
|
is EpisodeItem.Episode -> ITEM_VIEW_TYPE_EPISODE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (item: FindroidEpisode) -> Unit) {
|
|
||||||
fun onClick(item: FindroidEpisode) = clickListener(item)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,25 +8,24 @@ import androidx.recyclerview.widget.RecyclerView
|
||||||
import dev.jdtech.jellyfin.Constants
|
import dev.jdtech.jellyfin.Constants
|
||||||
import dev.jdtech.jellyfin.databinding.FavoriteSectionBinding
|
import dev.jdtech.jellyfin.databinding.FavoriteSectionBinding
|
||||||
import dev.jdtech.jellyfin.models.FavoriteSection
|
import dev.jdtech.jellyfin.models.FavoriteSection
|
||||||
|
import dev.jdtech.jellyfin.models.FindroidItem
|
||||||
|
|
||||||
class FavoritesListAdapter(
|
class FavoritesListAdapter(
|
||||||
private val onClickListener: ViewItemListAdapter.OnClickListener,
|
private val onItemClickListener: (item: FindroidItem) -> Unit,
|
||||||
private val onEpisodeClickListener: HomeEpisodeListAdapter.OnClickListener,
|
|
||||||
) : ListAdapter<FavoriteSection, FavoritesListAdapter.SectionViewHolder>(DiffCallback) {
|
) : ListAdapter<FavoriteSection, FavoritesListAdapter.SectionViewHolder>(DiffCallback) {
|
||||||
class SectionViewHolder(private var binding: FavoriteSectionBinding) :
|
class SectionViewHolder(private var binding: FavoriteSectionBinding) :
|
||||||
RecyclerView.ViewHolder(binding.root) {
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
fun bind(
|
fun bind(
|
||||||
section: FavoriteSection,
|
section: FavoriteSection,
|
||||||
onClickListener: ViewItemListAdapter.OnClickListener,
|
onItemClickListener: (item: FindroidItem) -> Unit,
|
||||||
onEpisodeClickListener: HomeEpisodeListAdapter.OnClickListener,
|
|
||||||
) {
|
) {
|
||||||
if (section.id == Constants.FAVORITE_TYPE_MOVIES || section.id == Constants.FAVORITE_TYPE_SHOWS) {
|
if (section.id == Constants.FAVORITE_TYPE_MOVIES || section.id == Constants.FAVORITE_TYPE_SHOWS) {
|
||||||
binding.itemsRecyclerView.adapter =
|
binding.itemsRecyclerView.adapter =
|
||||||
ViewItemListAdapter(onClickListener, fixedWidth = true)
|
ViewItemListAdapter(onItemClickListener, fixedWidth = true)
|
||||||
(binding.itemsRecyclerView.adapter as ViewItemListAdapter).submitList(section.items)
|
(binding.itemsRecyclerView.adapter as ViewItemListAdapter).submitList(section.items)
|
||||||
} else if (section.id == Constants.FAVORITE_TYPE_EPISODES) {
|
} else if (section.id == Constants.FAVORITE_TYPE_EPISODES) {
|
||||||
binding.itemsRecyclerView.adapter =
|
binding.itemsRecyclerView.adapter =
|
||||||
HomeEpisodeListAdapter(onEpisodeClickListener)
|
HomeEpisodeListAdapter(onItemClickListener)
|
||||||
(binding.itemsRecyclerView.adapter as HomeEpisodeListAdapter).submitList(section.items)
|
(binding.itemsRecyclerView.adapter as HomeEpisodeListAdapter).submitList(section.items)
|
||||||
}
|
}
|
||||||
binding.sectionName.text = section.name.asString(binding.root.resources)
|
binding.sectionName.text = section.name.asString(binding.root.resources)
|
||||||
|
@ -58,6 +57,6 @@ class FavoritesListAdapter(
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: SectionViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: SectionViewHolder, position: Int) {
|
||||||
val collection = getItem(position)
|
val collection = getItem(position)
|
||||||
holder.bind(collection, onClickListener, onEpisodeClickListener)
|
holder.bind(collection, onItemClickListener)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ import dev.jdtech.jellyfin.models.FindroidMovie
|
||||||
import dev.jdtech.jellyfin.models.isDownloaded
|
import dev.jdtech.jellyfin.models.isDownloaded
|
||||||
import dev.jdtech.jellyfin.core.R as CoreR
|
import dev.jdtech.jellyfin.core.R as CoreR
|
||||||
|
|
||||||
class HomeEpisodeListAdapter(private val onClickListener: OnClickListener) : ListAdapter<FindroidItem, HomeEpisodeListAdapter.EpisodeViewHolder>(DiffCallback) {
|
class HomeEpisodeListAdapter(private val onClickListener: (item: FindroidItem) -> Unit) : ListAdapter<FindroidItem, HomeEpisodeListAdapter.EpisodeViewHolder>(DiffCallback) {
|
||||||
class EpisodeViewHolder(
|
class EpisodeViewHolder(
|
||||||
private var binding: HomeEpisodeItemBinding,
|
private var binding: HomeEpisodeItemBinding,
|
||||||
private val parent: ViewGroup,
|
private val parent: ViewGroup,
|
||||||
|
@ -77,12 +77,8 @@ class HomeEpisodeListAdapter(private val onClickListener: OnClickListener) : Lis
|
||||||
override fun onBindViewHolder(holder: EpisodeViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: EpisodeViewHolder, position: Int) {
|
||||||
val item = getItem(position)
|
val item = getItem(position)
|
||||||
holder.itemView.setOnClickListener {
|
holder.itemView.setOnClickListener {
|
||||||
onClickListener.onClick(item)
|
onClickListener(item)
|
||||||
}
|
}
|
||||||
holder.bind(item)
|
holder.bind(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (item: FindroidItem) -> Unit) {
|
|
||||||
fun onClick(item: FindroidItem) = clickListener(item)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@ import dev.jdtech.jellyfin.databinding.ServerItemBinding
|
||||||
import dev.jdtech.jellyfin.models.Server
|
import dev.jdtech.jellyfin.models.Server
|
||||||
|
|
||||||
class ServerGridAdapter(
|
class ServerGridAdapter(
|
||||||
private val onClickListener: OnClickListener,
|
private val onClickListener: (server: Server) -> Unit,
|
||||||
private val onLongClickListener: OnLongClickListener,
|
private val onLongClickListener: (server: Server) -> Boolean,
|
||||||
) : ListAdapter<Server, ServerGridAdapter.ServerViewHolder>(DiffCallback) {
|
) : ListAdapter<Server, ServerGridAdapter.ServerViewHolder>(DiffCallback) {
|
||||||
class ServerViewHolder(private var binding: ServerItemBinding) :
|
class ServerViewHolder(private var binding: ServerItemBinding) :
|
||||||
RecyclerView.ViewHolder(binding.root) {
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
|
@ -39,19 +39,11 @@ class ServerGridAdapter(
|
||||||
override fun onBindViewHolder(holder: ServerViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ServerViewHolder, position: Int) {
|
||||||
val server = getItem(position)
|
val server = getItem(position)
|
||||||
holder.itemView.setOnClickListener {
|
holder.itemView.setOnClickListener {
|
||||||
onClickListener.onClick(server)
|
onClickListener(server)
|
||||||
}
|
}
|
||||||
holder.itemView.setOnLongClickListener {
|
holder.itemView.setOnLongClickListener {
|
||||||
onLongClickListener.onLongClick(server)
|
onLongClickListener(server)
|
||||||
}
|
}
|
||||||
holder.bind(server)
|
holder.bind(server)
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (server: Server) -> Unit) {
|
|
||||||
fun onClick(server: Server) = clickListener(server)
|
|
||||||
}
|
|
||||||
|
|
||||||
class OnLongClickListener(val clickListener: (server: Server) -> Boolean) {
|
|
||||||
fun onLongClick(server: Server) = clickListener(server)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import dev.jdtech.jellyfin.models.isDownloaded
|
||||||
import dev.jdtech.jellyfin.core.R as CoreR
|
import dev.jdtech.jellyfin.core.R as CoreR
|
||||||
|
|
||||||
class ViewItemListAdapter(
|
class ViewItemListAdapter(
|
||||||
private val onClickListener: OnClickListener,
|
private val onClickListener: (item: FindroidItem) -> Unit,
|
||||||
private val fixedWidth: Boolean = false,
|
private val fixedWidth: Boolean = false,
|
||||||
) : ListAdapter<FindroidItem, ViewItemListAdapter.ItemViewHolder>(DiffCallback) {
|
) : ListAdapter<FindroidItem, ViewItemListAdapter.ItemViewHolder>(DiffCallback) {
|
||||||
|
|
||||||
|
@ -63,12 +63,8 @@ class ViewItemListAdapter(
|
||||||
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
|
||||||
val item = getItem(position)
|
val item = getItem(position)
|
||||||
holder.itemView.setOnClickListener {
|
holder.itemView.setOnClickListener {
|
||||||
onClickListener.onClick(item)
|
onClickListener(item)
|
||||||
}
|
}
|
||||||
holder.bind(item, fixedWidth)
|
holder.bind(item, fixedWidth)
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (item: FindroidItem) -> Unit) {
|
|
||||||
fun onClick(item: FindroidItem) = clickListener(item)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import dev.jdtech.jellyfin.models.isDownloaded
|
||||||
import dev.jdtech.jellyfin.core.R as CoreR
|
import dev.jdtech.jellyfin.core.R as CoreR
|
||||||
|
|
||||||
class ViewItemPagingAdapter(
|
class ViewItemPagingAdapter(
|
||||||
private val onClickListener: OnClickListener,
|
private val onClickListener: (item: FindroidItem) -> Unit,
|
||||||
private val fixedWidth: Boolean = false,
|
private val fixedWidth: Boolean = false,
|
||||||
) : PagingDataAdapter<FindroidItem, ViewItemPagingAdapter.ItemViewHolder>(DiffCallback) {
|
) : PagingDataAdapter<FindroidItem, ViewItemPagingAdapter.ItemViewHolder>(DiffCallback) {
|
||||||
|
|
||||||
|
@ -65,13 +65,9 @@ class ViewItemPagingAdapter(
|
||||||
val item = getItem(position)
|
val item = getItem(position)
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
holder.itemView.setOnClickListener {
|
holder.itemView.setOnClickListener {
|
||||||
onClickListener.onClick(item)
|
onClickListener(item)
|
||||||
}
|
}
|
||||||
holder.bind(item, fixedWidth)
|
holder.bind(item, fixedWidth)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (item: FindroidItem) -> Unit) {
|
|
||||||
fun onClick(item: FindroidItem) = clickListener(item)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||||
import dev.jdtech.jellyfin.databinding.CardOfflineBinding
|
import dev.jdtech.jellyfin.databinding.CardOfflineBinding
|
||||||
import dev.jdtech.jellyfin.databinding.NextUpSectionBinding
|
import dev.jdtech.jellyfin.databinding.NextUpSectionBinding
|
||||||
import dev.jdtech.jellyfin.databinding.ViewItemBinding
|
import dev.jdtech.jellyfin.databinding.ViewItemBinding
|
||||||
|
import dev.jdtech.jellyfin.models.FindroidItem
|
||||||
import dev.jdtech.jellyfin.models.HomeItem
|
import dev.jdtech.jellyfin.models.HomeItem
|
||||||
import dev.jdtech.jellyfin.models.View
|
import dev.jdtech.jellyfin.models.View
|
||||||
import dev.jdtech.jellyfin.core.R as CoreR
|
import dev.jdtech.jellyfin.core.R as CoreR
|
||||||
|
@ -17,18 +18,17 @@ private const val ITEM_VIEW_TYPE_VIEW = 1
|
||||||
private const val ITEM_VIEW_TYPE_OFFLINE_CARD = 2
|
private const val ITEM_VIEW_TYPE_OFFLINE_CARD = 2
|
||||||
|
|
||||||
class ViewListAdapter(
|
class ViewListAdapter(
|
||||||
private val onClickListener: OnClickListener,
|
private val onClickListener: (view: View) -> Unit,
|
||||||
private val onItemClickListener: ViewItemListAdapter.OnClickListener,
|
private val onItemClickListener: (item: FindroidItem) -> Unit,
|
||||||
private val onNextUpClickListener: HomeEpisodeListAdapter.OnClickListener,
|
private val onOnlineClickListener: () -> Unit,
|
||||||
private val onOnlineClickListener: OnClickListenerOfflineCard,
|
|
||||||
) : ListAdapter<HomeItem, RecyclerView.ViewHolder>(DiffCallback) {
|
) : ListAdapter<HomeItem, RecyclerView.ViewHolder>(DiffCallback) {
|
||||||
|
|
||||||
class ViewViewHolder(private var binding: ViewItemBinding) :
|
class ViewViewHolder(private var binding: ViewItemBinding) :
|
||||||
RecyclerView.ViewHolder(binding.root) {
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
fun bind(
|
fun bind(
|
||||||
dataItem: HomeItem.ViewItem,
|
dataItem: HomeItem.ViewItem,
|
||||||
onClickListener: OnClickListener,
|
onClickListener: (view: View) -> Unit,
|
||||||
onItemClickListener: ViewItemListAdapter.OnClickListener,
|
onItemClickListener: (item: FindroidItem) -> Unit,
|
||||||
) {
|
) {
|
||||||
val view = dataItem.view
|
val view = dataItem.view
|
||||||
binding.viewName.text = binding.viewName.context.resources.getString(CoreR.string.latest_library, view.name)
|
binding.viewName.text = binding.viewName.context.resources.getString(CoreR.string.latest_library, view.name)
|
||||||
|
@ -36,14 +36,17 @@ class ViewListAdapter(
|
||||||
ViewItemListAdapter(onItemClickListener, fixedWidth = true)
|
ViewItemListAdapter(onItemClickListener, fixedWidth = true)
|
||||||
(binding.itemsRecyclerView.adapter as ViewItemListAdapter).submitList(view.items)
|
(binding.itemsRecyclerView.adapter as ViewItemListAdapter).submitList(view.items)
|
||||||
binding.viewAll.setOnClickListener {
|
binding.viewAll.setOnClickListener {
|
||||||
onClickListener.onClick(view)
|
onClickListener(view)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class NextUpViewHolder(private var binding: NextUpSectionBinding) :
|
class NextUpViewHolder(private var binding: NextUpSectionBinding) :
|
||||||
RecyclerView.ViewHolder(binding.root) {
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
fun bind(section: HomeItem.Section, onClickListener: HomeEpisodeListAdapter.OnClickListener) {
|
fun bind(
|
||||||
|
section: HomeItem.Section,
|
||||||
|
onClickListener: (item: FindroidItem) -> Unit,
|
||||||
|
) {
|
||||||
binding.sectionName.text = section.homeSection.name.asString(binding.sectionName.context.resources)
|
binding.sectionName.text = section.homeSection.name.asString(binding.sectionName.context.resources)
|
||||||
binding.itemsRecyclerView.adapter = HomeEpisodeListAdapter(onClickListener)
|
binding.itemsRecyclerView.adapter = HomeEpisodeListAdapter(onClickListener)
|
||||||
(binding.itemsRecyclerView.adapter as HomeEpisodeListAdapter).submitList(section.homeSection.items)
|
(binding.itemsRecyclerView.adapter as HomeEpisodeListAdapter).submitList(section.homeSection.items)
|
||||||
|
@ -51,9 +54,9 @@ class ViewListAdapter(
|
||||||
}
|
}
|
||||||
|
|
||||||
class OfflineCardViewHolder(private var binding: CardOfflineBinding) : RecyclerView.ViewHolder(binding.root) {
|
class OfflineCardViewHolder(private var binding: CardOfflineBinding) : RecyclerView.ViewHolder(binding.root) {
|
||||||
fun bind(onClickListener: OnClickListenerOfflineCard) {
|
fun bind(onClickListener: () -> Unit) {
|
||||||
binding.onlineButton.setOnClickListener {
|
binding.onlineButton.setOnClickListener {
|
||||||
onClickListener.onClick()
|
onClickListener()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,7 +106,7 @@ class ViewListAdapter(
|
||||||
when (holder.itemViewType) {
|
when (holder.itemViewType) {
|
||||||
ITEM_VIEW_TYPE_NEXT_UP -> {
|
ITEM_VIEW_TYPE_NEXT_UP -> {
|
||||||
val view = getItem(position) as HomeItem.Section
|
val view = getItem(position) as HomeItem.Section
|
||||||
(holder as NextUpViewHolder).bind(view, onNextUpClickListener)
|
(holder as NextUpViewHolder).bind(view, onItemClickListener)
|
||||||
}
|
}
|
||||||
ITEM_VIEW_TYPE_VIEW -> {
|
ITEM_VIEW_TYPE_VIEW -> {
|
||||||
val view = getItem(position) as HomeItem.ViewItem
|
val view = getItem(position) as HomeItem.ViewItem
|
||||||
|
@ -123,12 +126,4 @@ class ViewListAdapter(
|
||||||
is HomeItem.ViewItem -> ITEM_VIEW_TYPE_VIEW
|
is HomeItem.ViewItem -> ITEM_VIEW_TYPE_VIEW
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnClickListener(val clickListener: (view: View) -> Unit) {
|
|
||||||
fun onClick(view: View) = clickListener(view)
|
|
||||||
}
|
|
||||||
|
|
||||||
class OnClickListenerOfflineCard(val clickListener: () -> Unit) {
|
|
||||||
fun onClick() = clickListener()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,6 @@ import androidx.navigation.fragment.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
||||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
|
||||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
|
||||||
import dev.jdtech.jellyfin.databinding.FragmentFavoriteBinding
|
import dev.jdtech.jellyfin.databinding.FragmentFavoriteBinding
|
||||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||||
import dev.jdtech.jellyfin.models.FindroidEpisode
|
import dev.jdtech.jellyfin.models.FindroidEpisode
|
||||||
|
@ -42,14 +40,9 @@ class CollectionFragment : Fragment() {
|
||||||
): View {
|
): View {
|
||||||
binding = FragmentFavoriteBinding.inflate(inflater, container, false)
|
binding = FragmentFavoriteBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
binding.favoritesRecyclerView.adapter = FavoritesListAdapter(
|
binding.favoritesRecyclerView.adapter = FavoritesListAdapter { item ->
|
||||||
ViewItemListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
navigateToMediaItem(item)
|
||||||
},
|
}
|
||||||
HomeEpisodeListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
|
|
@ -15,8 +15,6 @@ import com.google.android.material.snackbar.Snackbar
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import dev.jdtech.jellyfin.AppPreferences
|
import dev.jdtech.jellyfin.AppPreferences
|
||||||
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
||||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
|
||||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
|
||||||
import dev.jdtech.jellyfin.databinding.FragmentDownloadsBinding
|
import dev.jdtech.jellyfin.databinding.FragmentDownloadsBinding
|
||||||
import dev.jdtech.jellyfin.models.FindroidItem
|
import dev.jdtech.jellyfin.models.FindroidItem
|
||||||
import dev.jdtech.jellyfin.models.FindroidMovie
|
import dev.jdtech.jellyfin.models.FindroidMovie
|
||||||
|
@ -43,14 +41,9 @@ class DownloadsFragment : Fragment() {
|
||||||
): View {
|
): View {
|
||||||
binding = FragmentDownloadsBinding.inflate(inflater, container, false)
|
binding = FragmentDownloadsBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
binding.downloadsRecyclerView.adapter = FavoritesListAdapter(
|
binding.downloadsRecyclerView.adapter = FavoritesListAdapter { item ->
|
||||||
ViewItemListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
navigateToMediaItem(item)
|
||||||
},
|
}
|
||||||
HomeEpisodeListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
|
|
@ -13,8 +13,6 @@ import androidx.lifecycle.repeatOnLifecycle
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
||||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
|
||||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
|
||||||
import dev.jdtech.jellyfin.databinding.FragmentFavoriteBinding
|
import dev.jdtech.jellyfin.databinding.FragmentFavoriteBinding
|
||||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||||
import dev.jdtech.jellyfin.models.FindroidEpisode
|
import dev.jdtech.jellyfin.models.FindroidEpisode
|
||||||
|
@ -41,14 +39,9 @@ class FavoriteFragment : Fragment() {
|
||||||
): View {
|
): View {
|
||||||
binding = FragmentFavoriteBinding.inflate(inflater, container, false)
|
binding = FragmentFavoriteBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
binding.favoritesRecyclerView.adapter = FavoritesListAdapter(
|
binding.favoritesRecyclerView.adapter = FavoritesListAdapter { item ->
|
||||||
ViewItemListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
navigateToMediaItem(item)
|
||||||
},
|
}
|
||||||
HomeEpisodeListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
|
|
@ -20,8 +20,6 @@ import androidx.lifecycle.repeatOnLifecycle
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import dev.jdtech.jellyfin.AppPreferences
|
import dev.jdtech.jellyfin.AppPreferences
|
||||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
|
||||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
|
||||||
import dev.jdtech.jellyfin.adapters.ViewListAdapter
|
import dev.jdtech.jellyfin.adapters.ViewListAdapter
|
||||||
import dev.jdtech.jellyfin.databinding.FragmentHomeBinding
|
import dev.jdtech.jellyfin.databinding.FragmentHomeBinding
|
||||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||||
|
@ -146,14 +144,11 @@ class HomeFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.viewsRecyclerView.adapter = ViewListAdapter(
|
binding.viewsRecyclerView.adapter = ViewListAdapter(
|
||||||
onClickListener = ViewListAdapter.OnClickListener { navigateToLibraryFragment(it) },
|
onClickListener = { navigateToLibraryFragment(it) },
|
||||||
onItemClickListener = ViewItemListAdapter.OnClickListener {
|
onItemClickListener = {
|
||||||
navigateToMediaItem(it)
|
navigateToMediaItem(it)
|
||||||
},
|
},
|
||||||
onNextUpClickListener = HomeEpisodeListAdapter.OnClickListener { item ->
|
onOnlineClickListener = {
|
||||||
navigateToMediaItem(item)
|
|
||||||
},
|
|
||||||
onOnlineClickListener = ViewListAdapter.OnClickListenerOfflineCard {
|
|
||||||
appPreferences.offlineMode = false
|
appPreferences.offlineMode = false
|
||||||
activity?.restart()
|
activity?.restart()
|
||||||
},
|
},
|
||||||
|
|
|
@ -115,7 +115,7 @@ class LibraryFragment : Fragment() {
|
||||||
|
|
||||||
binding.itemsRecyclerView.adapter =
|
binding.itemsRecyclerView.adapter =
|
||||||
ViewItemPagingAdapter(
|
ViewItemPagingAdapter(
|
||||||
ViewItemPagingAdapter.OnClickListener { item ->
|
{ item ->
|
||||||
navigateToItem(item)
|
navigateToItem(item)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -47,11 +47,9 @@ class MediaFragment : Fragment() {
|
||||||
binding = FragmentMediaBinding.inflate(inflater, container, false)
|
binding = FragmentMediaBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
binding.viewsRecyclerView.adapter =
|
binding.viewsRecyclerView.adapter =
|
||||||
CollectionListAdapter(
|
CollectionListAdapter { library ->
|
||||||
CollectionListAdapter.OnClickListener { library ->
|
|
||||||
navigateToLibraryFragment(library)
|
navigateToLibraryFragment(library)
|
||||||
},
|
}
|
||||||
)
|
|
||||||
|
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
|
|
@ -120,7 +120,7 @@ internal class PersonDetailFragment : Fragment() {
|
||||||
|
|
||||||
private fun adapter() = ViewItemListAdapter(
|
private fun adapter() = ViewItemListAdapter(
|
||||||
fixedWidth = true,
|
fixedWidth = true,
|
||||||
onClickListener = ViewItemListAdapter.OnClickListener { navigateToMediaItem(it) },
|
onClickListener = { navigateToMediaItem(it) },
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun setupOverviewExpansion() = binding.overview.post {
|
private fun setupOverviewExpansion() = binding.overview.post {
|
||||||
|
|
|
@ -14,8 +14,6 @@ import androidx.navigation.fragment.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
import dev.jdtech.jellyfin.adapters.FavoritesListAdapter
|
||||||
import dev.jdtech.jellyfin.adapters.HomeEpisodeListAdapter
|
|
||||||
import dev.jdtech.jellyfin.adapters.ViewItemListAdapter
|
|
||||||
import dev.jdtech.jellyfin.databinding.FragmentSearchResultBinding
|
import dev.jdtech.jellyfin.databinding.FragmentSearchResultBinding
|
||||||
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
import dev.jdtech.jellyfin.dialogs.ErrorDialogFragment
|
||||||
import dev.jdtech.jellyfin.models.FindroidEpisode
|
import dev.jdtech.jellyfin.models.FindroidEpisode
|
||||||
|
@ -43,14 +41,9 @@ class SearchResultFragment : Fragment() {
|
||||||
): View {
|
): View {
|
||||||
binding = FragmentSearchResultBinding.inflate(inflater, container, false)
|
binding = FragmentSearchResultBinding.inflate(inflater, container, false)
|
||||||
|
|
||||||
binding.searchResultsRecyclerView.adapter = FavoritesListAdapter(
|
binding.searchResultsRecyclerView.adapter = FavoritesListAdapter { item ->
|
||||||
ViewItemListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
navigateToMediaItem(item)
|
||||||
},
|
}
|
||||||
HomeEpisodeListAdapter.OnClickListener { item ->
|
|
||||||
navigateToMediaItem(item)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
|
|
|
@ -85,11 +85,9 @@ class SeasonFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.episodesRecyclerView.adapter =
|
binding.episodesRecyclerView.adapter =
|
||||||
EpisodeListAdapter(
|
EpisodeListAdapter { episode ->
|
||||||
EpisodeListAdapter.OnClickListener { episode ->
|
|
||||||
navigateToEpisodeBottomSheetFragment(episode)
|
navigateToEpisodeBottomSheetFragment(episode)
|
||||||
},
|
}
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
|
|
@ -33,10 +33,10 @@ class ServerSelectFragment : Fragment() {
|
||||||
|
|
||||||
binding.serversRecyclerView.adapter =
|
binding.serversRecyclerView.adapter =
|
||||||
ServerGridAdapter(
|
ServerGridAdapter(
|
||||||
ServerGridAdapter.OnClickListener { server ->
|
onClickListener = { server ->
|
||||||
viewModel.connectToServer(server)
|
viewModel.connectToServer(server)
|
||||||
},
|
},
|
||||||
ServerGridAdapter.OnLongClickListener { server ->
|
onLongClickListener = { server ->
|
||||||
DeleteServerDialogFragment(viewModel, server).show(
|
DeleteServerDialogFragment(viewModel, server).show(
|
||||||
parentFragmentManager,
|
parentFragmentManager,
|
||||||
"deleteServer",
|
"deleteServer",
|
||||||
|
|
|
@ -120,7 +120,7 @@ class ShowFragment : Fragment() {
|
||||||
|
|
||||||
binding.seasonsRecyclerView.adapter =
|
binding.seasonsRecyclerView.adapter =
|
||||||
ViewItemListAdapter(
|
ViewItemListAdapter(
|
||||||
ViewItemListAdapter.OnClickListener { season ->
|
{ season ->
|
||||||
if (season is FindroidSeason) navigateToSeasonFragment(season)
|
if (season is FindroidSeason) navigateToSeasonFragment(season)
|
||||||
},
|
},
|
||||||
fixedWidth = true,
|
fixedWidth = true,
|
||||||
|
|
Loading…
Reference in a new issue