Merge "Fix system locale propagation during user creation." into nyc-dev

am: ce9f5e3657

* commit 'ce9f5e3657b7a8fb68c6c65a2cd5a27eaf556cc8':
  Fix system locale propagation during user creation.

Change-Id: If31dcbe28d108ec12aa9f4aef4382dcb2da90aaf
This commit is contained in:
Seigo Nonaka
2016-05-26 04:07:40 +00:00
committed by android-build-merger
2 changed files with 25 additions and 7 deletions

View File

@@ -2219,19 +2219,37 @@ public final class Settings {
* @param outConfig Where to place the configuration settings.
*/
public static void getConfiguration(ContentResolver cr, Configuration outConfig) {
getConfigurationForUser(cr, outConfig, UserHandle.myUserId());
adjustConfigurationForUser(cr, outConfig, UserHandle.myUserId(),
false /* updateSettingsIfEmpty */);
}
/** @hide */
public static void getConfigurationForUser(ContentResolver cr, Configuration outConfig,
int userHandle) {
public static void adjustConfigurationForUser(ContentResolver cr, Configuration outConfig,
int userHandle, boolean updateSettingsIfEmpty) {
outConfig.fontScale = Settings.System.getFloatForUser(
cr, FONT_SCALE, DEFAULT_FONT_SCALE, userHandle);
if (outConfig.fontScale < 0) {
outConfig.fontScale = DEFAULT_FONT_SCALE;
}
outConfig.setLocales(LocaleList.forLanguageTags(
Settings.System.getStringForUser(cr, SYSTEM_LOCALES, userHandle)));
final String localeValue =
Settings.System.getStringForUser(cr, SYSTEM_LOCALES, userHandle);
if (localeValue != null) {
outConfig.setLocales(LocaleList.forLanguageTags(localeValue));
} else {
// Do not update configuration with emtpy settings since we need to take over the
// locale list of previous user if the settings value is empty. This happens when a
// new user is created.
if (updateSettingsIfEmpty) {
// Make current configuration persistent. This is necessary the first time a
// user log in. At the first login, the configuration settings are empty, so we
// need to store the adjusted configuration as the initial settings.
Settings.System.putStringForUser(
cr, SYSTEM_LOCALES, outConfig.getLocales().toLanguageTags(),
userHandle);
}
}
}
/**