/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.gecko; import org.mozilla.gecko.BrowserLocaleManager; import org.mozilla.gecko.LocaleManager; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.StrictMode; import android.support.v4.app.FragmentActivity; /** * This is a helper class to do typical locale switching operations * without hitting StrictMode errors or adding boilerplate to common * activity subclasses. * * Either call {@link LocaleAware#initializeLocale(Context)} in your * onCreate method, or inherit from LocaleAwareFragmentActivity * or LocaleAwareActivity. */ public class LocaleAware { public static void initializeLocale(Context context) { final LocaleManager localeManager = BrowserLocaleManager.getInstance(); final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads(); StrictMode.allowThreadDiskWrites(); try { localeManager.getAndApplyPersistedLocale(context); } finally { StrictMode.setThreadPolicy(savedPolicy); } } public static class LocaleAwareFragmentActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { LocaleAware.initializeLocale(getApplicationContext()); super.onCreate(savedInstanceState); } } public static class LocaleAwareActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { LocaleAware.initializeLocale(getApplicationContext()); super.onCreate(savedInstanceState); } } }