package info.guardianproject.browser; import java.util.Locale; import android.app.Application; import android.content.SharedPreferences; import android.content.res.Configuration; import android.preference.PreferenceManager; public class OrwebApp extends Application { private Locale locale; private final static String DEFAULT_LOCALE = "en"; private SharedPreferences settings; public final static boolean SHOW_LOCALE_CHOOSER = false; public final static String PREF_DEFAULT_LOCALE = "pref_default_locale"; @Override public void onCreate() { super.onCreate(); settings = PreferenceManager.getDefaultSharedPreferences(this); checkLocale(); } public boolean checkLocale () { Configuration config = getResources().getConfiguration(); String lang = settings.getString(PREF_DEFAULT_LOCALE, DEFAULT_LOCALE); if (lang.equals("xx")) { locale = Locale.getDefault(); } else locale = new Locale(lang); boolean updated = false; if (!config.locale.getLanguage().equalsIgnoreCase(lang)) { config.locale = locale; getResources().updateConfiguration(config, getResources().getDisplayMetrics()); updated = true; } return updated; } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); checkLocale(); } }