am 69934738: Merge "Fix bug 6479405 On tablet, sometimes, QC -> full contact..." into jb-dev
* commit '69934738b0262e3202f901b5c980a40b30da134c':
Fix bug 6479405 On tablet, sometimes, QC -> full contact...
diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index 5d188fb..ab2ac41 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -226,10 +226,11 @@
mIsUserProfile = isUserProfile;
}
- private Result(Result from) {
+ private Result(Uri requestedUri, Result from) {
+ mRequestedUri = requestedUri;
+
mStatus = from.mStatus;
mException = from.mException;
- mRequestedUri = from.mRequestedUri;
mLookupUri = from.mLookupUri;
mUri = from.mUri;
mDirectoryId = from.mDirectoryId;
@@ -520,6 +521,12 @@
public boolean isUserProfile() {
return mIsUserProfile;
}
+
+ @Override
+ public String toString() {
+ return "{requested=" + mRequestedUri + ",lookupkey=" + mLookupKey +
+ ",uri=" + mUri + ",status=" + mStatus + "}";
+ }
}
/**
@@ -730,13 +737,13 @@
UriUtils.areEqual(cachedResult.getLookupUri(), mLookupUri)) {
// We are using a cached result from earlier. Below, we should make sure
// we are not doing any more network or disc accesses
- result = cachedResult;
+ result = new Result(mRequestedUri, cachedResult);
resultIsCached = true;
} else {
result = loadContactEntity(resolver, uriCurrentFormat);
resultIsCached = false;
}
- if (!result.isNotFound()) {
+ if (result.isLoaded()) {
if (result.isDirectoryEntry()) {
if (!resultIsCached) {
loadDirectoryMetaData(result);
@@ -1345,10 +1352,10 @@
* contact. If the next load is for a different contact, the cached result will be dropped
*/
public void cacheResult() {
- if (mContact == null) {
+ if (mContact == null || !mContact.isLoaded()) {
sCachedResult = null;
} else {
- sCachedResult = new Result(mContact);
+ sCachedResult = mContact;
}
}
}
diff --git a/src/com/android/contacts/detail/ContactLoaderFragment.java b/src/com/android/contacts/detail/ContactLoaderFragment.java
index d8fa158..25c60d6 100644
--- a/src/com/android/contacts/detail/ContactLoaderFragment.java
+++ b/src/com/android/contacts/detail/ContactLoaderFragment.java
@@ -191,6 +191,7 @@
@Override
public void onLoadFinished(Loader<ContactLoader.Result> loader, ContactLoader.Result data) {
if (!mLookupUri.equals(data.getRequestedUri())) {
+ Log.e(TAG, "Different URI: requested=" + mLookupUri + " actual=" + data);
return;
}