Cache the result of the ContactLoader across instances.

Change-Id: I2c7d1c07720118418fbefb751beeaa812e568325
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index f914aa1..81aa2e8 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -113,6 +113,8 @@
     private ImageButton mOpenDetailsPushLayerButton;
     private ViewPager mListPager;
 
+    private ContactLoader mContactLoader;
+
     private final ImageViewDrawableSetter mPhotoSetter = new ImageViewDrawableSetter();
 
     /**
@@ -179,6 +181,7 @@
             public void onClick(View v) {
                 final Intent intent = new Intent(Intent.ACTION_VIEW, mLookupUri);
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                mContactLoader.cacheResult();
                 startActivity(intent);
                 hide(false);
             }
@@ -507,6 +510,7 @@
                         @Override
                         public void run() {
                             mHasFinishedAnimatingIn = true;
+                            mContactLoader.upgradeToFullContact();
                         }
                     });
                 }
@@ -518,7 +522,8 @@
             if (mLookupUri == null) {
                 Log.wtf(TAG, "Lookup uri wasn't initialized. Loader was started too early");
             }
-            return new ContactLoader(getApplicationContext(), mLookupUri);
+            mContactLoader = new ContactLoader(getApplicationContext(), mLookupUri);
+            return mContactLoader;
         }
     };