Renaming BaseAccountType to AccountType

Change-Id: Iff47bac0e1a118f4a5319526304df16cb89bd0cd
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index fd9eb58..4dd9036 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -16,7 +16,7 @@
 
 package com.android.contacts;
 
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.util.Constants;
 
 import android.content.ContentResolver;
@@ -459,10 +459,10 @@
      * Utility for creating a standard tab indicator view.
      *
      * @param parent The parent ViewGroup to attach the new view to.
-     * @param source The {@link BaseAccountType} to build the tab view from.
+     * @param source The {@link AccountType} to build the tab view from.
      * @return The tab indicator View.
      */
-    public static View createTabIndicatorView(ViewGroup parent, BaseAccountType source) {
+    public static View createTabIndicatorView(ViewGroup parent, AccountType source) {
         Drawable icon = null;
         if (source != null) {
             icon = source.getDisplayIcon(parent.getContext());
diff --git a/src/com/android/contacts/SplitAggregateView.java b/src/com/android/contacts/SplitAggregateView.java
index a7a56b2..833d819 100644
--- a/src/com/android/contacts/SplitAggregateView.java
+++ b/src/com/android/contacts/SplitAggregateView.java
@@ -16,7 +16,7 @@
 
 package com.android.contacts;
 
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.model.AccountTypes;
 
 import android.content.Context;
@@ -247,8 +247,8 @@
             cache.additionalData.setText(info.getAdditionalData());
 
             Drawable icon = null;
-            BaseAccountType source = mSources.getInflatedSource(info.accountType,
-                    BaseAccountType.LEVEL_SUMMARY);
+            AccountType source = mSources.getInflatedSource(info.accountType,
+                    AccountType.LEVEL_SUMMARY);
             if (source != null) {
                 icon = source.getDisplayIcon(getContext());
             }
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index a01a9d9..b6c7586 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -48,8 +48,6 @@
     private static final String EXTRA_KEY_SEARCH_MODE = "navBar.searchMode";
     private static final String EXTRA_KEY_QUERY = "navBar.query";
 
-    private static final String KEY_MODE_DEFAULT = "mode_default";
-
     private boolean mSearchMode;
     private String mQueryString;
 
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index f9c3918..4022aba 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -18,7 +18,7 @@
 
 import com.android.contacts.R;
 import com.android.contacts.model.AccountTypes;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.google.android.collect.Sets;
 
 import android.app.Activity;
@@ -127,8 +127,8 @@
                 final String accountType = cursor.getString(COLUMN_INDEX_ACCOUNT_TYPE);
                 contactId = cursor.getLong(COLUMN_INDEX_CONTACT_ID);
                 lookupKey = cursor.getString(COLUMN_INDEX_LOOKUP_KEY);
-                BaseAccountType contactsSource = sources.getInflatedSource(accountType,
-                        BaseAccountType.LEVEL_SUMMARY);
+                AccountType contactsSource = sources.getInflatedSource(accountType,
+                        AccountType.LEVEL_SUMMARY);
                 boolean readonly = contactsSource != null && contactsSource.readOnly;
                 if (readonly) {
                     readOnlyRawContacts.add(rawContactId);
diff --git a/src/com/android/contacts/interactions/PhoneNumberInteraction.java b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
index ac3c3c8..c9fe0c6 100644
--- a/src/com/android/contacts/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/contacts/interactions/PhoneNumberInteraction.java
@@ -19,9 +19,9 @@
 import com.android.contacts.Collapser;
 import com.android.contacts.Collapser.Collapsible;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.StringInflater;
+import com.android.contacts.model.AccountType;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.StringInflater;
 import com.android.contacts.model.AccountTypes;
 
 import android.app.Activity;
@@ -140,8 +140,8 @@
             View view = super.getView(position, convertView, parent);
 
             PhoneItem item = getItem(position);
-            BaseAccountType source = mSources.getInflatedSource(item.accountType,
-                    BaseAccountType.LEVEL_SUMMARY);
+            AccountType source = mSources.getInflatedSource(item.accountType,
+                    AccountType.LEVEL_SUMMARY);
 
             // Obtain a string representation of the phone type specific to the
             // ContactSource associated with that phone number
diff --git a/src/com/android/contacts/list/ContactListFilterLoader.java b/src/com/android/contacts/list/ContactListFilterLoader.java
index 663a6a8..c0c2fac 100644
--- a/src/com/android/contacts/list/ContactListFilterLoader.java
+++ b/src/com/android/contacts/list/ContactListFilterLoader.java
@@ -17,7 +17,7 @@
 package com.android.contacts.list;
 
 import com.android.contacts.model.AccountTypes;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 
 import android.accounts.Account;
 import android.content.AsyncTaskLoader;
@@ -69,8 +69,8 @@
         final AccountTypes sources = AccountTypes.getInstance(context);
         ArrayList<Account> accounts = sources.getAccounts(false);
         for (Account account : accounts) {
-            BaseAccountType source = sources.getInflatedSource(
-                    account.type, BaseAccountType.LEVEL_SUMMARY);
+            AccountType source = sources.getInflatedSource(
+                    account.type, AccountType.LEVEL_SUMMARY);
             Drawable icon = source != null ? source.getDisplayIcon(getContext()) : null;
             results.add(new ContactListFilter(account.type, account.name, icon, account.name));
         }
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
index 6221d08..c836640 100644
--- a/src/com/android/contacts/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -18,7 +18,7 @@
 
 import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.GoogleAccountType;
 import com.android.contacts.model.AccountTypes;
@@ -569,8 +569,8 @@
 
             final AccountDisplay account = (AccountDisplay)this.getGroup(groupPosition);
 
-            final BaseAccountType source = mSources.getInflatedSource(account.mType,
-                    BaseAccountType.LEVEL_SUMMARY);
+            final AccountType source = mSources.getInflatedSource(account.mType,
+                    AccountType.LEVEL_SUMMARY);
 
             text1.setText(account.mName);
             text2.setText(source.getDisplayLabel(mContext));
diff --git a/src/com/android/contacts/model/BaseAccountType.java b/src/com/android/contacts/model/AccountType.java
similarity index 98%
rename from src/com/android/contacts/model/BaseAccountType.java
rename to src/com/android/contacts/model/AccountType.java
index 7ebf3d0..e62d0ba 100644
--- a/src/com/android/contacts/model/BaseAccountType.java
+++ b/src/com/android/contacts/model/AccountType.java
@@ -47,7 +47,7 @@
  * <p>
  * In the future this may be inflated from XML defined by a data source.
  */
-public abstract class BaseAccountType {
+public abstract class AccountType {
     /**
      * The {@link RawContacts#ACCOUNT_TYPE} these constraints apply to.
      */
@@ -92,7 +92,7 @@
     }
 
     /**
-     * Ensure that this {@link BaseAccountType} has been inflated to the
+     * Ensure that this {@link AccountType} has been inflated to the
      * requested level.
      */
     public synchronized void ensureInflated(Context context, int inflateLevel) {
@@ -108,7 +108,7 @@
     protected abstract void inflate(Context context, int inflateLevel);
 
     /**
-     * Invalidate any cache for this {@link BaseAccountType}, removing all
+     * Invalidate any cache for this {@link AccountType}, removing all
      * inflated data. Calling {@link #ensureInflated(Context, int)} will
      * populate again from scratch.
      */
diff --git a/src/com/android/contacts/model/AccountTypes.java b/src/com/android/contacts/model/AccountTypes.java
index f7a49a4..9b282fb 100644
--- a/src/com/android/contacts/model/AccountTypes.java
+++ b/src/com/android/contacts/model/AccountTypes.java
@@ -16,7 +16,7 @@
 
 package com.android.contacts.model;
 
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType.DataKind;
 import com.google.android.collect.Lists;
 import com.google.android.collect.Maps;
 import com.google.android.collect.Sets;
@@ -44,7 +44,7 @@
 import java.util.HashSet;
 
 /**
- * Singleton holder for all parsed {@link BaseAccountType} available on the
+ * Singleton holder for all parsed {@link AccountType} available on the
  * system, typically filled through {@link PackageManager} queries.
  */
 public class AccountTypes extends BroadcastReceiver implements OnAccountsUpdateListener {
@@ -54,9 +54,9 @@
     private Context mApplicationContext;
     private AccountManager mAccountManager;
 
-    private BaseAccountType mFallbackSource = null;
+    private AccountType mFallbackSource = null;
 
-    private HashMap<String, BaseAccountType> mSources = Maps.newHashMap();
+    private HashMap<String, AccountType> mSources = Maps.newHashMap();
     private HashSet<String> mKnownPackages = Sets.newHashSet();
 
     private static SoftReference<AccountTypes> sInstance = null;
@@ -107,13 +107,13 @@
     }
 
     /** @hide exposed for unit tests */
-    public AccountTypes(BaseAccountType... sources) {
-        for (BaseAccountType source : sources) {
+    public AccountTypes(AccountType... sources) {
+        for (AccountType source : sources) {
             addSource(source);
         }
     }
 
-    protected void addSource(BaseAccountType source) {
+    protected void addSource(AccountType source) {
         mSources.put(source.accountType, source);
         mKnownPackages.add(source.resPackageName);
     }
@@ -155,7 +155,7 @@
     }
 
     protected void invalidateCache(String packageName) {
-        for (BaseAccountType source : mSources.values()) {
+        for (AccountType source : mSources.values()) {
             if (TextUtils.equals(packageName, source.resPackageName)) {
                 // Invalidate any cache for the changed package
                 source.invalidateCache();
@@ -165,7 +165,7 @@
 
     protected void invalidateAllCache() {
         mFallbackSource.invalidateCache();
-        for (BaseAccountType source : mSources.values()) {
+        for (AccountType source : mSources.values()) {
             source.invalidateCache();
         }
     }
@@ -201,7 +201,7 @@
                 final String accountType = sync.accountType;
                 final AuthenticatorDescription auth = findAuthenticator(auths, accountType);
 
-                BaseAccountType source;
+                AccountType source;
                 if (GoogleAccountType.ACCOUNT_TYPE.equals(accountType)) {
                     source = new GoogleAccountType(auth.packageName);
                 } else if (ExchangeAccountType.ACCOUNT_TYPE.equals(accountType)) {
@@ -240,7 +240,7 @@
     }
 
     /**
-     * Return list of all known, writable {@link BaseAccountType}. AccountTypes
+     * Return list of all known, writable {@link AccountType}. AccountTypes
      * returned may require inflation before they can be used.
      */
     public ArrayList<Account> getAccounts(boolean writableOnly) {
@@ -263,8 +263,8 @@
             // account.name, account.type, syncable));
             if (syncable) {
                 // Ensure we have details loaded for each account
-                final BaseAccountType accountType = getInflatedSource(account.type,
-                        BaseAccountType.LEVEL_SUMMARY);
+                final AccountType accountType = getInflatedSource(account.type,
+                        AccountType.LEVEL_SUMMARY);
                 final boolean hasContacts = accountType != null;
                 final boolean matchesWritable =
                     (!writableOnly || (writableOnly && !accountType.readOnly));
@@ -278,7 +278,7 @@
 
     /**
      * Find the best {@link DataKind} matching the requested
-     * {@link BaseAccountType#accountType} and {@link DataKind#mimeType}. If no
+     * {@link AccountType#accountType} and {@link DataKind#mimeType}. If no
      * direct match found, we try searching {@link #mFallbackSource}.
      * When fourceRefresh is set to true, cache is refreshed and inflation of each
      * EditField will occur.
@@ -288,7 +288,7 @@
         DataKind kind = null;
 
         // Try finding source and kind matching request
-        final BaseAccountType source = mSources.get(accountType);
+        final AccountType source = mSources.get(accountType);
         if (source != null) {
             source.ensureInflated(context, inflateLevel);
             kind = source.getKindForMimetype(mimeType);
@@ -308,11 +308,11 @@
     }
 
     /**
-     * Return {@link BaseAccountType} for the given account type.
+     * Return {@link AccountType} for the given account type.
      */
-    public BaseAccountType getInflatedSource(String accountType, int inflateLevel) {
+    public AccountType getInflatedSource(String accountType, int inflateLevel) {
         // Try finding specific source, otherwise use fallback
-        BaseAccountType source = mSources.get(accountType);
+        AccountType source = mSources.get(accountType);
         if (source == null) source = mFallbackSource;
 
         if (source.isInflated(inflateLevel)) {
diff --git a/src/com/android/contacts/model/EntityModifier.java b/src/com/android/contacts/model/EntityModifier.java
index 8765a3f..a990a11 100644
--- a/src/com/android/contacts/model/EntityModifier.java
+++ b/src/com/android/contacts/model/EntityModifier.java
@@ -17,9 +17,9 @@
 package com.android.contacts.model;
 
 import com.android.contacts.ContactsUtils;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.EditField;
-import com.android.contacts.model.BaseAccountType.EditType;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.EditField;
+import com.android.contacts.model.AccountType.EditType;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.google.android.collect.Lists;
 
@@ -51,7 +51,7 @@
 
 /**
  * Helper methods for modifying an {@link EntityDelta}, such as inserting
- * new rows, or enforcing {@link BaseAccountType}.
+ * new rows, or enforcing {@link AccountType}.
  */
 public class EntityModifier {
     private static final String TAG = "EntityModifier";
@@ -59,7 +59,7 @@
     /**
      * For the given {@link EntityDelta}, determine if the given
      * {@link DataKind} could be inserted under specific
-     * {@link BaseAccountType}.
+     * {@link AccountType}.
      */
     public static boolean canInsert(EntityDelta state, DataKind kind) {
         // Insert possible when have valid types and under overall maximum
@@ -82,7 +82,7 @@
      * Ensure that at least one of the given {@link DataKind} exists in the
      * given {@link EntityDelta} state, and try creating one if none exist.
      */
-    public static void ensureKindExists(EntityDelta state, BaseAccountType source, String mimeType) {
+    public static void ensureKindExists(EntityDelta state, AccountType source, String mimeType) {
         final DataKind kind = source.getKindForMimetype(mimeType);
         final boolean hasChild = state.getMimeEntriesCount(mimeType, true) > 0;
 
@@ -98,7 +98,7 @@
     /**
      * For the given {@link EntityDelta} and {@link DataKind}, return the
      * list possible {@link EditType} options available based on
-     * {@link BaseAccountType}.
+     * {@link AccountType}.
      */
     public static ArrayList<EditType> getValidTypes(EntityDelta state, DataKind kind) {
         return getValidTypes(state, kind, null, true, null);
@@ -107,7 +107,7 @@
     /**
      * For the given {@link EntityDelta} and {@link DataKind}, return the
      * list possible {@link EditType} options available based on
-     * {@link BaseAccountType}.
+     * {@link AccountType}.
      *
      * @param forceInclude Always include this {@link EditType} in the returned
      *            list, even when an otherwise-invalid choice. This is useful
@@ -121,7 +121,7 @@
     /**
      * For the given {@link EntityDelta} and {@link DataKind}, return the
      * list possible {@link EditType} options available based on
-     * {@link BaseAccountType}.
+     * {@link AccountType}.
      *
      * @param forceInclude Always include this {@link EditType} in the returned
      *            list, even when an otherwise-invalid choice. This is useful
@@ -351,24 +351,24 @@
      * Processing to trim any empty {@link ValuesDelta} and {@link EntityDelta}
      * from the given {@link EntityDeltaList}, assuming the given {@link AccountTypes}
      * dictates the structure for various fields. This method ignores rows not
-     * described by the {@link BaseAccountType}.
+     * described by the {@link AccountType}.
      */
     public static void trimEmpty(EntityDeltaList set, AccountTypes sources) {
         for (EntityDelta state : set) {
             final String accountType = state.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
-            final BaseAccountType source = sources.getInflatedSource(accountType,
-                    BaseAccountType.LEVEL_MIMETYPES);
+            final AccountType source = sources.getInflatedSource(accountType,
+                    AccountType.LEVEL_MIMETYPES);
             trimEmpty(state, source);
         }
     }
 
     /**
      * Processing to trim any empty {@link ValuesDelta} rows from the given
-     * {@link EntityDelta}, assuming the given {@link BaseAccountType} dictates
+     * {@link EntityDelta}, assuming the given {@link AccountType} dictates
      * the structure for various fields. This method ignores rows not described
-     * by the {@link BaseAccountType}.
+     * by the {@link AccountType}.
      */
-    public static void trimEmpty(EntityDelta state, BaseAccountType source) {
+    public static void trimEmpty(EntityDelta state, AccountType source) {
         boolean hasValues = false;
 
         // Walk through entries for each well-known kind
@@ -448,7 +448,7 @@
      * Parse the given {@link Bundle} into the given {@link EntityDelta} state,
      * assuming the extras defined through {@link Intents}.
      */
-    public static void parseExtras(Context context, BaseAccountType source, EntityDelta state,
+    public static void parseExtras(Context context, AccountType source, EntityDelta state,
             Bundle extras) {
         if (extras == null || extras.size() == 0) {
             // Bail early if no useful data
@@ -543,7 +543,7 @@
     }
 
     private static void parseValues(
-            EntityDelta state, BaseAccountType source, ArrayList<ContentValues> dataValueList) {
+            EntityDelta state, AccountType source, ArrayList<ContentValues> dataValueList) {
         for (ContentValues values : dataValueList) {
             String mimeType = values.getAsString(Data.MIMETYPE);
             if (TextUtils.isEmpty(mimeType)) {
diff --git a/src/com/android/contacts/model/ExchangeAccountType.java b/src/com/android/contacts/model/ExchangeAccountType.java
index 7aa6ace..cd4b1f9 100644
--- a/src/com/android/contacts/model/ExchangeAccountType.java
+++ b/src/com/android/contacts/model/ExchangeAccountType.java
@@ -68,9 +68,9 @@
 
     @Override
     protected DataKind inflateStructuredName(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateStructuredName(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateStructuredName(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             boolean displayOrderPrimary =
                     context.getResources().getBoolean(R.bool.config_editor_field_order_primary);
             kind.typeOverallMax = 1;
@@ -112,9 +112,9 @@
 
     @Override
     protected DataKind inflateNickname(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateNickname(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateNickname(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.isList = false;
 
             kind.fieldList = Lists.newArrayList();
@@ -127,9 +127,9 @@
 
     @Override
     protected DataKind inflatePhone(Context context, int inflateLevel) {
-        final DataKind kind = super.inflatePhone(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflatePhone(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeColumn = Phone.TYPE;
             kind.typeList = Lists.newArrayList();
             kind.typeList.add(buildPhoneType(Phone.TYPE_HOME).setSpecificMax(2));
@@ -159,9 +159,9 @@
 
     @Override
     protected DataKind inflateEmail(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateEmail(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateEmail(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeOverallMax = 3;
 
             kind.fieldList = Lists.newArrayList();
@@ -173,9 +173,9 @@
 
     @Override
     protected DataKind inflateStructuredPostal(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateStructuredPostal(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateStructuredPostal(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             final boolean useJapaneseOrder =
                 Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
             kind.typeColumn = StructuredPostal.TYPE;
@@ -215,9 +215,9 @@
 
     @Override
     protected DataKind inflateIm(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateIm(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateIm(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             // Types are not supported for IM. There can be 3 IMs, but OWA only shows only the first
             kind.typeOverallMax = 3;
 
@@ -233,9 +233,9 @@
 
     @Override
     protected DataKind inflateOrganization(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateOrganization(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateOrganization(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.isList = false;
 
             kind.fieldList = Lists.newArrayList();
@@ -250,9 +250,9 @@
 
     @Override
     protected DataKind inflatePhoto(Context context, int inflateLevel) {
-        final DataKind kind = super.inflatePhoto(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflatePhoto(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeOverallMax = 1;
 
             kind.fieldList = Lists.newArrayList();
@@ -264,9 +264,9 @@
 
     @Override
     protected DataKind inflateNote(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateNote(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateNote(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.fieldList = Lists.newArrayList();
             kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE));
         }
@@ -300,9 +300,9 @@
 
     @Override
     protected DataKind inflateWebsite(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateWebsite(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateWebsite(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.isList = false;
 
             kind.fieldList = Lists.newArrayList();
diff --git a/src/com/android/contacts/model/ExternalAccountType.java b/src/com/android/contacts/model/ExternalAccountType.java
index ee6f603..5e0d853 100644
--- a/src/com/android/contacts/model/ExternalAccountType.java
+++ b/src/com/android/contacts/model/ExternalAccountType.java
@@ -87,7 +87,7 @@
     }
 
     /**
-     * Ensure that the constraint rules behind this {@link BaseAccountType} have
+     * Ensure that the constraint rules behind this {@link AccountType} have
      * been inflated. Because this may involve parsing meta-data from
      * {@link PackageManager}, it shouldn't be called from a UI thread.
      */
@@ -113,7 +113,7 @@
     }
 
     /**
-     * Inflate this {@link BaseAccountType} from the given parser. This may only
+     * Inflate this {@link AccountType} from the given parser. This may only
      * load details matching the publicly-defined schema.
      */
     protected void inflate(Context context, XmlPullParser parser) {
diff --git a/src/com/android/contacts/model/FallbackAccountType.java b/src/com/android/contacts/model/FallbackAccountType.java
index 314e1a6..ff3f5c5 100644
--- a/src/com/android/contacts/model/FallbackAccountType.java
+++ b/src/com/android/contacts/model/FallbackAccountType.java
@@ -40,7 +40,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Website;
 import android.view.inputmethod.EditorInfo;
 
-public class FallbackAccountType extends BaseAccountType {
+public class FallbackAccountType extends AccountType {
     protected static final int FLAGS_PHONE = EditorInfo.TYPE_CLASS_PHONE;
     protected static final int FLAGS_EMAIL = EditorInfo.TYPE_CLASS_TEXT
             | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
@@ -121,7 +121,7 @@
             kind.actionBody = new SimpleInflater(Nickname.NAME);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.fieldList = Lists.newArrayList();
             kind.fieldList.add(new EditField(StructuredName.DISPLAY_NAME,
                     R.string.full_name, FLAGS_PERSON_NAME).setShortForm(true));
@@ -179,7 +179,7 @@
             kind.actionBody = new SimpleInflater(Nickname.NAME);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.defaultValues = new ContentValues();
             kind.defaultValues.put(Nickname.TYPE, Nickname.TYPE_DEFAULT);
 
@@ -202,7 +202,7 @@
             kind.actionBody = new SimpleInflater(Phone.NUMBER);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeColumn = Phone.TYPE;
             kind.typeList = Lists.newArrayList();
             kind.typeList.add(buildPhoneType(Phone.TYPE_HOME));
@@ -245,7 +245,7 @@
             kind.actionBody = new SimpleInflater(Email.DATA);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeColumn = Email.TYPE;
             kind.typeList = Lists.newArrayList();
             kind.typeList.add(buildEmailType(Email.TYPE_HOME));
@@ -271,7 +271,7 @@
             kind.actionBody = new SimpleInflater(StructuredPostal.FORMATTED_ADDRESS);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeColumn = StructuredPostal.TYPE;
             kind.typeList = Lists.newArrayList();
             kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME));
@@ -298,7 +298,7 @@
             kind.actionBody = new SimpleInflater(Im.DATA);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             // NOTE: even though a traditional "type" exists, for editing
             // purposes we're using the protocol to pick labels
 
@@ -334,7 +334,7 @@
             kind.actionBody = new SimpleInflater(Organization.TITLE);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.isList = false;
 
             kind.fieldList = Lists.newArrayList();
@@ -353,7 +353,7 @@
             kind = addKind(new DataKind(Photo.CONTENT_ITEM_TYPE, -1, -1, -1, true));
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.fieldList = Lists.newArrayList();
             kind.fieldList.add(new EditField(Photo.PHOTO, -1, -1));
         }
@@ -371,7 +371,7 @@
             kind.actionBody = new SimpleInflater(Note.NOTE);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.fieldList = Lists.newArrayList();
             kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE));
         }
@@ -388,7 +388,7 @@
             kind.actionBody = new SimpleInflater(Website.URL);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.defaultValues = new ContentValues();
             kind.defaultValues.put(Website.TYPE, Website.TYPE_OTHER);
 
@@ -419,7 +419,7 @@
             kind.actionBody = new SimpleInflater(SipAddress.SIP_ADDRESS);
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.fieldList = Lists.newArrayList();
             kind.fieldList.add(new EditField(SipAddress.SIP_ADDRESS,
                                              R.string.label_sip_address, FLAGS_SIP_ADDRESS));
@@ -437,7 +437,7 @@
             kind.isList = false;
         }
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.fieldList = Lists.newArrayList();
             kind.fieldList.add(new EditField(GroupMembership.GROUP_ROW_ID, -1, -1));
         }
diff --git a/src/com/android/contacts/model/GoogleAccountType.java b/src/com/android/contacts/model/GoogleAccountType.java
index 5610147..cd14696 100644
--- a/src/com/android/contacts/model/GoogleAccountType.java
+++ b/src/com/android/contacts/model/GoogleAccountType.java
@@ -50,9 +50,9 @@
 
     @Override
     protected DataKind inflatePhone(Context context, int inflateLevel) {
-        final DataKind kind = super.inflatePhone(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflatePhone(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeColumn = Phone.TYPE;
             kind.typeList = Lists.newArrayList();
             kind.typeList.add(buildPhoneType(Phone.TYPE_HOME));
@@ -74,9 +74,9 @@
 
     @Override
     protected DataKind inflateEmail(Context context, int inflateLevel) {
-        final DataKind kind = super.inflateEmail(context, BaseAccountType.LEVEL_MIMETYPES);
+        final DataKind kind = super.inflateEmail(context, AccountType.LEVEL_MIMETYPES);
 
-        if (inflateLevel >= BaseAccountType.LEVEL_CONSTRAINTS) {
+        if (inflateLevel >= AccountType.LEVEL_CONSTRAINTS) {
             kind.typeColumn = Email.TYPE;
             kind.typeList = Lists.newArrayList();
             kind.typeList.add(buildEmailType(Email.TYPE_HOME));
diff --git a/src/com/android/contacts/preference/ContactsPreferenceActivity.java b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
index 3ec2e61..eb65b72 100644
--- a/src/com/android/contacts/preference/ContactsPreferenceActivity.java
+++ b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
@@ -18,7 +18,7 @@
 
 import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.GoogleAccountType;
 import com.android.contacts.model.AccountTypes;
diff --git a/src/com/android/contacts/quickcontact/QuickContactWindow.java b/src/com/android/contacts/quickcontact/QuickContactWindow.java
index cf2e81d..5e2b02f 100644
--- a/src/com/android/contacts/quickcontact/QuickContactWindow.java
+++ b/src/com/android/contacts/quickcontact/QuickContactWindow.java
@@ -20,8 +20,8 @@
 import com.android.contacts.ContactPresenceIconUtil;
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.AccountTypes;
 import com.android.contacts.util.Constants;
 import com.android.contacts.util.DataStatus;
@@ -1219,7 +1219,7 @@
             }
 
             final DataKind kind = sources.getKindOrFallback(accountType, mimeType, mContext,
-                    BaseAccountType.LEVEL_MIMETYPES);
+                    AccountType.LEVEL_MIMETYPES);
 
             if (kind != null) {
                 // Build an action for this data entry, find a mapping to a UI
@@ -1240,7 +1240,7 @@
             final boolean hasPresence = !cursor.isNull(DataQuery.PRESENCE);
             if (hasPresence && Email.CONTENT_ITEM_TYPE.equals(mimeType)) {
                 final DataKind imKind = sources.getKindOrFallback(accountType,
-                        Im.CONTENT_ITEM_TYPE, mContext, BaseAccountType.LEVEL_MIMETYPES);
+                        Im.CONTENT_ITEM_TYPE, mContext, AccountType.LEVEL_MIMETYPES);
                 if (imKind != null) {
                     final Action action = new DataAction(mContext, Im.CONTENT_ITEM_TYPE, imKind,
                             dataId, cursor);
diff --git a/src/com/android/contacts/util/AccountSelectionUtil.java b/src/com/android/contacts/util/AccountSelectionUtil.java
index b27b32c..0035d6d 100644
--- a/src/com/android/contacts/util/AccountSelectionUtil.java
+++ b/src/com/android/contacts/util/AccountSelectionUtil.java
@@ -32,7 +32,7 @@
 import android.widget.TextView;
 
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.model.AccountTypes;
 
 import java.util.List;
@@ -118,9 +118,9 @@
                         (TextView)convertView.findViewById(android.R.id.text2);
 
                 final Account account = this.getItem(position);
-                final BaseAccountType source =
+                final AccountType source =
                     sources.getInflatedSource(account.type,
-                            BaseAccountType.LEVEL_SUMMARY);
+                            AccountType.LEVEL_SUMMARY);
                 final Context context = getContext();
 
                 text1.setText(account.name);
diff --git a/src/com/android/contacts/util/AccountsListAdapter.java b/src/com/android/contacts/util/AccountsListAdapter.java
index 09189bb..260a1c3 100644
--- a/src/com/android/contacts/util/AccountsListAdapter.java
+++ b/src/com/android/contacts/util/AccountsListAdapter.java
@@ -18,7 +18,7 @@
 
 import com.android.contacts.R;
 import com.android.contacts.model.AccountTypes;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 
 import android.accounts.Account;
 import android.content.Context;
@@ -57,8 +57,8 @@
         final ImageView icon = (ImageView)resultView.findViewById(android.R.id.icon);
 
         final Account account = mAccounts.get(position);
-        final BaseAccountType source = mSources.getInflatedSource(account.type,
-                BaseAccountType.LEVEL_SUMMARY);
+        final AccountType source = mSources.getInflatedSource(account.type,
+                AccountType.LEVEL_SUMMARY);
 
         text1.setText(account.name);
         text2.setText(source.getDisplayLabel(mContext));
diff --git a/src/com/android/contacts/views/detail/ContactDetailFragment.java b/src/com/android/contacts/views/detail/ContactDetailFragment.java
index de00eff..62da845 100644
--- a/src/com/android/contacts/views/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/views/detail/ContactDetailFragment.java
@@ -25,9 +25,9 @@
 import com.android.contacts.R;
 import com.android.contacts.TypePrecedence;
 import com.android.contacts.model.AccountTypes;
-import com.android.contacts.model.BaseAccountType;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.EditType;
+import com.android.contacts.model.AccountType;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.EditType;
 import com.android.contacts.util.Constants;
 import com.android.contacts.util.DataStatus;
 import com.android.contacts.util.DateUtils;
@@ -378,8 +378,8 @@
             if (!mRawContactIds.contains(rawContactId)) {
                 mRawContactIds.add(rawContactId);
             }
-            BaseAccountType contactsSource = sources.getInflatedSource(accountType,
-                    BaseAccountType.LEVEL_SUMMARY);
+            AccountType contactsSource = sources.getInflatedSource(accountType,
+                    AccountType.LEVEL_SUMMARY);
             if (contactsSource == null || !contactsSource.readOnly) {
                 mWritableRawContactIds.add(rawContactId);
             }
@@ -401,7 +401,7 @@
                 }
 
                 final DataKind kind = sources.getKindOrFallback(accountType, mimeType, mContext,
-                        BaseAccountType.LEVEL_CONSTRAINTS);
+                        AccountType.LEVEL_CONSTRAINTS);
                 if (kind == null) continue;
 
                 final ViewEntry entry = ViewEntry.fromValues(mContext, mimeType, kind, dataId,
@@ -458,7 +458,7 @@
                     if (status != null) {
                         final String imMime = Im.CONTENT_ITEM_TYPE;
                         final DataKind imKind = sources.getKindOrFallback(accountType,
-                                imMime, mContext, BaseAccountType.LEVEL_MIMETYPES);
+                                imMime, mContext, AccountType.LEVEL_MIMETYPES);
                         final ViewEntry imEntry = ViewEntry.fromValues(mContext,
                                 imMime, imKind, dataId, entryValues);
                         final ImActions imActions = ContactsUtils.buildImActions(entryValues);
diff --git a/src/com/android/contacts/views/editor/AggregationSuggestionView.java b/src/com/android/contacts/views/editor/AggregationSuggestionView.java
index 3fcc11b..ae703ac 100644
--- a/src/com/android/contacts/views/editor/AggregationSuggestionView.java
+++ b/src/com/android/contacts/views/editor/AggregationSuggestionView.java
@@ -18,7 +18,7 @@
 
 import com.android.contacts.R;
 import com.android.contacts.model.AccountTypes;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.views.editor.AggregationSuggestionEngine.RawContact;
 import com.android.contacts.views.editor.AggregationSuggestionEngine.Suggestion;
 import com.google.android.collect.Lists;
@@ -121,8 +121,8 @@
             if (accountType == null) {
                 return true;
             }
-            BaseAccountType source = sources.getInflatedSource(
-                    accountType, BaseAccountType.LEVEL_SUMMARY);
+            AccountType source = sources.getInflatedSource(
+                    accountType, AccountType.LEVEL_SUMMARY);
             if (!source.readOnly) {
                 return true;
             }
diff --git a/src/com/android/contacts/views/editor/BaseRawContactEditorView.java b/src/com/android/contacts/views/editor/BaseRawContactEditorView.java
index 76c37d7..2cc3a81 100644
--- a/src/com/android/contacts/views/editor/BaseRawContactEditorView.java
+++ b/src/com/android/contacts/views/editor/BaseRawContactEditorView.java
@@ -16,8 +16,8 @@
 
 package com.android.contacts.views.editor;
 
-import com.android.contacts.model.BaseAccountType;
-import com.android.contacts.model.BaseAccountType.EditType;
+import com.android.contacts.model.AccountType;
+import com.android.contacts.model.AccountType.EditType;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityModifier;
@@ -37,12 +37,12 @@
  * Base view that provides common code for the editor interaction for a specific
  * RawContact represented through an {@link EntityDelta}. Callers can
  * reuse this view and quickly rebuild its contents through
- * {@link #setState(EntityDelta, BaseAccountType)}.
+ * {@link #setState(EntityDelta, AccountType)}.
  * <p>
  * Internal updates are performed against {@link ValuesDelta} so that the
  * source {@link Entity} can be swapped out. Any state-based changes, such as
  * adding {@link Data} rows or changing {@link EditType}, are performed through
- * {@link EntityModifier} to ensure that {@link BaseAccountType} are enforced.
+ * {@link EntityModifier} to ensure that {@link AccountType} are enforced.
  */
 public abstract class BaseRawContactEditorView extends LinearLayout {
     protected LayoutInflater mInflater;
@@ -95,8 +95,8 @@
 
     /**
      * Set the internal state for this view, given a current
-     * {@link EntityDelta} state and the {@link BaseAccountType} that
+     * {@link EntityDelta} state and the {@link AccountType} that
      * apply to that state.
      */
-    public abstract void setState(EntityDelta state, BaseAccountType source, ViewIdGenerator vig);
+    public abstract void setState(EntityDelta state, AccountType source, ViewIdGenerator vig);
 }
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index 96158dd..a2679b5 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -19,7 +19,7 @@
 import com.android.contacts.R;
 import com.android.contacts.activities.JoinContactActivity;
 import com.android.contacts.model.AccountTypes;
-import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountType;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityDeltaList;
@@ -372,8 +372,8 @@
             final AccountTypes sources = AccountTypes.getInstance(mContext);
             for (EntityDelta state : mState) {
                 final String accountType = state.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
-                final BaseAccountType source = sources.getInflatedSource(accountType,
-                        BaseAccountType.LEVEL_CONSTRAINTS);
+                final AccountType source = sources.getInflatedSource(accountType,
+                        AccountType.LEVEL_CONSTRAINTS);
                 if (!source.readOnly) {
                     // Apply extras to the first writable raw contact only
                     EntityModifier.parseExtras(mContext, source, state, mIntentExtras);
@@ -424,9 +424,9 @@
 
         // Parse any values from incoming intent
         EntityDelta insert = new EntityDelta(ValuesDelta.fromAfter(values));
-        final BaseAccountType source = sources.getInflatedSource(
+        final AccountType source = sources.getInflatedSource(
                 account != null ? account.type : null,
-                BaseAccountType.LEVEL_CONSTRAINTS);
+                AccountType.LEVEL_CONSTRAINTS);
         EntityModifier.parseExtras(mContext, source, insert,
                 prefillFromIntent ? mIntentExtras : null);
 
@@ -469,8 +469,8 @@
             if (!values.isVisible()) continue;
 
             final String accountType = values.getAsString(RawContacts.ACCOUNT_TYPE);
-            final BaseAccountType source = sources.getInflatedSource(accountType,
-                    BaseAccountType.LEVEL_CONSTRAINTS);
+            final AccountType source = sources.getInflatedSource(accountType,
+                    AccountType.LEVEL_CONSTRAINTS);
             final long rawContactId = values.getAsLong(RawContacts._ID);
 
             final BaseRawContactEditorView editor;
@@ -915,8 +915,8 @@
         for (int i = 0; i < size; i++) {
             ValuesDelta values = mState.get(i).getValues();
             final String accountType = values.getAsString(RawContacts.ACCOUNT_TYPE);
-            final BaseAccountType source = sources.getInflatedSource(accountType,
-                    BaseAccountType.LEVEL_CONSTRAINTS);
+            final AccountType source = sources.getInflatedSource(accountType,
+                    AccountType.LEVEL_CONSTRAINTS);
             if (!source.readOnly) {
                 return true;
             }
@@ -997,11 +997,11 @@
 
             final AccountTypes sources = AccountTypes.getInstance(mContext);
             String accountType = one.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
-            final BaseAccountType oneSource = sources.getInflatedSource(accountType,
-                    BaseAccountType.LEVEL_SUMMARY);
+            final AccountType oneSource = sources.getInflatedSource(accountType,
+                    AccountType.LEVEL_SUMMARY);
             accountType = two.getValues().getAsString(RawContacts.ACCOUNT_TYPE);
-            final BaseAccountType twoSource = sources.getInflatedSource(accountType,
-                    BaseAccountType.LEVEL_SUMMARY);
+            final AccountType twoSource = sources.getInflatedSource(accountType,
+                    AccountType.LEVEL_SUMMARY);
 
             // Check read-only
             if (oneSource.readOnly && !twoSource.readOnly) {
diff --git a/src/com/android/contacts/views/editor/Editor.java b/src/com/android/contacts/views/editor/Editor.java
index 00d1d62..1d60e74 100644
--- a/src/com/android/contacts/views/editor/Editor.java
+++ b/src/com/android/contacts/views/editor/Editor.java
@@ -17,7 +17,7 @@
 package com.android.contacts.views.editor;
 
 import com.android.contacts.model.EntityDelta;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 
 import android.provider.ContactsContract.Data;
diff --git a/src/com/android/contacts/views/editor/EventFieldEditorView.java b/src/com/android/contacts/views/editor/EventFieldEditorView.java
index a64fd51..a79b374 100644
--- a/src/com/android/contacts/views/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/views/editor/EventFieldEditorView.java
@@ -20,9 +20,9 @@
 import com.android.contacts.datepicker.DatePicker;
 import com.android.contacts.datepicker.DatePickerDialog;
 import com.android.contacts.datepicker.DatePickerDialog.OnDateSetListener;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.EditField;
-import com.android.contacts.model.BaseAccountType.EventEditType;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.EditField;
+import com.android.contacts.model.AccountType.EventEditType;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.util.DateUtils;
diff --git a/src/com/android/contacts/views/editor/GroupMembershipView.java b/src/com/android/contacts/views/editor/GroupMembershipView.java
index 60c6962..60d1801 100644
--- a/src/com/android/contacts/views/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/views/editor/GroupMembershipView.java
@@ -17,7 +17,7 @@
 package com.android.contacts.views.editor;
 
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityModifier;
diff --git a/src/com/android/contacts/views/editor/KindSectionView.java b/src/com/android/contacts/views/editor/KindSectionView.java
index c2773e4..75bae24 100644
--- a/src/com/android/contacts/views/editor/KindSectionView.java
+++ b/src/com/android/contacts/views/editor/KindSectionView.java
@@ -17,7 +17,7 @@
 package com.android.contacts.views.editor;
 
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityModifier;
diff --git a/src/com/android/contacts/views/editor/LabeledEditorView.java b/src/com/android/contacts/views/editor/LabeledEditorView.java
index 41e0173..86ed65e 100644
--- a/src/com/android/contacts/views/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/views/editor/LabeledEditorView.java
@@ -18,8 +18,8 @@
 
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.EditType;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.EditType;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityModifier;
diff --git a/src/com/android/contacts/views/editor/PhotoEditorView.java b/src/com/android/contacts/views/editor/PhotoEditorView.java
index 0ab44d2..05cd5fd 100644
--- a/src/com/android/contacts/views/editor/PhotoEditorView.java
+++ b/src/com/android/contacts/views/editor/PhotoEditorView.java
@@ -18,7 +18,7 @@
 
 import com.android.contacts.R;
 import com.android.contacts.model.EntityDelta;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 
 import android.content.Context;
diff --git a/src/com/android/contacts/views/editor/RawContactEditorView.java b/src/com/android/contacts/views/editor/RawContactEditorView.java
index c49f20f..f3ac4fd 100644
--- a/src/com/android/contacts/views/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/views/editor/RawContactEditorView.java
@@ -17,9 +17,9 @@
 package com.android.contacts.views.editor;
 
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.EditType;
+import com.android.contacts.model.AccountType;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.EditType;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityModifier;
@@ -52,12 +52,12 @@
  * Custom view that provides all the editor interaction for a specific
  * {@link Contacts} represented through an {@link EntityDelta}. Callers can
  * reuse this view and quickly rebuild its contents through
- * {@link #setState(EntityDelta, BaseAccountType, ViewIdGenerator)}.
+ * {@link #setState(EntityDelta, AccountType, ViewIdGenerator)}.
  * <p>
  * Internal updates are performed against {@link ValuesDelta} so that the
  * source {@link Entity} can be swapped out. Any state-based changes, such as
  * adding {@link Data} rows or changing {@link EditType}, are performed through
- * {@link EntityModifier} to ensure that {@link BaseAccountType} are enforced.
+ * {@link EntityModifier} to ensure that {@link AccountType} are enforced.
  */
 public class RawContactEditorView extends BaseRawContactEditorView {
     private View mPhotoStub;
@@ -130,11 +130,11 @@
 
     /**
      * Set the internal state for this view, given a current
-     * {@link EntityDelta} state and the {@link BaseAccountType} that
+     * {@link EntityDelta} state and the {@link AccountType} that
      * apply to that state.
      */
     @Override
-    public void setState(EntityDelta state, BaseAccountType source, ViewIdGenerator vig) {
+    public void setState(EntityDelta state, AccountType source, ViewIdGenerator vig) {
         mState = state;
 
         // Remove any existing sections
diff --git a/src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java b/src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java
index bf3d811..021f3d6 100644
--- a/src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java
+++ b/src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java
@@ -18,8 +18,8 @@
 
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.model.EntityModifier;
@@ -91,13 +91,13 @@
 
     /**
      * Set the internal state for this view, given a current
-     * {@link EntityDelta} state and the {@link BaseAccountType} that
+     * {@link EntityDelta} state and the {@link AccountType} that
      * apply to that state.
      *
      * TODO: make this more generic using data from the source
      */
     @Override
-    public void setState(EntityDelta state, BaseAccountType source, ViewIdGenerator vig) {
+    public void setState(EntityDelta state, AccountType source, ViewIdGenerator vig) {
         // Remove any existing sections
         mGeneral.removeAllViews();
 
diff --git a/src/com/android/contacts/views/editor/TextFieldsEditorView.java b/src/com/android/contacts/views/editor/TextFieldsEditorView.java
index 74b75ba..95d704f 100644
--- a/src/com/android/contacts/views/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/views/editor/TextFieldsEditorView.java
@@ -18,8 +18,8 @@
 
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.model.BaseAccountType.DataKind;
-import com.android.contacts.model.BaseAccountType.EditField;
+import com.android.contacts.model.AccountType.DataKind;
+import com.android.contacts.model.AccountType.EditField;
 import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 import com.android.contacts.util.ThemeUtils;
diff --git a/src/com/android/contacts/views/editor/ViewIdGenerator.java b/src/com/android/contacts/views/editor/ViewIdGenerator.java
index dc1bf79..cf21579 100644
--- a/src/com/android/contacts/views/editor/ViewIdGenerator.java
+++ b/src/com/android/contacts/views/editor/ViewIdGenerator.java
@@ -17,7 +17,7 @@
 package com.android.contacts.views.editor;
 
 import com.android.contacts.model.EntityDelta;
-import com.android.contacts.model.BaseAccountType.DataKind;
+import com.android.contacts.model.AccountType.DataKind;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
 
 import android.os.Bundle;