play episode on poster click

closes #7
This commit is contained in:
Jannik 2020-10-16 10:05:11 +02:00
parent 474b72df49
commit 085b2013ab
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
3 changed files with 27 additions and 9 deletions

View File

@ -50,7 +50,7 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
Glide.with(requireContext()).load(backdropUrl) Glide.with(requireContext()).load(backdropUrl)
.apply(RequestOptions.placeholderOf(ColorDrawable(Color.DKGRAY))) .apply(RequestOptions.placeholderOf(ColorDrawable(Color.DKGRAY)))
.apply(RequestOptions.bitmapTransform(BlurTransformation(25, 3))) .apply(RequestOptions.bitmapTransform(BlurTransformation(20, 3)))
.into(image_backdrop) .into(image_backdrop)
Glide.with(requireContext()).load(posterUrl) Glide.with(requireContext()).load(posterUrl)
@ -103,7 +103,7 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
// set onItemClick only in adapter is initialized // set onItemClick only in adapter is initialized
if (this::adapterRecEpisodes.isInitialized) { if (this::adapterRecEpisodes.isInitialized) {
adapterRecEpisodes.onItemClick = { _, position -> adapterRecEpisodes.onImageClick = { _, position ->
playStream(media.episodes[position].streamUrl) playStream(media.episodes[position].streamUrl)
// update watched state // update watched state

View File

@ -15,6 +15,7 @@ import org.mosad.teapod.util.Episode
class EpisodeItemAdapter(private val episodes: List<Episode>, private val context: Context) : RecyclerView.Adapter<EpisodeItemAdapter.MyViewHolder>() { class EpisodeItemAdapter(private val episodes: List<Episode>, private val context: Context) : RecyclerView.Adapter<EpisodeItemAdapter.MyViewHolder>() {
var onItemClick: ((String, Int) -> Unit)? = null var onItemClick: ((String, Int) -> Unit)? = null
var onImageClick: ((String, Int) -> Unit)? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_episode, parent, false) val view = LayoutInflater.from(parent.context).inflate(R.layout.item_episode, parent, false)
@ -54,6 +55,10 @@ class EpisodeItemAdapter(private val episodes: List<Episode>, private val contex
view.setOnClickListener { view.setOnClickListener {
onItemClick?.invoke(episodes[adapterPosition].title, adapterPosition) onItemClick?.invoke(episodes[adapterPosition].title, adapterPosition)
} }
view.image_episode.setOnClickListener {
onImageClick?.invoke(episodes[adapterPosition].title, adapterPosition)
}
} }
} }
} }

View File

@ -14,13 +14,26 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<com.google.android.material.imageview.ShapeableImageView <FrameLayout
android:id="@+id/image_episode" android:layout_width="wrap_content"
android:layout_width="128dp" android:layout_height="wrap_content">
android:layout_height="72dp"
android:contentDescription="@string/component_poster_desc" <com.google.android.material.imageview.ShapeableImageView
app:srcCompat="@color/md_disabled_text_dark_theme" android:id="@+id/image_episode"
app:shapeAppearance="@style/ShapeAppearance.Teapod.RoundedPoster"/> android:layout_width="128dp"
android:layout_height="72dp"
android:contentDescription="@string/component_poster_desc"
app:shapeAppearance="@style/ShapeAppearance.Teapod.RoundedPoster"
app:srcCompat="@color/md_disabled_text_dark_theme" />
<ImageView
android:id="@+id/image_episode_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_baseline_play_arrow_24"
app:tint="#FFFFFF" />
</FrameLayout>
<TextView <TextView
android:id="@+id/text_episode_title" android:id="@+id/text_episode_title"