From 572c11a1dc1a05bd47fe0f39de91a40cd8af334e Mon Sep 17 00:00:00 2001 From: Ash Mishra Date: Mon, 9 Jul 2018 11:36:35 -0700 Subject: [PATCH] Android device locale support for captions --- .../exoplayer/ReactExoplayerView.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 0488404c..a8022141 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -69,6 +69,7 @@ import java.lang.Math; import java.util.Map; import java.lang.Object; import java.util.ArrayList; +import java.util.Locale; @SuppressLint("ViewConstructor") class ReactExoplayerView extends FrameLayout implements @@ -104,7 +105,7 @@ class ReactExoplayerView extends FrameLayout implements private boolean loadVideoStarted; private boolean isFullscreen; private boolean isInBackground; - private boolean isPaused; + private boolean isPaused = true; private boolean isBuffering; private float rate = 1f; @@ -768,7 +769,19 @@ class ReactExoplayerView extends FrameLayout implements int sdk = android.os.Build.VERSION.SDK_INT; if (sdk>18 && groups.length>0) { CaptioningManager captioningManager = (CaptioningManager) themedReactContext.getSystemService(Context.CAPTIONING_SERVICE); - if (captioningManager.isEnabled()) trackIndex=0; + if (captioningManager.isEnabled()) { + // default is to take the first object + trackIndex = 0; + + String locale = Locale.getDefault().getDisplayLanguage(); + for (int i = 0; i < groups.length; ++i) { + Format format = groups.get(i).getFormat(0); + if (format.language != null && format.language.equals(locale)) { + trackIndex = i; + break; + } + } + } } else return; }