Skip to content

Commit 55fc3fc

Browse files
committed
added: caption language stem utility to support language variant conversion between videos.
1 parent 724eac9 commit 55fc3fc

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import static org.schabi.newpipe.player.helper.PlayerHelper.MinimizeMode.MINIMIZE_ON_EXIT_MODE_NONE;
4747
import static org.schabi.newpipe.player.helper.PlayerHelper.MinimizeMode.MINIMIZE_ON_EXIT_MODE_POPUP;
4848
import static org.schabi.newpipe.player.helper.PlayerHelper.buildCloseOverlayLayoutParams;
49+
import static org.schabi.newpipe.player.helper.PlayerHelper.captionLanguageStemOf;
4950
import static org.schabi.newpipe.player.helper.PlayerHelper.formatSpeed;
5051
import static org.schabi.newpipe.player.helper.PlayerHelper.getMinimizeOnExitAction;
5152
import static org.schabi.newpipe.player.helper.PlayerHelper.getMinimumVideoHeight;
@@ -3542,7 +3543,8 @@ private void buildCaptionMenu(@NonNull final List<String> availableLanguages) {
35423543
// if a track of userPreferredLanguage is not found
35433544
// This means (auto-generated) will be resolved automatically.
35443545
trackSelector.setParameters(trackSelector.buildUponParameters()
3545-
.setPreferredTextLanguage(captionLanguage)
3546+
.setPreferredTextLanguages(captionLanguage,
3547+
captionLanguageStemOf(captionLanguage))
35463548
.setRendererDisabled(textRendererIndex, false));
35473549
prefs.edit().putString(context.getString(R.string.caption_user_set_key),
35483550
captionLanguage).apply();
@@ -3563,7 +3565,8 @@ private void buildCaptionMenu(@NonNull final List<String> availableLanguages) {
35633565
&& !selectedPreferredLanguages.contains(userPreferredLanguage)
35643566
&& textRendererIndex != RENDERER_UNAVAILABLE) {
35653567
trackSelector.setParameters(trackSelector.buildUponParameters()
3566-
.setPreferredTextLanguage(userPreferredLanguage)
3568+
.setPreferredTextLanguages(userPreferredLanguage,
3569+
captionLanguageStemOf(userPreferredLanguage))
35673570
.setRendererDisabled(textRendererIndex, false));
35683571
}
35693572
}

app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,21 @@ public static String captionLanguageOf(@NonNull final Context context,
144144
? " (" + context.getString(R.string.caption_auto_generated) + ")" : "");
145145
}
146146

147+
@NonNull
148+
public static String captionLanguageStemOf(@NonNull final String language) {
149+
if (!language.contains("(") || !language.contains(")")) {
150+
return language;
151+
}
152+
153+
if (language.startsWith("(")) {
154+
// language text is right-to-left
155+
final String[] parts = language.split("\\)");
156+
return parts[parts.length - 1].trim();
157+
}
158+
159+
return language.split("\\(")[0].trim();
160+
}
161+
147162
@NonNull
148163
public static String resizeTypeOf(@NonNull final Context context,
149164
@ResizeMode final int resizeMode) {

0 commit comments

Comments
 (0)