From 800c2a144c1f01d049a9ee61481c0cf3c63e3cab Mon Sep 17 00:00:00 2001 From: Jannik Date: Mon, 28 Dec 2020 20:17:11 +0100 Subject: [PATCH] polish player episodes list ui closes #16 --- .../java/org/mosad/teapod/player/PlayerViewModel.kt | 1 - .../mosad/teapod/ui/components/EpisodesListPlayer.kt | 1 + .../teapod/util/adapter/PlayerEpisodeItemAdapter.kt | 12 +++++++++++- app/src/main/res/layout/item_episode_player.xml | 8 ++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/player/PlayerViewModel.kt b/app/src/main/java/org/mosad/teapod/player/PlayerViewModel.kt index 99832d1..ace9644 100644 --- a/app/src/main/java/org/mosad/teapod/player/PlayerViewModel.kt +++ b/app/src/main/java/org/mosad/teapod/player/PlayerViewModel.kt @@ -61,7 +61,6 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application) } fun setLanguage(language: Locale) { - println("new language is: $language") currentLanguage = language val seekTime = player.currentPosition diff --git a/app/src/main/java/org/mosad/teapod/ui/components/EpisodesListPlayer.kt b/app/src/main/java/org/mosad/teapod/ui/components/EpisodesListPlayer.kt index 7b85c5e..9f41056 100644 --- a/app/src/main/java/org/mosad/teapod/ui/components/EpisodesListPlayer.kt +++ b/app/src/main/java/org/mosad/teapod/ui/components/EpisodesListPlayer.kt @@ -34,6 +34,7 @@ class EpisodesListPlayer @JvmOverloads constructor( (this.parent as ViewGroup).removeView(this) model.playEpisode(model.media.episodes[position], replace = true) } + adapterRecEpisodes.currentSelected = model.currentEpisode.number - 1 binding.recyclerEpisodesPlayer.adapter = adapterRecEpisodes binding.recyclerEpisodesPlayer.scrollToPosition(model.currentEpisode.number - 1) // number != index diff --git a/app/src/main/java/org/mosad/teapod/util/adapter/PlayerEpisodeItemAdapter.kt b/app/src/main/java/org/mosad/teapod/util/adapter/PlayerEpisodeItemAdapter.kt index f9f34b0..259ca64 100644 --- a/app/src/main/java/org/mosad/teapod/util/adapter/PlayerEpisodeItemAdapter.kt +++ b/app/src/main/java/org/mosad/teapod/util/adapter/PlayerEpisodeItemAdapter.kt @@ -1,6 +1,7 @@ package org.mosad.teapod.util.adapter import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide @@ -13,6 +14,7 @@ import org.mosad.teapod.util.Episode class PlayerEpisodeItemAdapter(private val episodes: List) : RecyclerView.Adapter() { var onImageClick: ((String, Int) -> Unit)? = null + var currentSelected: Int = -1 // -1, since position should never be < 0 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EpisodeViewHolder { return EpisodeViewHolder(ItemEpisodePlayerBinding.inflate(LayoutInflater.from(parent.context), parent, false)) @@ -36,6 +38,11 @@ class PlayerEpisodeItemAdapter(private val episodes: List) : RecyclerVi .apply(RequestOptions.bitmapTransform(RoundedCornersTransformation(10, 0))) .into(holder.binding.imageEpisode) } + + // hide the play icon, if it's the current episode + if (currentSelected == position) { + holder.binding.imageEpisodePlay.visibility = View.GONE + } } override fun getItemCount(): Int { @@ -45,7 +52,10 @@ class PlayerEpisodeItemAdapter(private val episodes: List) : RecyclerVi inner class EpisodeViewHolder(val binding: ItemEpisodePlayerBinding) : RecyclerView.ViewHolder(binding.root) { init { binding.imageEpisode.setOnClickListener { - onImageClick?.invoke(episodes[adapterPosition].title, adapterPosition) + // don't execute, if it's the current episode + if (currentSelected != adapterPosition) { + onImageClick?.invoke(episodes[adapterPosition].title, adapterPosition) + } } } } diff --git a/app/src/main/res/layout/item_episode_player.xml b/app/src/main/res/layout/item_episode_player.xml index da4c9b3..4be2bc5 100644 --- a/app/src/main/res/layout/item_episode_player.xml +++ b/app/src/main/res/layout/item_episode_player.xml @@ -38,6 +38,14 @@ android:textColor="@color/textPrimaryDark" android:textSize="16sp" /> + +