gecko-dev/mobile/android/base/LocaleAware.java
Richard Newman d8d650a7ee Bug 1060536 - Move LocaleAware into Fennec to allow for easier reuse from Search. r=nalexander
--HG--
rename : mobile/android/base/sync/setup/activities/LocaleAware.java => mobile/android/base/LocaleAware.java
2014-08-29 16:14:54 -07:00

53 lines
1.8 KiB
Java

/* 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
* <code>onCreate</code> method, or inherit from <code>LocaleAwareFragmentActivity</code>
* or <code>LocaleAwareActivity</code>.
*/
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);
}
}
}