From 40e14d3e94b0c0af19dd204c207cafc0089df217 Mon Sep 17 00:00:00 2001 From: goapunk Date: Wed, 19 Sep 2018 18:09:22 +0200 Subject: [PATCH] Update the system configuration locale --- .../briarproject/briar/android/Localizer.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java b/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java index 2b51659bb..6f7154d28 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java @@ -80,13 +80,25 @@ public class Localizer { if (locale.equals(currentLocale)) return context; Locale.setDefault(locale); - if (SDK_INT >= 17) { - conf.setLocale(locale); + updateConfiguration(conf, locale); + Configuration systemConfiguration = + Resources.getSystem().getConfiguration(); + updateConfiguration(systemConfiguration, locale); + // DateUtils uses the system resources, so we need to update them too. + // Apparently updateConfiguration is not deprecated here but is below. + Resources.getSystem().updateConfiguration(systemConfiguration, + Resources.getSystem().getDisplayMetrics()); + if (SDK_INT >= 17) context.createConfigurationContext(conf); - } else - conf.locale = locale; //noinspection deprecation res.updateConfiguration(conf, res.getDisplayMetrics()); return context; } + + private void updateConfiguration(Configuration conf, Locale locale) { + if (SDK_INT >= 17) { + conf.setLocale(locale); + } else + conf.locale = locale; + } }