From ed6a6ca0266346142cfd07389ae9c5b3be6b1eb6 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Fri, 26 Sep 2014 12:29:12 -0700 Subject: [PATCH] Make the system locale available to the decryption UI. Bug: 17659622 Change-Id: I8f7d1c4d1d04ec483b6a3c9bea742f79374b647a --- .../android/settings/CryptKeeperConfirm.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java index 764152590c7..4d6f26b462b 100644 --- a/src/com/android/settings/CryptKeeperConfirm.java +++ b/src/com/android/settings/CryptKeeperConfirm.java @@ -35,8 +35,12 @@ import android.widget.Button; import com.android.internal.widget.LockPatternUtils; +import java.util.Locale; + public class CryptKeeperConfirm extends Fragment { + private static final String TAG = "CryptKeeperConfirm"; + public static class Blank extends Activity { private Handler mHandler = new Handler(); @@ -107,17 +111,26 @@ public class CryptKeeperConfirm extends Fragment { is then persisted, and the settings will be there on future reboots. */ + + // 1. The owner info. LockPatternUtils utils = new LockPatternUtils(getActivity()); utils.setVisiblePatternEnabled(utils.isVisiblePatternEnabled()); if (utils.isOwnerInfoEnabled()) { utils.setOwnerInfo(utils.getOwnerInfo(UserHandle.USER_OWNER), UserHandle.USER_OWNER); } - Intent intent = new Intent(getActivity(), Blank.class); intent.putExtras(getArguments()); - startActivity(intent); + + // 2. The system locale. + try { + IBinder service = ServiceManager.getService("mount"); + IMountService mountService = IMountService.Stub.asInterface(service); + mountService.setField("SystemLocale", Locale.getDefault().toLanguageTag()); + } catch (Exception e) { + Log.e(TAG, "Error storing locale for decryption UI", e); + } } };