Modify account settings for better locale resolution
Bug: 16282173
Change-Id: I2ab861464cdbbb1c1b0a5a7231f960d8ed9e90c6
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 37fcc87..dc5675c 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -184,6 +184,11 @@
* that fragment.
*/
public static final String EXTRA_SHOW_FRAGMENT_TITLE = ":settings:show_fragment_title";
+ /**
+ * The package name used to resolve the title resource id.
+ */
+ public static final String EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME =
+ ":settings:show_fragment_title_res_package_name";
public static final String EXTRA_SHOW_FRAGMENT_TITLE_RESID =
":settings:show_fragment_title_resid";
public static final String EXTRA_SHOW_FRAGMENT_AS_SHORTCUT =
@@ -657,7 +662,23 @@
if (initialTitleResId > 0) {
mInitialTitle = null;
mInitialTitleResId = initialTitleResId;
- setTitle(mInitialTitleResId);
+
+ final String initialTitleResPackageName = intent.getStringExtra(
+ EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME);
+ if (initialTitleResPackageName != null) {
+ try {
+ Context authContext = createPackageContextAsUser(initialTitleResPackageName,
+ 0 /* flags */, new UserHandle(UserHandle.myUserId()));
+ mInitialTitle = authContext.getResources().getText(mInitialTitleResId);
+ setTitle(mInitialTitle);
+ mInitialTitleResId = -1;
+ return;
+ } catch (NameNotFoundException e) {
+ Log.w(LOG_TAG, "Could not find package" + initialTitleResPackageName);
+ }
+ } else {
+ setTitle(mInitialTitleResId);
+ }
} else {
mInitialTitleResId = -1;
final String initialTitle = intent.getStringExtra(EXTRA_SHOW_FRAGMENT_TITLE);