From 99d03fa0ddd630043e4950835aa9b3d14facb686 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 21 Jan 2026 17:09:27 +0530 Subject: [PATCH 1/3] Improvement to Episode Result Large --- .../cloudstream3/ui/result/EpisodeAdapter.kt | 13 +++++- .../main/res/drawable/episode_badge_black.xml | 4 ++ app/src/main/res/drawable/ic_clock_16.xml | 24 ++++++++++ .../main/res/layout/result_episode_large.xml | 45 ++++++++++++++----- app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/styles.xml | 4 +- 6 files changed, 75 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/drawable/episode_badge_black.xml create mode 100644 app/src/main/res/drawable/ic_clock_16.xml diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt index 818e79d7456..abb5630d04c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt @@ -141,6 +141,7 @@ class EpisodeAdapter( } } + @SuppressLint("SetTextI18n") override fun onBindContent(holder: ViewHolderState, item: ResultEpisode, position: Int) { val itemView = holder.itemView when (val binding = holder.view) { @@ -199,8 +200,9 @@ class EpisodeAdapter( } } - val name = - if (item.name == null) "${episodeText.context.getString(R.string.episode)} ${item.episode}" else "${item.episode}. ${item.name}" + val name = item.name?.takeIf { it.isNotBlank() } + ?: episodeText.context.getString(R.string.episode).let { "$it ${item.episode}" } + episodeFiller.isVisible = item.isFiller == true episodeText.text = name//if(card.isFiller == true) episodeText.context.getString(R.string.filler).format(name) else name @@ -254,6 +256,13 @@ class EpisodeAdapter( } episodePoster.isVisible = posterVisible + val seasonNumber = item.season ?: 1 + + episodeSeasonEp.text = "S${seasonNumber}E${item.episode}" + + episodeSeasonEp.isVisible = episodeSeasonEp.text.isNotBlank() + + episodeSeasonEp.isVisible = episodeSeasonEp. text.isNotBlank() val rating10p = item.score?.toFloat(10) if (rating10p != null && rating10p > 0.1) { episodeRating.text = episodeRating.context?.getString(R.string.rated_format) diff --git a/app/src/main/res/drawable/episode_badge_black.xml b/app/src/main/res/drawable/episode_badge_black.xml new file mode 100644 index 00000000000..3d315156af1 --- /dev/null +++ b/app/src/main/res/drawable/episode_badge_black.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/drawable/ic_clock_16.xml b/app/src/main/res/drawable/ic_clock_16.xml new file mode 100644 index 00000000000..86950008364 --- /dev/null +++ b/app/src/main/res/drawable/ic_clock_16.xml @@ -0,0 +1,24 @@ + + + diff --git a/app/src/main/res/layout/result_episode_large.xml b/app/src/main/res/layout/result_episode_large.xml index 5e003de3075..c345297d56e 100644 --- a/app/src/main/res/layout/result_episode_large.xml +++ b/app/src/main/res/layout/result_episode_large.xml @@ -33,18 +33,36 @@ android:layout_height="72dp" android:foreground="@drawable/outline_drawable"> - + + + + - android:foreground="?android:attr/selectableItemBackgroundBorderless" - android:nextFocusRight="@id/download_button" - android:scaleType="centerCrop" - tools:src="@drawable/example_poster" - tools:visibility="invisible" /> + @@ -66,12 +84,14 @@ + android:layout_width="32dp" + android:layout_height="32dp" + android:layout_gravity="bottom|start" + tools:ignore="RtlSymmetry"> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index b0c150000b5..296f357aa41 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -28,7 +28,7 @@ 5dp 50dp - 40dp + 25dp 25dp 2dp 35dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f386bb62eff..e49654a55fb 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1090,8 +1090,8 @@ From 1eebddd95a7d14eeb974ef1e5754647004330f5b Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 21 Jan 2026 18:03:11 +0530 Subject: [PATCH 2/3] Minor Fix --- .../cloudstream3/ui/result/EpisodeAdapter.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt index abb5630d04c..c056c44d0a1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt @@ -8,7 +8,6 @@ import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.core.view.setPadding import androidx.preference.PreferenceManager -import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import coil3.dispose import com.lagradost.cloudstream3.APIHolder.unixTimeMS @@ -254,15 +253,17 @@ class EpisodeAdapter( // Clear the image episodePoster.dispose() } - episodePoster.isVisible = posterVisible - val seasonNumber = item.season ?: 1 + episodePoster.isVisible = posterVisible - episodeSeasonEp.text = "S${seasonNumber}E${item.episode}" + episodeSeasonEp.text = if (item.season != null) { + "S${item.season}E${item.episode}" + } else { + "E${item.episode}" + } episodeSeasonEp.isVisible = episodeSeasonEp.text.isNotBlank() - episodeSeasonEp.isVisible = episodeSeasonEp. text.isNotBlank() val rating10p = item.score?.toFloat(10) if (rating10p != null && rating10p > 0.1) { episodeRating.text = episodeRating.context?.getString(R.string.rated_format) From bffb2512e3e9c8530ffa3979caf1b537b337c14e Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 21 Jan 2026 18:26:36 +0530 Subject: [PATCH 3/3] Minor Fix --- app/src/main/res/layout/result_episode_large.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/result_episode_large.xml b/app/src/main/res/layout/result_episode_large.xml index c345297d56e..0681515b204 100644 --- a/app/src/main/res/layout/result_episode_large.xml +++ b/app/src/main/res/layout/result_episode_large.xml @@ -128,7 +128,7 @@ android:layout_gravity="center_vertical" android:textColor="?attr/textColor" android:textStyle="bold" - tools:text="1. Jobless" /> + tools:text="Jobless" />