Merge "Stop using Configuration.setLocale"

main
Tadashi G. Takaoka 2014-04-22 16:48:10 +00:00 committed by Android (Google) Code Review
commit cfdeb9b04b
1 changed files with 7 additions and 7 deletions

View File

@ -35,18 +35,18 @@ public abstract class RunInLocale<T> {
*/ */
public T runInLocale(final Resources res, final Locale newLocale) { public T runInLocale(final Resources res, final Locale newLocale) {
synchronized (sLockForRunInLocale) { synchronized (sLockForRunInLocale) {
final Configuration savedConf = res.getConfiguration(); final Configuration conf = res.getConfiguration();
if (newLocale == null || newLocale.equals(savedConf.locale)) { if (newLocale == null || newLocale.equals(conf.locale)) {
return job(res); return job(res);
} }
final Configuration newConf = new Configuration(); final Locale savedLocale = conf.locale;
newConf.setTo(savedConf);
newConf.setLocale(newLocale);
try { try {
res.updateConfiguration(newConf, null); conf.locale = newLocale;
res.updateConfiguration(conf, null);
return job(res); return job(res);
} finally { } finally {
res.updateConfiguration(savedConf, null); conf.locale = savedLocale;
res.updateConfiguration(conf, null);
} }
} }
} }