polish player episodes list ui

closes #16
This commit is contained in:
Jannik 2020-12-28 20:17:11 +01:00
parent 6bec0512ba
commit 800c2a144c
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
4 changed files with 20 additions and 2 deletions

View File

@ -61,7 +61,6 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
} }
fun setLanguage(language: Locale) { fun setLanguage(language: Locale) {
println("new language is: $language")
currentLanguage = language currentLanguage = language
val seekTime = player.currentPosition val seekTime = player.currentPosition

View File

@ -34,6 +34,7 @@ class EpisodesListPlayer @JvmOverloads constructor(
(this.parent as ViewGroup).removeView(this) (this.parent as ViewGroup).removeView(this)
model.playEpisode(model.media.episodes[position], replace = true) model.playEpisode(model.media.episodes[position], replace = true)
} }
adapterRecEpisodes.currentSelected = model.currentEpisode.number - 1
binding.recyclerEpisodesPlayer.adapter = adapterRecEpisodes binding.recyclerEpisodesPlayer.adapter = adapterRecEpisodes
binding.recyclerEpisodesPlayer.scrollToPosition(model.currentEpisode.number - 1) // number != index binding.recyclerEpisodesPlayer.scrollToPosition(model.currentEpisode.number - 1) // number != index

View File

@ -1,6 +1,7 @@
package org.mosad.teapod.util.adapter package org.mosad.teapod.util.adapter
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
@ -13,6 +14,7 @@ import org.mosad.teapod.util.Episode
class PlayerEpisodeItemAdapter(private val episodes: List<Episode>) : RecyclerView.Adapter<PlayerEpisodeItemAdapter.EpisodeViewHolder>() { class PlayerEpisodeItemAdapter(private val episodes: List<Episode>) : RecyclerView.Adapter<PlayerEpisodeItemAdapter.EpisodeViewHolder>() {
var onImageClick: ((String, Int) -> Unit)? = null 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 { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EpisodeViewHolder {
return EpisodeViewHolder(ItemEpisodePlayerBinding.inflate(LayoutInflater.from(parent.context), parent, false)) return EpisodeViewHolder(ItemEpisodePlayerBinding.inflate(LayoutInflater.from(parent.context), parent, false))
@ -36,6 +38,11 @@ class PlayerEpisodeItemAdapter(private val episodes: List<Episode>) : RecyclerVi
.apply(RequestOptions.bitmapTransform(RoundedCornersTransformation(10, 0))) .apply(RequestOptions.bitmapTransform(RoundedCornersTransformation(10, 0)))
.into(holder.binding.imageEpisode) .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 { override fun getItemCount(): Int {
@ -45,7 +52,10 @@ class PlayerEpisodeItemAdapter(private val episodes: List<Episode>) : RecyclerVi
inner class EpisodeViewHolder(val binding: ItemEpisodePlayerBinding) : RecyclerView.ViewHolder(binding.root) { inner class EpisodeViewHolder(val binding: ItemEpisodePlayerBinding) : RecyclerView.ViewHolder(binding.root) {
init { init {
binding.imageEpisode.setOnClickListener { 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)
}
} }
} }
} }

View File

@ -38,6 +38,14 @@
android:textColor="@color/textPrimaryDark" android:textColor="@color/textPrimaryDark"
android:textSize="16sp" /> android:textSize="16sp" />
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="@color/textSecondaryDark" />
<TextView <TextView
android:id="@+id/text_episode_desc2" android:id="@+id/text_episode_desc2"
android:layout_width="match_parent" android:layout_width="match_parent"