Fully reload recent interaction data after resume

Bug: 17361583
Change-Id: I8716c17a7a9f89006b823baacf49d32044d7a34d
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 03171f5..16dec50 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -801,16 +801,21 @@
         } else if (oldLookupUri != mLookupUri) {
             // After copying a directory contact, the contact URI changes. Therefore,
             // we need to restart the loader and reload the new contact.
-            for (int interactionLoaderId : mRecentLoaderIds) {
-                getLoaderManager().destroyLoader(interactionLoaderId);
-            }
+            destroyInteractionLoaders();
             mContactLoader = (ContactLoader) getLoaderManager().restartLoader(
                     LOADER_CONTACT_ID, null, mLoaderContactCallbacks);
+            mCachedCp2DataCardModel = null;
         }
 
         NfcHandler.register(this, mLookupUri);
     }
 
+    private void destroyInteractionLoaders() {
+        for (int interactionLoaderId : mRecentLoaderIds) {
+            getLoaderManager().destroyLoader(interactionLoaderId);
+        }
+    }
+
     private void runEntranceAnimation() {
         if (mHasAlreadyBeenOpened) {
             return;
@@ -987,6 +992,14 @@
             mHasIntentLaunched = false;
             populateContactAndAboutCard(mCachedCp2DataCardModel);
         }
+
+        // When exiting the activity and resuming, we want to force a full reload of all the
+        // interaction data in case something changed in the background. On screen rotation,
+        // we don't need to do this. And, mCachedCp2DataCardModel will be null, so we won't.
+        if (mCachedCp2DataCardModel != null) {
+            destroyInteractionLoaders();
+            startInteractionLoaders(mCachedCp2DataCardModel);
+        }
     }
 
     private void populateContactAndAboutCard(Cp2DataCardModel cp2DataCardModel) {