From e80e81af0f8b67e1423ac9c3769bdc6e1c953f94 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sun, 10 Apr 2022 17:46:02 +0200 Subject: [PATCH] use MediaItemListAdapter in MediaFragmentSimilar instead of MediaItemAdapter --- .../main/fragments/MediaFragmentSimilar.kt | 43 +++++++++++++------ .../teapod/util/adapter/MediaItemAdapter.kt | 1 + 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentSimilar.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentSimilar.kt index c8fa568..ab65ab5 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentSimilar.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragmentSimilar.kt @@ -1,3 +1,25 @@ +/** + * Teapod + * + * Copyright 2020-2022 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + package org.mosad.teapod.ui.activity.main.fragments import android.os.Bundle @@ -8,17 +30,15 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import org.mosad.teapod.databinding.FragmentMediaSimilarBinding import org.mosad.teapod.ui.activity.main.viewmodel.MediaFragmentViewModel -import org.mosad.teapod.util.adapter.MediaItemAdapter +import org.mosad.teapod.util.adapter.MediaItemListAdapter import org.mosad.teapod.util.decoration.MediaItemDecoration import org.mosad.teapod.util.showFragment import org.mosad.teapod.util.toItemMediaList class MediaFragmentSimilar : Fragment() { - private lateinit var binding: FragmentMediaSimilarBinding private val model: MediaFragmentViewModel by viewModels({requireParentFragment()}) - - private lateinit var adapterSimilar: MediaItemAdapter + private lateinit var binding: FragmentMediaSimilarBinding override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { binding = FragmentMediaSimilarBinding.inflate(inflater, container, false) @@ -28,15 +48,14 @@ class MediaFragmentSimilar : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - adapterSimilar = MediaItemAdapter(model.similarTo.toItemMediaList()) - binding.recyclerMediaSimilar.adapter = adapterSimilar binding.recyclerMediaSimilar.addItemDecoration(MediaItemDecoration(9)) - - // set onItemClick only in adapter is initialized - if (this::adapterSimilar.isInitialized) { - adapterSimilar.onItemClick = { mediaId, _ -> - activity?.showFragment(MediaFragment(mediaId)) + binding.recyclerMediaSimilar.adapter = MediaItemListAdapter( + MediaItemListAdapter.OnClickListener { + activity?.showFragment(MediaFragment(it.id)) } - } + ) + + val adapterSimilar = binding.recyclerMediaSimilar.adapter as MediaItemListAdapter + adapterSimilar.submitList(model.similarTo.toItemMediaList()) } } \ No newline at end of file diff --git a/app/src/main/java/org/mosad/teapod/util/adapter/MediaItemAdapter.kt b/app/src/main/java/org/mosad/teapod/util/adapter/MediaItemAdapter.kt index 1097426..582204e 100644 --- a/app/src/main/java/org/mosad/teapod/util/adapter/MediaItemAdapter.kt +++ b/app/src/main/java/org/mosad/teapod/util/adapter/MediaItemAdapter.kt @@ -7,6 +7,7 @@ import com.bumptech.glide.Glide import org.mosad.teapod.databinding.ItemMediaBinding import org.mosad.teapod.util.ItemMedia +@Deprecated("Use MediaItemListAdapter instead") class MediaItemAdapter(private val items: List) : RecyclerView.Adapter() { var onItemClick: ((id: String, position: Int) -> Unit)? = null