Reload QuickContact after unlinking to remove stale badges

Bug: 25230841
Change-Id: I697ab4822168f3320b9b2dc37014df15e5e2a3be
diff --git a/src/com/android/contacts/activities/ContactEditorBaseActivity.java b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
index 383ae64..d19f467 100644
--- a/src/com/android/contacts/activities/ContactEditorBaseActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
@@ -67,6 +67,8 @@
     public static final String ACTION_JOIN_COMPLETED = "joinCompleted";
     public static final String ACTION_SAVE_COMPLETED = "saveCompleted";
 
+    public static final int RESULT_SPLIT_COMPLETED = 2;
+
     protected int mActionBarTitleResId;
 
     /**
@@ -305,6 +307,7 @@
 
         @Override
         public void onContactSplit(Uri newLookupUri) {
+            setResult(RESULT_SPLIT_COMPLETED, /* data */ null);
             finish();
         }
 
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index af6dfdb..c49e50b 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -99,6 +99,7 @@
 import com.android.contacts.ContactsActivity;
 import com.android.contacts.NfcHandler;
 import com.android.contacts.R;
+import com.android.contacts.activities.ContactEditorBaseActivity;
 import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.ClipboardUtils;
 import com.android.contacts.common.Collapser;
@@ -1106,6 +1107,11 @@
                 resultCode == ContactDeletionInteraction.RESULT_CODE_DELETED) {
             // The contact that we were showing has been deleted.
             finish();
+        } else if (requestCode == REQUEST_CODE_CONTACT_EDITOR_ACTIVITY &&
+                resultCode == ContactEditorBaseActivity.RESULT_SPLIT_COMPLETED) {
+            // The contact that we were showing has been unlinked, and we reload this activity.
+            finish();
+            startActivity(getIntent());
         } else if (requestCode == REQUEST_CODE_CONTACT_SELECTION_ACTIVITY &&
                 resultCode != RESULT_CANCELED) {
             processIntent(data);