Avoid crash on rotation before unlinking
Also fixed:
- "LINK CONTACTS" button being disabled after unlinking.
- Padding for local contacts in suggestion card.
Bug: 25230542
Change-Id: Ia67e0faf2f809f8cd0c15e145cb8e3d74ae43e2b
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 272bc27..5daf25a 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -497,6 +497,10 @@
mExpandSuggestionCardView.setVisibility(View.GONE);
mSuggestionList.removeAllViews();
+ if (mContactData == null) {
+ return;
+ }
+
final String suggestionForName = mContactData.getDisplayName();
final int suggestionNumber = mSuggestions.size();
@@ -527,9 +531,13 @@
mSuggestionForName.setText(suggestionForName);
final int linkedContactsNumber = mContactData.getRawContacts().size();
final String contactsInfo;
- if (linkedContactsNumber == 1) {
+ final String accountName = mContactData.getRawContacts().get(0).getAccountName();
+ if (linkedContactsNumber == 1 && accountName == null) {
+ mSuggestionContactsNumber.setVisibility(View.INVISIBLE);
+ }
+ if (linkedContactsNumber == 1 && accountName != null) {
contactsInfo = getResources().getString(R.string.contact_from_account_name,
- mContactData.getRawContacts().get(0).getAccountName());
+ accountName);
} else {
contactsInfo = getResources().getString(
R.string.quickcontact_contacts_number, linkedContactsNumber);
@@ -552,6 +560,9 @@
final Set<Long> selectedSuggestionIds = com.google.common.collect.Sets.intersection(
mSelectedAggregationIds, suggestionContactIds);
mSelectedAggregationIds = new TreeSet<>(selectedSuggestionIds);
+ if (!mSelectedAggregationIds.isEmpty()) {
+ enableLinkButton();
+ }
}
private void collapseSuggestionList() {
@@ -594,7 +605,7 @@
accountNameView.setText(
getResources().getString(R.string.contact_from_account_name, accountName));
} else {
- accountNameView.setVisibility(View.GONE);
+ accountNameView.setVisibility(View.INVISIBLE);
}
final CheckBox checkbox = (CheckBox) suggestionView.findViewById(R.id.suggestion_checkbox);