diff --git a/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt b/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt
index c1e9992..6c288ce 100644
--- a/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt
+++ b/app/src/main/java/org/mosad/teapod/parser/crunchyroll/Crunchyroll.kt
@@ -500,6 +500,12 @@ object Crunchyroll {
}
}
+ /**
+ * Post the playhead to crunchy (playhead position,watched state)
+ *
+ * @param episodeId A episode ID as strings.
+ * @param playhead The episodes playhead in seconds.
+ */
suspend fun postPlayheads(episodeId: String, playhead: Int) {
val playheadsEndpoint = "/content/v1/playheads/$accountID"
val parameters = listOf("locale" to Preferences.preferredLocale.toLanguageTag())
diff --git a/app/src/main/java/org/mosad/teapod/preferences/Preferences.kt b/app/src/main/java/org/mosad/teapod/preferences/Preferences.kt
index ff09a97..92e7799 100644
--- a/app/src/main/java/org/mosad/teapod/preferences/Preferences.kt
+++ b/app/src/main/java/org/mosad/teapod/preferences/Preferences.kt
@@ -19,6 +19,10 @@ object Preferences {
var theme = DataTypes.Theme.DARK
internal set
+ // dev settings
+ var updatePlayhead = true
+ internal set
+
private fun getSharedPref(context: Context): SharedPreferences {
return context.getSharedPreferences(
context.getString(R.string.preference_file_key),
@@ -71,6 +75,15 @@ object Preferences {
this.theme = theme
}
+ fun saveUpdatePlayhead(context: Context, updatePlayhead: Boolean) {
+ with(getSharedPref(context).edit()) {
+ putBoolean(context.getString(R.string.save_key_update_playhead), updatePlayhead)
+ apply()
+ }
+
+ this.updatePlayhead = updatePlayhead
+ }
+
/**
* initially load the stored values
*/
@@ -96,6 +109,11 @@ object Preferences {
context.getString(R.string.save_key_theme), DataTypes.Theme.DARK.toString()
) ?: DataTypes.Theme.DARK.toString()
)
+
+ // dev settings
+ updatePlayhead = sharedPref.getBoolean(
+ context.getString(R.string.save_key_update_playhead), true
+ )
}
diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt
index d9c05cc..ca0ca11 100644
--- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt
+++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt
@@ -93,6 +93,7 @@ class AccountFragment : Fragment() {
}
binding.linearDevSettings.isVisible = Preferences.devSettings
+ binding.switchUpdatePlayhead.isChecked = Preferences.updatePlayhead
binding.textInfoAboutDesc.text = getString(R.string.info_about_desc, BuildConfig.VERSION_NAME, getString(R.string.build_time))
@@ -130,6 +131,10 @@ class AccountFragment : Fragment() {
activity?.showFragment(AboutFragment())
}
+ binding.switchUpdatePlayhead.setOnClickListener {
+ Preferences.saveUpdatePlayhead(requireContext(), binding.switchUpdatePlayhead.isChecked)
+ }
+
binding.linearExportData.setOnClickListener {
val i = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/player/PlayerViewModel.kt b/app/src/main/java/org/mosad/teapod/ui/activity/player/PlayerViewModel.kt
index 5417cde..9553211 100644
--- a/app/src/main/java/org/mosad/teapod/ui/activity/player/PlayerViewModel.kt
+++ b/app/src/main/java/org/mosad/teapod/ui/activity/player/PlayerViewModel.kt
@@ -292,7 +292,7 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
private fun updatePlayhead() {
val playhead = (player.currentPosition / 1000)
- if (playhead > 0) {
+ if (playhead > 0 && Preferences.updatePlayhead) {
viewModelScope.launch { Crunchyroll.postPlayheads(currentEpisode.id, playhead.toInt()) }
Log.i(javaClass.name, "Set playhead for episode ${currentEpisode.id} to $playhead sec.")
}
diff --git a/app/src/main/res/layout/fragment_account.xml b/app/src/main/res/layout/fragment_account.xml
index 197b241..4f3c904 100644
--- a/app/src/main/res/layout/fragment_account.xml
+++ b/app/src/main/res/layout/fragment_account.xml
@@ -378,6 +378,68 @@
android:textSize="16sp"
android:textStyle="bold" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hell
Dunkel
Entwickler Einstellungen
+ Playhead Updates
+ Fortschritt bei Episoden auf cr updaten
Daten exportieren
Speichere "Meine Liste" in eine Datei
Daten importieren
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 796017e..fabe099 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -59,6 +59,8 @@
Light
Dark
Developer Settings
+ Playhead updates
+ Update episode playhead on cr
export data
export "My list" to a file
import data
@@ -137,6 +139,8 @@
org.mosad.teapod.autoplay
org.mosad.teapod.dev.settings
org.mosad.teapod.theme
+
+ org.mosad.teapod.update_playhead
intent_media_id