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)
.apply(RequestOptions.placeholderOf(ColorDrawable(Color.DKGRAY)))
.apply(RequestOptions.bitmapTransform(BlurTransformation(25, 3)))
.apply(RequestOptions.bitmapTransform(BlurTransformation(20, 3)))
.into(image_backdrop)
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
if (this::adapterRecEpisodes.isInitialized) {
adapterRecEpisodes.onItemClick = { _, position ->
adapterRecEpisodes.onImageClick = { _, position ->
playStream(media.episodes[position].streamUrl)
// 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>() {
var onItemClick: ((String, Int) -> Unit)? = null
var onImageClick: ((String, Int) -> Unit)? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
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 {
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:orientation="horizontal">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image_episode"
android:layout_width="128dp"
android:layout_height="72dp"
android:contentDescription="@string/component_poster_desc"
app:srcCompat="@color/md_disabled_text_dark_theme"
app:shapeAppearance="@style/ShapeAppearance.Teapod.RoundedPoster"/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image_episode"
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
android:id="@+id/text_episode_title"