Don't apply locale as part of deferred restore
Once the user has entered normal usage their locale configuration is essentially guaranteed to be what they intend to use. Don't override it during deferred restore. (We distinguish based on whether the device is already marked as 'provisioned'.) Bug 62224214 Test: manual Change-Id: Icedef6a86a2b8942937b1384b204def88f2238d2
This commit is contained in:
@@ -37,10 +37,12 @@ import android.provider.Settings;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Slog;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class SettingsHelper {
|
||||
private static final String TAG = "SettingsHelper";
|
||||
private static final String SILENT_RINGTONE = "_silent";
|
||||
private Context mContext;
|
||||
private AudioManager mAudioManager;
|
||||
@@ -324,11 +326,17 @@ public class SettingsHelper {
|
||||
*/
|
||||
void setLocaleData(byte[] data, int size) {
|
||||
// Check if locale was set by the user:
|
||||
Configuration conf = mContext.getResources().getConfiguration();
|
||||
// TODO: The following is not working as intended because the network is forcing a locale
|
||||
// change after registering. Need to find some other way to detect if the user manually
|
||||
// changed the locale
|
||||
if (conf.userSetLocale) return; // Don't change if user set it in the SetupWizard
|
||||
final ContentResolver cr = mContext.getContentResolver();
|
||||
final boolean userSetLocale = mContext.getResources().getConfiguration().userSetLocale;
|
||||
final boolean provisioned = Settings.Global.getInt(cr,
|
||||
Settings.Global.DEVICE_PROVISIONED, 0) != 0;
|
||||
if (userSetLocale || provisioned) {
|
||||
// Don't change if user set it in the SetupWizard, or if this is a post-setup
|
||||
// deferred restore operation
|
||||
Slog.i(TAG, "Not applying restored locale; "
|
||||
+ (userSetLocale ? "user already specified" : "device already provisioned"));
|
||||
return;
|
||||
}
|
||||
|
||||
final String[] availableLocales = mContext.getAssets().getLocales();
|
||||
// Replace "_" with "-" to deal with older backups.
|
||||
|
||||
Reference in New Issue
Block a user