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;
+        }
     }
 }