Skip to content

Commit 29fc0ef

Browse files
committed
fixed: added comments for DefaultTrackSelector auto-select fix.
1 parent 4917da2 commit 29fc0ef

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

app/src/main/java/org/schabi/newpipe/player/Player.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3557,20 +3557,27 @@ private void buildCaptionMenu(@NonNull final List<String> availableLanguages) {
35573557
}
35583558

35593559
// apply caption language from previous user preference
3560-
final String userPreferredLanguage =
3561-
prefs.getString(context.getString(R.string.caption_user_set_key), null);
35623560
final int textRendererIndex = getCaptionRendererIndex();
3561+
if (textRendererIndex == RENDERER_UNAVAILABLE) {
3562+
return;
3563+
}
35633564

3565+
// If user prefers to show no caption, then disable the renderer.
3566+
// Otherwise, DefaultTrackSelector may automatically find an available caption
3567+
// and display that.
3568+
final String userPreferredLanguage =
3569+
prefs.getString(context.getString(R.string.caption_user_set_key), null);
35643570
if (userPreferredLanguage == null) {
35653571
trackSelector.setParameters(trackSelector.buildUponParameters()
35663572
.setRendererDisabled(textRendererIndex, true));
35673573
return;
35683574
}
35693575

3576+
// Only set preferred language if it does not match the user preference,
3577+
// otherwise there might be an infinite cycle at onTextTracksChanged.
35703578
final List<String> selectedPreferredLanguages =
35713579
trackSelector.getParameters().preferredTextLanguages;
3572-
if (!selectedPreferredLanguages.contains(userPreferredLanguage)
3573-
&& textRendererIndex != RENDERER_UNAVAILABLE) {
3580+
if (!selectedPreferredLanguages.contains(userPreferredLanguage)) {
35743581
trackSelector.setParameters(trackSelector.buildUponParameters()
35753582
.setPreferredTextLanguages(userPreferredLanguage,
35763583
PlayerHelper.captionLanguageStemOf(userPreferredLanguage))

0 commit comments

Comments
 (0)