diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index 441a109f..1da9c0d2 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -7,7 +7,6 @@ import android.util.Log import android.widget.FrameLayout import com.google.android.exoplayer2.* import com.google.android.exoplayer2.database.StandaloneDatabaseProvider -import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource import com.google.android.exoplayer2.extractor.ExtractorsFactory import com.google.android.exoplayer2.source.DefaultMediaSourceFactory import com.google.android.exoplayer2.source.MergingMediaSource @@ -19,12 +18,12 @@ import com.google.android.exoplayer2.trackselection.TrackSelector import com.google.android.exoplayer2.ui.SubtitleView import com.google.android.exoplayer2.upstream.DataSource import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory +import com.google.android.exoplayer2.upstream.DefaultHttpDataSource import com.google.android.exoplayer2.upstream.cache.CacheDataSource import com.google.android.exoplayer2.upstream.cache.LeastRecentlyUsedCacheEvictor import com.google.android.exoplayer2.upstream.cache.SimpleCache import com.google.android.exoplayer2.util.MimeTypes import com.lagradost.cloudstream3.USER_AGENT -import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.ui.subtitles.SaveCaptionStyle import com.lagradost.cloudstream3.utils.ExtractorLink @@ -266,7 +265,7 @@ class CS3IPlayer : IPlayer { companion object { private fun createOnlineSource(link: ExtractorLink): DataSource.Factory { // Because Trailers.to seems to fail with http/1.1 the normal one uses. - return OkHttpDataSource.Factory(app.baseClient).apply { + return DefaultHttpDataSource.Factory().apply { setUserAgent(USER_AGENT) val headers = mapOf( "referer" to link.referer, @@ -280,7 +279,7 @@ class CS3IPlayer : IPlayer { setDefaultRequestProperties(headers) //https://stackoverflow.com/questions/69040127/error-code-io-bad-http-status-exoplayer-android -// setAllowCrossProtocolRedirects(true) + setAllowCrossProtocolRedirects(true) } } 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 fd0ad3d2..770e5a74 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 @@ -526,6 +526,8 @@ class ResultFragment : Fragment() { private fun updateUI() { viewModel.reloadEpisodes() + + } @SuppressLint("SetTextI18n") @@ -1020,6 +1022,31 @@ class ResultFragment : Fragment() { observe(viewModel.episodes) { episodeList -> lateFixDownloadButton(episodeList.size <= 1) // movies can have multible parts but still be *movies* this will fix this + var isSeriesVisible = false + DataStoreHelper.getLastWatched(currentId)?.let { resume -> + if (currentIsMovie == false && episodeList.size >= 3) { + isSeriesVisible = true + result_resume_series_button?.setOnClickListener { + episodeList.firstOrNull { it.id == resume.episodeId }?.let { + handleAction(EpisodeClickEvent(ACTION_PLAY_EPISODE_IN_PLAYER, it)) + } + } + result_resume_series_title?.text = + if (resume.season == null) + "${getString(R.string.episode)} ${resume.episode}" + else + " \"${getString(R.string.season_short)}${resume.season}:${getString(R.string.episode_short)}${resume.episode}\"" + + getViewPos(resume.episodeId)?.let { viewPos -> + result_resume_series_progress?.apply { + max = (viewPos.duration / 1000).toInt() + progress = (viewPos.position / 1000).toInt() + } + result_resume_series_progress_text?.text = getString(R.string.resume_time_left).format((viewPos.duration - viewPos.position) / (60_000)) + } + } + } + result_series_parent?.isVisible = isSeriesVisible when (startAction) { START_ACTION_RESUME_LATEST -> { diff --git a/app/src/main/res/layout/fragment_result.xml b/app/src/main/res/layout/fragment_result.xml index d2d47f1f..add1c564 100644 --- a/app/src/main/res/layout/fragment_result.xml +++ b/app/src/main/res/layout/fragment_result.xml @@ -339,6 +339,7 @@ style="@style/SmallBlackButton" android:layout_gravity="center_vertical" tools:text="Gogoanime" /> + + + + + + + + + + + + + + + +