Migrate AccountDetailsFragment to PreferenceFragment
- Refactored AccountDetailsFragment to use PreferenceControllers
- Added necesssary preference controllers to separate out logic
- Added tests
Fixes: 117335468
Test: Tested on device
Test: Existing and new tests pass
Change-Id: If701c53b32c846ee3f4a8340efeff664bdf77c23
diff --git a/src/com/android/car/settings/accounts/AccountListPreferenceController.java b/src/com/android/car/settings/accounts/AccountListPreferenceController.java
index 1a04b4b..04bf3ad 100644
--- a/src/com/android/car/settings/accounts/AccountListPreferenceController.java
+++ b/src/com/android/car/settings/accounts/AccountListPreferenceController.java
@@ -90,8 +90,9 @@
public boolean handlePreferenceTreeClick(Preference preference) {
// Show the account's details when an account is clicked on.
if (preference instanceof AccountPreference) {
+ AccountPreference accountPreference = (AccountPreference) preference;
getFragmentController().launchFragment(AccountDetailsFragment.newInstance(
- ((AccountPreference) preference).getAccount(), mUserInfo));
+ accountPreference.getAccount(), accountPreference.getLabel(), mUserInfo));
return true;
}
return false;
@@ -257,11 +258,13 @@
private static class AccountPreference extends Preference {
/** Account that this Preference represents. */
private final Account mAccount;
+ private final CharSequence mLabel;
private AccountPreference(Context context, Account account, CharSequence label,
Drawable icon) {
super(context);
mAccount = account;
+ mLabel = label;
setKey(buildKey(account));
setTitle(account.name);
@@ -279,5 +282,9 @@
public Account getAccount() {
return mAccount;
}
+
+ public CharSequence getLabel() {
+ return mLabel;
+ }
}
}