From a2aa0aa9a8bbbdb486501d9d33dd26742ea84292 Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 6 Mar 2019 09:37:55 +0100 Subject: [PATCH] Fix for wrong case after language normalization --- .../java/org/schabi/newpipe/player/VideoPlayer.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java index e19507b5a..fb60ac473 100644 --- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java @@ -509,11 +509,11 @@ public abstract class VideoPlayer extends BasePlayer // Normalize mismatching language strings final String preferredLanguage = trackSelector.getParameters().preferredTextLanguage; - // Build UI buildCaptionMenu(availableLanguages); if (trackSelector.getParameters().getRendererDisabled(textRenderer) || - preferredLanguage == null || !availableLanguages.contains(preferredLanguage)) { + preferredLanguage == null || (!availableLanguages.contains(preferredLanguage) + && !containsCaseInsensitive(availableLanguages, preferredLanguage))) { captionTextView.setText(R.string.caption_none); } else { captionTextView.setText(preferredLanguage); @@ -521,6 +521,15 @@ public abstract class VideoPlayer extends BasePlayer captionTextView.setVisibility(availableLanguages.isEmpty() ? View.GONE : View.VISIBLE); } + // workaround to match normalized captions like english to English or deutsch to Deutsch + private static boolean containsCaseInsensitive(List list, String toFind) { + for(String i : list){ + if(i.equalsIgnoreCase(toFind)) + return true; + } + return false; + } + /*////////////////////////////////////////////////////////////////////////// // General Player //////////////////////////////////////////////////////////////////////////*/