Skip to content
Snippets Groups Projects
Verified Commit 7a2df3d6 authored by Julian Dehm's avatar Julian Dehm
Browse files

simplify

parent 0c65ff47
Branches language_improvements
No related tags found
No related merge requests found
Pipeline #
......@@ -21,18 +21,17 @@ public class Localizer {
@Nullable
private static Localizer INSTANCE;
private final Locale systemLocale;
@Nullable
private final Locale userLocale;
private final Locale locale;
private Localizer(SharedPreferences sharedPreferences) {
systemLocale = Locale.getDefault();
userLocale = getLocaleFromTag(
sharedPreferences.getString(LANGUAGE, "default"));
this(Locale.getDefault(), getLocaleFromTag(
sharedPreferences.getString(LANGUAGE, "default")));
}
private Localizer(Locale systemLocale, @Nullable Locale userLocale) {
this.systemLocale = systemLocale;
this.userLocale = userLocale;
if (userLocale == null) locale = systemLocale;
else locale = userLocale;
}
// Instantiate the Localizer.
......@@ -42,8 +41,9 @@ public class Localizer {
}
// Reinstantiate the Localizer with the system locale
private static synchronized void reinitialize(Locale systemLocale) {
INSTANCE = new Localizer(systemLocale, null);
public static synchronized void reinitialize() {
if (INSTANCE != null)
INSTANCE = new Localizer(INSTANCE.systemLocale, null);
}
// Get the current instance.
......@@ -53,11 +53,6 @@ public class Localizer {
return INSTANCE;
}
// Reset to the system locale
public void reset() {
reinitialize(systemLocale);
}
// Get Locale from BCP-47 tag
@Nullable
public static Locale getLocaleFromTag(String tag) {
......@@ -77,18 +72,11 @@ public class Localizer {
public Context setLocale(Context context) {
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
Locale locale, currentLocale;
Locale currentLocale;
if (SDK_INT >= 24) {
currentLocale = conf.getLocales().get(0);
} else
currentLocale = conf.locale;
if (userLocale == null) {
// Detect if the user changed the system language
if (systemLocale.equals(currentLocale))
return context;
locale = systemLocale;
} else
locale = userLocale;
if (locale.equals(currentLocale))
return context;
Locale.setDefault(locale);
......
......@@ -106,7 +106,7 @@ public class PasswordActivity extends BaseActivity {
private void deleteAccount() {
passwordController.deleteAccount(this);
Localizer.getInstance().reset();
Localizer.reinitialize();
setResult(RESULT_CANCELED);
Intent i = new Intent(this, SetupActivity.class);
i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment