diff --git a/briar-android/build.gradle b/briar-android/build.gradle index 2a5d6b97bf62fb330b82c93f61be7a712ac23ebf..2dd91ee0290b811be4237571cddcd40fd76c3a32 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -295,7 +295,7 @@ task verifyTranslations { def folders = ["default", "en-US"] new File("briar-android/src/main/res").eachDir { dir -> - if (dir.name.startsWith("values-")) { + if (dir.name.startsWith("values-") && !dir.name.endsWith("night")) { folders.add(dir.name.substring(7).replace("-r", "-")) } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java index 7b7e358460c2b883a4bf3d57a593c3730e7b425e..a2ff968a7e61c7df5f00bccc6c2325ad3411d404 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarApplicationImpl.java @@ -2,10 +2,12 @@ package org.briarproject.briar.android; import android.app.Application; import android.content.Context; +import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.StrictMode; import android.os.StrictMode.ThreadPolicy; import android.os.StrictMode.VmPolicy; +import android.preference.PreferenceManager; import org.acra.ACRA; import org.acra.ReportingInteractionMode; @@ -76,8 +78,10 @@ public class BriarApplicationImpl extends Application @Override protected void attachBaseContext(Context base) { + SharedPreferences prefs = + PreferenceManager.getDefaultSharedPreferences(base); // Loading the language needs to be done here. - Localizer.initialize(base); + Localizer.initialize(prefs); super.attachBaseContext( Localizer.getInstance().setLocale(base)); ACRA.init(this); 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 c734f13f0e9b78a2b1884cbe27e2da54f494272a..fbdb7fe84cf3725de27c43478e000e5995d9e8ae 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 @@ -4,14 +4,12 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; -import android.preference.PreferenceManager; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import java.util.Locale; import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; import static android.os.Build.VERSION.SDK_INT; import static org.briarproject.briar.android.settings.SettingsFragment.LANGUAGE; @@ -19,20 +17,22 @@ import static org.briarproject.briar.android.settings.SettingsFragment.LANGUAGE; @NotNullByDefault public class Localizer { + // Locking: class + @Nullable private static Localizer INSTANCE; @Nullable private final Locale locale; private final SharedPreferences sharedPreferences; - private Localizer(Context context) { - sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + private Localizer(SharedPreferences prefs) { + this.sharedPreferences = prefs; locale = getLocaleFromTag( sharedPreferences.getString(LANGUAGE, "default")); } - public static synchronized void initialize(Context context) { + public static synchronized void initialize(SharedPreferences prefs) { if (INSTANCE == null) - INSTANCE = new Localizer(context); + INSTANCE = new Localizer(prefs); } public static synchronized Localizer getInstance() { diff --git a/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java b/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java index 93433123b2992654b1bf96c62afc9fdfd0291d74..ae086abf3385fde2ede3dd979a0e73cf79525edc 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/TestBriarApplication.java @@ -1,6 +1,8 @@ package org.briarproject.briar.android; import android.app.Application; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import org.briarproject.bramble.BrambleCoreModule; import org.briarproject.briar.BriarCoreModule; @@ -27,7 +29,8 @@ public class TestBriarApplication extends Application super.onCreate(); LOG.info("Created"); - Localizer.initialize(this); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + Localizer.initialize(prefs); applicationComponent = DaggerAndroidComponent.builder() .appModule(new AppModule(this)) .build();