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/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);