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