diff --git a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt
index 7c375e0a..a1b9ff34 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt
@@ -236,6 +236,7 @@ open class TraktProvider : MainAPI() {
posterUrl = fixPath(episode.images?.screenshot?.firstOrNull()),
rating = episode.rating?.times(10)?.roundToInt(),
description = episode.overview,
+ runTime = episode.runtime
).apply {
this.addDate(episode.firstAired, "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
if (nextAir == null && this.date != null && this.date!! > unixTimeMS && this.season != 0) {
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 ed5e51f1..06be6bd5 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
@@ -27,7 +27,8 @@ import com.lagradost.cloudstream3.utils.UIHelper.toPx
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
import java.text.DateFormat
import java.text.SimpleDateFormat
-import java.util.*
+import java.util.Date
+import java.util.Locale
const val ACTION_PLAY_EPISODE_IN_PLAYER = 1
const val ACTION_PLAY_EPISODE_IN_VLC_PLAYER = 2
@@ -58,6 +59,7 @@ const val ACTION_MARK_AS_WATCHED = 18
const val ACTION_FCAST = 19
const val TV_EP_SIZE = 400
+
data class EpisodeClickEvent(val action: Int, val data: ResultEpisode)
class EpisodeAdapter(
@@ -274,7 +276,10 @@ class EpisodeAdapter(
episodeDate.setText(
txt(
R.string.episode_upcoming_format,
- secondsToReadable(card.airDate.minus(unixTimeMS).div(1000).toInt(), "")
+ secondsToReadable(
+ card.airDate.minus(unixTimeMS).div(1000).toInt(),
+ ""
+ )
)
)
} else {
@@ -292,6 +297,12 @@ class EpisodeAdapter(
episodeDate.isVisible = false
}
+ episodeRuntime.setText(
+ txt(
+ card.runTime?.times(60L)?.toInt()?.let { secondsToReadable(it, "") }
+ )
+ )
+
if (isLayout(EMULATOR or PHONE)) {
episodePoster.setOnClickListener {
clickCallback.invoke(EpisodeClickEvent(ACTION_CLICK_DEFAULT, card))
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt
index c687eaa0..3eab0c71 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt
@@ -51,6 +51,7 @@ data class ResultEpisode(
/** Sum of all previous season episode counts + episode */
val totalEpisodeIndex: Int? = null,
val airDate: Long? = null,
+ val runTime: Int? = null,
)
fun ResultEpisode.getRealPosition(): Long {
@@ -87,6 +88,7 @@ fun buildResultEpisode(
parentId: Int,
totalEpisodeIndex: Int? = null,
airDate: Long? = null,
+ runTime: Int? = null,
): ResultEpisode {
val posDur = getViewPos(id)
val videoWatchState = getVideoWatchState(id) ?: VideoWatchState.None
@@ -111,6 +113,7 @@ fun buildResultEpisode(
videoWatchState,
totalEpisodeIndex,
airDate,
+ runTime,
)
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt
index 8e8dfe30..5086426f 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt
@@ -2371,7 +2371,8 @@ class ResultViewModel2 : ViewModel() {
loadResponse.type,
mainId,
totalIndex,
- airDate = i.date
+ airDate = i.date,
+ runTime = i.runTime,
)
val season = eps.seasonIndex ?: 0
@@ -2426,7 +2427,8 @@ class ResultViewModel2 : ViewModel() {
loadResponse.type,
mainId,
totalIndex,
- airDate = episode.date
+ airDate = episode.date,
+ runTime = episode.runTime,
)
val season = ep.seasonIndex ?: 0
diff --git a/app/src/main/res/layout/result_episode_large.xml b/app/src/main/res/layout/result_episode_large.xml
index e5a6881a..935beac1 100644
--- a/app/src/main/res/layout/result_episode_large.xml
+++ b/app/src/main/res/layout/result_episode_large.xml
@@ -44,7 +44,7 @@
android:nextFocusRight="@id/download_button"
android:scaleType="centerCrop"
tools:src="@drawable/example_poster"
- tools:visibility="invisible"/>
+ tools:visibility="invisible" />
+ tools:visibility="invisible" />
-
+ android:layout_gravity="start"
+ android:orientation="horizontal">
+
+
+
+
+
+
+