Skip to content

Commit b3d0c3e

Browse files
feat: subtitle setting not preserved
1 parent ddbf90d commit b3d0c3e

2 files changed

Lines changed: 21 additions & 19 deletions

File tree

android/src/main/kotlin/project/pipepipe/app/platform/AndroidMediaController.kt

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -351,26 +351,15 @@ class AndroidMediaController(
351351

352352
@OptIn(UnstableApi::class)
353353
override fun selectSubtitle(subtitle: SubtitleInfo) {
354-
val tracks = mediaController.currentTracks
354+
val params = mediaController.trackSelectionParameters
355+
.buildUpon()
356+
.setPreferredTextLanguages(subtitle.language)
357+
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, false)
358+
.build()
359+
mediaController.trackSelectionParameters = params
355360

356-
for (trackGroup in tracks.groups) {
357-
trackGroup.find { format ->
358-
format.language == subtitle.language && trackGroup.type == C.TRACK_TYPE_TEXT
359-
}?.let { format ->
360-
val trackIndex = trackGroup.indexOfFirst { it == format }
361-
if (trackIndex >= 0) {
362-
val params = mediaController.trackSelectionParameters
363-
.buildUpon()
364-
.setOverrideForType(
365-
TrackSelectionOverride(trackGroup.mediaTrackGroup, trackIndex)
366-
)
367-
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, false)
368-
.build()
369-
mediaController.trackSelectionParameters = params
370-
}
371-
break
372-
}
373-
}
361+
// Save user preference
362+
SharedContext.settingsManager.putString("caption_user_set_key", subtitle.language)
374363
}
375364

376365
@OptIn(UnstableApi::class)
@@ -415,6 +404,9 @@ class AndroidMediaController(
415404
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, true)
416405
.build()
417406
mediaController.trackSelectionParameters = params
407+
408+
// Clear user preference
409+
SharedContext.settingsManager.remove("caption_user_set_key")
418410
}
419411

420412
override fun stopService() {

android/src/main/kotlin/project/pipepipe/app/service/PlaybackService.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,16 @@ class PlaybackService : MediaLibraryService() {
172172
skipSilenceEnabled = SharedContext.settingsManager.getBoolean("playback_skip_silence_key", false)
173173
// Restore saved playback speed and pitch
174174
playbackParameters = PlaybackParameters(savedSpeed, savedPitch)
175+
176+
// Apply saved caption preference
177+
val savedLanguage = SharedContext.settingsManager.getString("caption_user_set_key", "")
178+
if (savedLanguage.isNotEmpty()) {
179+
trackSelectionParameters = trackSelectionParameters.buildUpon()
180+
.setPreferredTextLanguages(savedLanguage)
181+
.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, false)
182+
.build()
183+
}
184+
175185
addListener(createPlayerListener())
176186
}
177187

0 commit comments

Comments
 (0)