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