Merge "Fully reload recent interaction data after resume" into lmp-mr1-dev
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) {