Fix resume movie/series on TV

This commit is contained in:
KingLucius 2024-02-20 17:45:55 +02:00
parent 93d81ea038
commit a4ff942be2
2 changed files with 15 additions and 48 deletions

View file

@ -443,9 +443,17 @@ class ResultFragmentTv : Fragment() {
observeNullable(viewModel.resumeWatching) { resume ->
binding?.apply {
// > resultResumeSeries is visible when not null
if (resume == null) {
resultResumeSeries.isVisible = false
return@observeNullable
}
// show progress no matter if series or movie
resume?.progress?.let { progress ->
resume.progress?.let { progress ->
resultResumeSeriesProgressText.setText(progress.progressLeft)
resultResumeSeriesProgressText.isVisible = true
resultResumeSeriesProgress.apply {
isVisible = true
this.max = progress.maxProgress
@ -456,35 +464,14 @@ class ResultFragmentTv : Fragment() {
resultResumeProgressHolder.isVisible = false
}
// if movie then hide both as movie button is
// always visible on movies, this is done in movie observe
if (resume?.isMovie == true) {
resultPlaySeries.isVisible = false
resultResumeSeries.isVisible = false
return@observeNullable
}
// if series then
// > resultPlaySeries is visible when null
// > resultResumeSeries is visible when not null
if (resume == null) {
resultPlaySeries.isVisible = true
resultResumeSeries.isVisible = false
return@observeNullable
}
resultPlaySeries.isVisible = false
resultPlayMovie.isVisible = false
resultResumeSeries.isVisible = true
focusPlayButton()
resultResumeSeries.text =
if (resume.isMovie) context?.getString(R.string.play_movie_button) else context?.getNameFull(
null, // resume.result.name, we don't want episode title
resume.result.episode,
resume.result.season
)
if (resume.isMovie) context?.getString(R.string.resume) else "${context?.getString(R.string.resume)} S${resume.result.season}:E${resume.result.episode}"
resultResumeSeries.setOnClickListener {
viewModel.handleAction(
@ -501,7 +488,6 @@ class ResultFragmentTv : Fragment() {
)
return@setOnLongClickListener true
}
}
}
@ -621,7 +607,6 @@ class ResultFragmentTv : Fragment() {
binding?.apply {
resultPlayMovie.isVisible = data is Resource.Success
resultPlaySeries.isVisible = data == null
seriesHolder.isVisible = data == null
resultEpisodesShow.isVisible = data == null
(data as? Resource.Success)?.value?.let { (text, ep) ->

View file

@ -229,13 +229,6 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:orientation="horizontal"
android:layout_marginTop="10dp">
<LinearLayout
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_weight="0"
android:orientation="vertical">
<LinearLayout
android:id="@+id/result_movie_parent"
android:layout_width="wrap_content"
@ -243,6 +236,7 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:layout_gravity="start"
android:animateLayoutChanges="true"
android:orientation="vertical"
android:layout_marginEnd="10dp"
tools:visibility="visible">
<com.google.android.material.button.MaterialButton
@ -256,12 +250,6 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:visibility="visible"
app:icon="@drawable/ic_baseline_play_arrow_24" />
<LinearLayout
android:id="@+id/series_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.button.MaterialButton
android:id="@+id/result_play_series"
style="@style/ResultButtonTV"
@ -276,15 +264,12 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
<com.google.android.material.button.MaterialButton
android:id="@+id/result_resume_series"
style="@style/ResultButtonTV"
android:nextFocusRight="@id/result_description"
android:nextFocusUp="@id/result_play_series"
android:nextFocusDown="@id/result_play_trailer"
android:text="@string/resume"
android:visibility="visible"
app:icon="@drawable/ic_baseline_play_arrow_24" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/result_play_trailer"
@ -335,12 +320,12 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:id="@+id/result_subscribe_button"
style="@style/ResultButtonTV"
android:nextFocusRight="@id/result_description"
android:nextFocusUp="@id/result_favorite_button"
android:nextFocusUp="@id/result_bookmark_button"
android:nextFocusDown="@id/result_episodes_show"
android:text="@string/action_subscribe"
android:visibility="visible"
app:icon="@drawable/ic_baseline_favorite_border_24" />
app:icon="@drawable/baseline_notifications_none_24" />
<com.google.android.material.button.MaterialButton
@ -371,7 +356,6 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:focusable="true"
android:focusableInTouchMode="true" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/right_layout"
@ -496,13 +480,11 @@ https://developer.android.com/design/ui/tv/samples/jet-fit
android:paddingEnd="5dp"
android:textColor="?attr/grayTextColor"
android:visibility="gone"
tools:visibility="visible"
tools:ignore="RtlSymmetry"
tools:text="69m remaining" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</LinearLayout>