From 73d2c964d44ec6a91534fa4eafaf309b130d3b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Mon, 15 Feb 2021 12:31:51 +0100 Subject: [PATCH] Make language switching for robust --- .../briarproject/briar/android/BriarApplicationImpl.java | 1 + .../org/briarproject/briar/android/BriarService.java | 1 + .../java/org/briarproject/briar/android/Localizer.java | 2 +- .../briar/android/activity/BaseActivity.java | 1 + .../briar/android/splash/ExpiredActivity.java | 9 +++++++++ 5 files changed, 13 insertions(+), 1 deletion(-) 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 64022ec6f..b3bf74595 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 @@ -58,6 +58,7 @@ public class BriarApplicationImpl extends Application Localizer.initialize(prefs); super.attachBaseContext( Localizer.getInstance().setLocale(base)); + Localizer.getInstance().setLocale(this); setTheme(base, prefs); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java index a4f4d0b0e..3e2098d71 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java @@ -170,6 +170,7 @@ public class BriarService extends Service { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(Localizer.getInstance().setLocale(base)); + Localizer.getInstance().setLocale(this); } private void showStartupFailureNotification(StartResult result) { 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..eb9c1f431 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 @@ -82,7 +82,7 @@ public class Localizer { Locale.setDefault(locale); if (SDK_INT >= 17) { conf.setLocale(locale); - context.createConfigurationContext(conf); + context = context.createConfigurationContext(conf); } else conf.locale = locale; //noinspection deprecation diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java index 08f196e18..4f7b0fbde 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java @@ -109,6 +109,7 @@ public abstract class BaseActivity extends AppCompatActivity protected void attachBaseContext(Context base) { super.attachBaseContext( Localizer.getInstance().setLocale(base)); + Localizer.getInstance().setLocale(this); } public ActivityComponent getActivityComponent() { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/splash/ExpiredActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/splash/ExpiredActivity.java index 7db01bf85..3f8828ce5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/splash/ExpiredActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/splash/ExpiredActivity.java @@ -1,5 +1,6 @@ package org.briarproject.briar.android.splash; +import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -7,6 +8,7 @@ import android.view.View; import android.view.View.OnClickListener; import org.briarproject.briar.R; +import org.briarproject.briar.android.Localizer; import androidx.appcompat.app.AppCompatActivity; @@ -27,6 +29,13 @@ public class ExpiredActivity extends AppCompatActivity findViewById(R.id.download_briar_button).setOnClickListener(this); } + @Override + protected void attachBaseContext(Context base) { + super.attachBaseContext( + Localizer.getInstance().setLocale(base)); + Localizer.getInstance().setLocale(this); + } + @Override public void onClick(View v) { Uri uri = Uri.parse("https://briarproject.org/download.html");