Show icon of account being saved to

Remove unused layouts for various account header types and simplify to
two:
One for linked contacts (editor_all_rawcontacts_account_selector) which
displays a linked chain icon and one which displays the account icon and
an optional expander icon (editor_account_header). The account icon one
is used in the single account case and when creating a new contact.

Test:
Manual usage of the new selector:
1. Single account case
2. Linked account case shows linked chain with a selector dropdown
3. Creating a new contact shows icon of account being saved to
3b. 3 but with multiple accounts so the selector is visible 
3c. 3b with swapping accounts and making sure the icon updates correctly

Bug: 29455526
Change-Id: Ic7784cc6e77b934468795176ee774a5247cce9a9
diff --git a/src/com/android/contacts/editor/BaseRawContactEditorView.java b/src/com/android/contacts/editor/BaseRawContactEditorView.java
index e99af61..fc1e8a1 100644
--- a/src/com/android/contacts/editor/BaseRawContactEditorView.java
+++ b/src/com/android/contacts/editor/BaseRawContactEditorView.java
@@ -80,7 +80,7 @@
         mPhoto.setEnabled(isEnabled());
 
         mAccountHeaderContainer = findViewById(R.id.account_header_container);
-        mExpandAccountButton = (ImageView) findViewById(R.id.expand_account_button);
+        mExpandAccountButton = (ImageView) findViewById(R.id.account_expander_icon);
         mCollapsibleSection = (LinearLayout) findViewById(R.id.collapsable_section);
         mAccountName = (TextView) findViewById(R.id.account_name);
         mAccountType = (TextView) findViewById(R.id.account_type);
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index ece3829..d9cc58d 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -334,12 +334,7 @@
     private TextView mAccountHeaderType;
     private TextView mAccountHeaderName;
     private ImageView mAccountHeaderIcon;
-
-    // Account selector
-    private View mAccountSelectorContainer;
-    private View mAccountSelector;
-    private TextView mAccountSelectorType;
-    private TextView mAccountSelectorName;
+    private ImageView mAccountHeaderExpanderIcon;
 
     // Raw contacts selector
     private View mRawContactContainer;
@@ -381,16 +376,11 @@
                 getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
         // Account header
-        mAccountHeaderContainer = findViewById(R.id.account_container);
+        mAccountHeaderContainer = findViewById(R.id.account_header_container);
         mAccountHeaderType = (TextView) findViewById(R.id.account_type);
         mAccountHeaderName = (TextView) findViewById(R.id.account_name);
         mAccountHeaderIcon = (ImageView) findViewById(R.id.account_type_icon);
-
-        // Account selector
-        mAccountSelectorContainer = findViewById(R.id.account_selector_container);
-        mAccountSelector = findViewById(R.id.account);
-        mAccountSelectorType = (TextView) findViewById(R.id.account_type_selector);
-        mAccountSelectorName = (TextView) findViewById(R.id.account_name_selector);
+        mAccountHeaderExpanderIcon = (ImageView) findViewById(R.id.account_expander_icon);
 
         // Raw contacts selector
         mRawContactContainer = findViewById(R.id.all_rawcontacts_accounts_container);
@@ -731,7 +721,6 @@
 
     private void addAccountInfo(RawContactDeltaList rawContactDeltas) {
         mAccountHeaderContainer.setVisibility(View.GONE);
-        mAccountSelectorContainer.setVisibility(View.GONE);
         mRawContactContainer.setVisibility(View.GONE);
 
         if (mPrimaryNameKindSectionData == null) return;
@@ -843,24 +832,11 @@
 
     private void addAccountSelector(Pair<String,String> accountInfo,
             final RawContactDelta rawContactDelta) {
-        mAccountSelectorContainer.setVisibility(View.VISIBLE);
-
-        if (TextUtils.isEmpty(accountInfo.first)) {
-            // Hide this view so the other text view will be centered vertically
-            mAccountSelectorName.setVisibility(View.GONE);
-        } else {
-            mAccountSelectorName.setVisibility(View.VISIBLE);
-            mAccountSelectorName.setText(accountInfo.first);
-        }
-
-        final String selectorTitle = getResources().getString(
-                R.string.compact_editor_account_selector_title);
-        mAccountSelectorType.setText(selectorTitle);
-
-        mAccountSelectorContainer.setContentDescription(getResources().getString(
-                R.string.compact_editor_account_selector_description, accountInfo.first));
-
-        mAccountSelectorContainer.setOnClickListener(new View.OnClickListener() {
+        // Show save to default account.
+        addAccountHeader(accountInfo);
+        // Add handlers for choosing another account to save to.
+        mAccountHeaderExpanderIcon.setVisibility(View.VISIBLE);
+        mAccountHeaderContainer.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 final ListPopupWindow popup = new ListPopupWindow(getContext(), null);
@@ -868,8 +844,8 @@
                         new AccountsListAdapter(getContext(),
                                 AccountsListAdapter.AccountListFilter.ACCOUNTS_CONTACT_WRITABLE,
                                 mPrimaryAccount);
-                popup.setWidth(mAccountSelectorContainer.getWidth());
-                popup.setAnchorView(mAccountSelectorContainer);
+                popup.setWidth(mAccountHeaderContainer.getWidth());
+                popup.setAnchorView(mAccountHeaderContainer);
                 popup.setAdapter(adapter);
                 popup.setModal(true);
                 popup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 5a4c9db..1e90e04 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -72,11 +72,6 @@
 
     private ViewGroup mFields;
 
-    private View mAccountSelector;
-    private TextView mAccountSelectorTypeTextView;
-    private TextView mAccountSelectorNameTextView;
-
-    private View mAccountHeader;
     private TextView mAccountHeaderTypeTextView;
     private TextView mAccountHeaderNameTextView;
     private ImageView mAccountIconImageView;
@@ -140,24 +135,9 @@
 
         mFields = (ViewGroup)findViewById(R.id.sect_fields);
 
-        mAccountHeader = findViewById(R.id.account_header_container);
         mAccountHeaderTypeTextView = (TextView) findViewById(R.id.account_type);
         mAccountHeaderNameTextView = (TextView) findViewById(R.id.account_name);
-        mAccountIconImageView = (ImageView) findViewById(android.R.id.icon);
-
-        // The same header is used by both full editor and read-only editor view. The header is
-        // left-aligned with read-only editor view but is not aligned well with full editor. So we
-        // need to shift the text in the header a little bit for full editor.
-        LinearLayout accountInfoView = (LinearLayout) findViewById(R.id.account_info);
-        final int topBottomPaddingDp = (int) getResources().getDimension(R.dimen
-                .editor_account_header_expandable_top_bottom_padding);
-        final int leftPaddingDp = (int) getResources().getDimension(R.dimen
-                .editor_account_header_expandable_left_padding);
-        accountInfoView.setPadding(leftPaddingDp, topBottomPaddingDp, 0, topBottomPaddingDp);
-
-        mAccountSelector = findViewById(R.id.account_selector_container);
-        mAccountSelectorTypeTextView = (TextView) findViewById(R.id.account_type_selector);
-        mAccountSelectorNameTextView = (TextView) findViewById(R.id.account_name_selector);
+        mAccountIconImageView = (ImageView) findViewById(R.id.account_type_icon);
     }
 
     @Override
@@ -216,16 +196,6 @@
         mAccountHeaderTypeTextView.setText(accountInfo.second);
         updateAccountHeaderContentDescription();
 
-        // The account selector and header are both used to display the same information.
-        mAccountSelectorTypeTextView.setText(mAccountHeaderTypeTextView.getText());
-        mAccountSelectorTypeTextView.setVisibility(mAccountHeaderTypeTextView.getVisibility());
-        mAccountSelectorNameTextView.setText(mAccountHeaderNameTextView.getText());
-        mAccountSelectorNameTextView.setVisibility(mAccountHeaderNameTextView.getVisibility());
-        // Showing the account header at the same time as the account selector drop down is
-        // confusing. They should be mutually exclusive.
-        mAccountHeader.setVisibility(mAccountSelector.getVisibility() == View.GONE
-                ? View.VISIBLE : View.GONE);
-
         mAccountIconImageView.setImageDrawable(state.getRawContactAccountType(getContext())
                 .getDisplayIcon(getContext()));
 
diff --git a/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java b/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
index 6e4c055..ad8504c 100644
--- a/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
+++ b/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
@@ -92,7 +92,7 @@
 
         mAccountHeaderTypeTextView = (TextView) findViewById(R.id.account_type);
         mAccountHeaderNameTextView = (TextView) findViewById(R.id.account_name);
-        mAccountIconImageView = (ImageView) findViewById(android.R.id.icon);
+        mAccountIconImageView = (ImageView) findViewById(R.id.account_type_icon);
     }
 
     /**