Skip to content
Snippets Groups Projects
Commit 7087244a authored by Julian Dehm's avatar Julian Dehm Committed by jd
Browse files

Force locale on account deletion

parent 0154f1ed
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,7 @@ class BriarAccountManager extends AndroidAccountManager {
public void deleteAccount() {
synchronized (stateChangeLock) {
super.deleteAccount();
Localizer.reinitialize();
Localizer.reinitialize(appContext);
UiUtils.setTheme(appContext,
appContext.getString(R.string.pref_theme_light_value));
}
......
......@@ -44,9 +44,11 @@ public class Localizer {
}
// Reinstantiate the Localizer with the system locale
public static synchronized void reinitialize() {
if (INSTANCE != null)
public static synchronized void reinitialize(Context appContext) {
if (INSTANCE != null) {
INSTANCE = new Localizer(INSTANCE.systemLocale, null);
INSTANCE.forceLocale(appContext);
}
}
// Get the current instance.
......@@ -84,6 +86,18 @@ public class Localizer {
return context;
}
// Forces the update of the resources through the deprecated API.
// Necessary on API >= 17 to update the foreground notification if the
// account was deleted.
public void forceLocale(Context context) {
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
updateConfiguration(conf, locale);
//noinspection deprecation
// Use the old API on < 17
res.updateConfiguration(conf, res.getDisplayMetrics());
}
private void updateConfiguration(Configuration conf, Locale locale) {
if (SDK_INT >= 17) {
conf.setLocale(locale);
......
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