[Android] Fix language change
Nicolas Pomepuy
git at videolan.org
Mon Jul 29 16:37:17 CEST 2019
vlc-android | branch: 3.2.x | Nicolas Pomepuy <nicolas.pomepuy at gmail.com> | Fri Jul 26 14:14:20 2019 +0200| [07896139481459056b0e1e083eb9cd070b3406c1] | committer: Geoffrey Métais
Fix language change
(cherry picked from commit 826eaf5f4cb7a09a3309f152630d86664fee5fc5)
> https://code.videolan.org/videolan/vlc-android/commit/07896139481459056b0e1e083eb9cd070b3406c1
---
vlc-android/src/org/videolan/vlc/VLCApplication.kt | 9 ++++-----
vlc-android/src/org/videolan/vlc/gui/BaseActivity.kt | 2 ++
vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt | 8 +++-----
.../src/org/videolan/vlc/gui/tv/browser/BaseTvActivity.kt | 2 +-
4 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/vlc-android/src/org/videolan/vlc/VLCApplication.kt b/vlc-android/src/org/videolan/vlc/VLCApplication.kt
index a3fbb49d1..11193562b 100644
--- a/vlc-android/src/org/videolan/vlc/VLCApplication.kt
+++ b/vlc-android/src/org/videolan/vlc/VLCApplication.kt
@@ -44,7 +44,10 @@ import org.videolan.vlc.gui.helpers.AudioUtil
import org.videolan.vlc.gui.helpers.BitmapCache
import org.videolan.vlc.gui.helpers.NotificationHelper
import org.videolan.vlc.gui.helpers.UiTools
-import org.videolan.vlc.util.*
+import org.videolan.vlc.util.Settings
+import org.videolan.vlc.util.Util
+import org.videolan.vlc.util.VLCInstance
+import org.videolan.vlc.util.runIO
import java.lang.ref.WeakReference
import java.lang.reflect.InvocationTargetException
@@ -96,10 +99,6 @@ class VLCApplication : MultiDexApplication() {
//Initiate Kotlinx Dispatchers in a thread to prevent ANR
Thread(Runnable {
locale = Settings.getInstance(instance).getString("set_locale", "")
- runOnMainThread(Runnable {
- // Set the locale for API < 24 and set application resources and direction for API >=24
- UiTools.setLocale(appContext)
- })
runIO(Runnable {
if (AndroidUtil.isOOrLater)
diff --git a/vlc-android/src/org/videolan/vlc/gui/BaseActivity.kt b/vlc-android/src/org/videolan/vlc/gui/BaseActivity.kt
index a93f8d29d..f7a31841d 100644
--- a/vlc-android/src/org/videolan/vlc/gui/BaseActivity.kt
+++ b/vlc-android/src/org/videolan/vlc/gui/BaseActivity.kt
@@ -8,6 +8,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel
import org.videolan.tools.KeyHelper
+import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.applyTheme
import org.videolan.vlc.util.Settings
@@ -16,6 +17,7 @@ open class BaseActivity : AppCompatActivity(), CoroutineScope by MainScope() {
lateinit var settings: SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
+ UiTools.setLocale(this)
settings = Settings.getInstance(this)
/* Theme must be applied before super.onCreate */
applyTheme()
diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt b/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt
index 09bfe5261..3f71abcc8 100644
--- a/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt
+++ b/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt
@@ -30,7 +30,7 @@ import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.content.res.Configuration
-import android.graphics.*
+import android.graphics.Bitmap
import android.graphics.drawable.BitmapDrawable
import android.media.MediaRouter
import android.net.Uri
@@ -481,10 +481,8 @@ object UiTools {
}
fun setLocale(context: Context) {
- // Are we using advanced debugging - locale?
- val p = VLCApplication.locale
- if (p != "") {
- val locale = getLocaleFromString(p!!)
+ if (!VLCApplication.locale.isNullOrEmpty()) {
+ val locale = getLocaleFromString(VLCApplication.locale!!)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
diff --git a/vlc-android/src/org/videolan/vlc/gui/tv/browser/BaseTvActivity.kt b/vlc-android/src/org/videolan/vlc/gui/tv/browser/BaseTvActivity.kt
index e5baf6f89..42160d325 100644
--- a/vlc-android/src/org/videolan/vlc/gui/tv/browser/BaseTvActivity.kt
+++ b/vlc-android/src/org/videolan/vlc/gui/tv/browser/BaseTvActivity.kt
@@ -34,7 +34,6 @@ import android.widget.TextView
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Observer
import kotlinx.coroutines.*
-import org.videolan.medialibrary.Medialibrary
import org.videolan.medialibrary.interfaces.AbstractMedialibrary
import org.videolan.tools.KeyHelper
import org.videolan.vlc.*
@@ -58,6 +57,7 @@ abstract class BaseTvActivity : FragmentActivity(), CoroutineScope by MainScope(
override fun onCreate(savedInstanceState: Bundle?) {
//Init Medialibrary if KO
+ UiTools.setLocale(this)
if (savedInstanceState != null) startMedialibrary(firstRun = false, upgrade = false, parse = true)
super.onCreate(savedInstanceState)
mediaLibrary = AbstractMedialibrary.getInstance()
More information about the Android
mailing list