From 4d4e89bea2c0baaa40023934bcb5b0e6b2f09724 Mon Sep 17 00:00:00 2001 From: Shih Han Lin Date: Fri, 15 Sep 2017 02:56:36 +0800 Subject: [PATCH] Fix multiple language include region code and variant code. --- .../com/example/yink/amadeus/LangContext.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/yink/amadeus/LangContext.java b/app/src/main/java/com/example/yink/amadeus/LangContext.java index cb37d59..4bcb74f 100644 --- a/app/src/main/java/com/example/yink/amadeus/LangContext.java +++ b/app/src/main/java/com/example/yink/amadeus/LangContext.java @@ -24,10 +24,20 @@ public static ContextWrapper wrap(Context context) { SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); String lang = settings.getString("lang", "en"); - - Locale locale = new Locale(lang); + String[] langArr = lang.split("-"); + Locale locale; + switch(langArr.length){ + case 3: + locale = new Locale(langArr[0],langArr[1], langArr[2]); + break; + case 2: + locale = new Locale(langArr[0],langArr[1]); + break; + default: + locale = new Locale(langArr[0]); + break; + } Locale.setDefault(locale); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { setSystemLocale(config, locale); } else {