Modify account settings for better locale resolution
Bug: 16282173 Change-Id: I2ab861464cdbbb1c1b0a5a7231f960d8ed9e90c6
This commit is contained in:
@@ -369,6 +369,8 @@ public class AccountSettings extends SettingsPreferenceFragment
|
||||
if (label == null) {
|
||||
continue;
|
||||
}
|
||||
final String titleResPackageName = helper.getPackageForType(accountType);
|
||||
final int titleResId = helper.getLabelIdForType(accountType);
|
||||
|
||||
final Account[] accounts = AccountManager.get(getActivity())
|
||||
.getAccountsByTypeAsUser(accountType, userHandle);
|
||||
@@ -382,7 +384,8 @@ public class AccountSettings extends SettingsPreferenceFragment
|
||||
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
|
||||
|
||||
accountTypePreferences.add(new AccountPreference(getActivity(), label,
|
||||
AccountSyncSettings.class.getName(), fragmentArguments,
|
||||
titleResPackageName, titleResId, AccountSyncSettings.class.getName(),
|
||||
fragmentArguments,
|
||||
helper.getDrawableForType(getActivity(), accountType)));
|
||||
} else {
|
||||
final Bundle fragmentArguments = new Bundle();
|
||||
@@ -392,7 +395,8 @@ public class AccountSettings extends SettingsPreferenceFragment
|
||||
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
|
||||
|
||||
accountTypePreferences.add(new AccountPreference(getActivity(), label,
|
||||
ManageAccountsSettings.class.getName(), fragmentArguments,
|
||||
titleResPackageName, titleResId, ManageAccountsSettings.class.getName(),
|
||||
fragmentArguments,
|
||||
helper.getDrawableForType(getActivity(), accountType)));
|
||||
}
|
||||
helper.preloadDrawableForType(getActivity(), accountType);
|
||||
@@ -434,6 +438,17 @@ public class AccountSettings extends SettingsPreferenceFragment
|
||||
*/
|
||||
private final CharSequence mTitle;
|
||||
|
||||
/**
|
||||
* Packange name used to resolve the resources of the title shown to the user in the new
|
||||
* fragment.
|
||||
*/
|
||||
private final String mTitleResPackageName;
|
||||
|
||||
/**
|
||||
* Resource id of the title shown to the user in the new fragment.
|
||||
*/
|
||||
private final int mTitleResId;
|
||||
|
||||
/**
|
||||
* Full class name of the fragment to display when this tile is
|
||||
* selected.
|
||||
@@ -447,10 +462,13 @@ public class AccountSettings extends SettingsPreferenceFragment
|
||||
*/
|
||||
private final Bundle mFragmentArguments;
|
||||
|
||||
public AccountPreference(Context context, CharSequence title, String fragment,
|
||||
Bundle fragmentArguments, Drawable icon) {
|
||||
public AccountPreference(Context context, CharSequence title, String titleResPackageName,
|
||||
int titleResId, String fragment, Bundle fragmentArguments,
|
||||
Drawable icon) {
|
||||
super(context);
|
||||
mTitle = title;
|
||||
mTitleResPackageName = titleResPackageName;
|
||||
mTitleResId = titleResId;
|
||||
mFragment = fragment;
|
||||
mFragmentArguments = fragmentArguments;
|
||||
setWidgetLayoutResource(R.layout.account_type_preference);
|
||||
@@ -464,8 +482,9 @@ public class AccountSettings extends SettingsPreferenceFragment
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
if (mFragment != null) {
|
||||
Utils.startWithFragment(
|
||||
getContext(), mFragment, mFragmentArguments, null, 0, 0, mTitle);
|
||||
Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
|
||||
null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
|
||||
mTitleResId, null /* title */);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user