From a25a625538a26601c6fdc1df0ffb7a47447acd07 Mon Sep 17 00:00:00 2001
From: int3debug <164035730+int3debug@users.noreply.github.com>
Date: Sun, 14 Apr 2024 05:10:24 +0200
Subject: [PATCH] feat(ui): added option to reset sub delay
Added option for resetting subtitle delay on next episode
---
.../ui/player/AbstractPlayerFragment.kt | 21 ++++++++++++-------
.../cloudstream3/ui/player/CS3IPlayer.kt | 8 +++++++
app/src/main/res/values/strings.xml | 3 +++
app/src/main/res/xml/settings_player.xml | 8 +++++++
4 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt
index cfa6682d..62f670d9 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt
@@ -1,7 +1,10 @@
package com.lagradost.cloudstream3.ui.player
import android.annotation.SuppressLint
-import android.content.*
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
import android.graphics.drawable.AnimatedImageDrawable
import android.graphics.drawable.AnimatedVectorDrawable
import android.media.metrics.PlaybackErrorEvent
@@ -24,11 +27,7 @@ import androidx.fragment.app.Fragment
import androidx.media3.common.PlaybackException
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.session.MediaSession
-import androidx.media3.ui.AspectRatioFrameLayout
-import androidx.media3.ui.DefaultTimeBar
-import androidx.media3.ui.PlayerView
-import androidx.media3.ui.SubtitleView
-import androidx.media3.ui.TimeBar
+import androidx.media3.ui.*
import androidx.preference.PreferenceManager
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
import com.github.rubensousa.previewseekbar.PreviewBar
@@ -380,7 +379,6 @@ abstract class AbstractPlayerFragment(
// return super.onMediaButtonEvent(mediaButtonEvent)
// }
//}
-
/** This receives the events from the player, if you want to append functionality you do it here,
* do note that this only receives events for UI changes,
* and returning early WONT stop it from changing in eg the player time or pause status */
@@ -442,6 +440,15 @@ abstract class AbstractPlayerFragment(
is VideoEndedEvent -> {
context?.let { ctx ->
+ if (PreferenceManager.getDefaultSharedPreferences(ctx)
+ ?.getBoolean(
+ ctx.getString(R.string.reset_delay_key),
+ false
+ ) == true
+ ) {
+ player.setSubtitleOffset(0)
+ }
+
// Only play next episode if autoplay is on (default)
if (PreferenceManager.getDefaultSharedPreferences(ctx)
?.getBoolean(
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 210bfdca..f057f638 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
@@ -1118,6 +1118,14 @@ class CS3IPlayer : IPlayer {
}
Player.STATE_ENDED -> {
+ if (PreferenceManager.getDefaultSharedPreferences(context)
+ ?.getBoolean(
+ context.getString(com.lagradost.cloudstream3.R.string.reset_delay_key),
+ false) == true
+ ) {
+ setSubtitleOffset(0)
+ }
+
// Only play next episode if autoplay is on (default)
if (PreferenceManager.getDefaultSharedPreferences(context)
?.getBoolean(
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 67dada76..4649baf6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -768,4 +768,7 @@
Audio Book
Media
Reset
+ Reset delay on next episode
+ Resets subtitle delay on next episode
+ reset_delay_key
\ No newline at end of file
diff --git a/app/src/main/res/xml/settings_player.xml b/app/src/main/res/xml/settings_player.xml
index 82505511..9acf0bbd 100644
--- a/app/src/main/res/xml/settings_player.xml
+++ b/app/src/main/res/xml/settings_player.xml
@@ -80,6 +80,14 @@
android:title="@string/autoplay_next_settings"
app:defaultValue="true"
app:key="@string/autoplay_next_key" />
+