summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2012-05-14 13:27:18 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-05-14 13:27:18 -0700
commit69934738b0262e3202f901b5c980a40b30da134c (patch)
tree96eee026bde782d5fe15243611992fdf901b1be5 /src
parent0a660fe03a68777958858738cf4ffdad11a2b7fd (diff)
parente1cc78a9827d95afa41fb159bc93aa18fdd2c1d5 (diff)
downloadpackages_apps_Contacts-69934738b0262e3202f901b5c980a40b30da134c.tar.gz
packages_apps_Contacts-69934738b0262e3202f901b5c980a40b30da134c.tar.bz2
packages_apps_Contacts-69934738b0262e3202f901b5c980a40b30da134c.zip
Merge "Fix bug 6479405 On tablet, sometimes, QC -> full contact..." into jb-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/contacts/ContactLoader.java19
-rw-r--r--src/com/android/contacts/detail/ContactLoaderFragment.java1
2 files changed, 14 insertions, 6 deletions
diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index 5d188fb2a..ab2ac41ad 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -226,10 +226,11 @@ public class ContactLoader extends AsyncTaskLoader<ContactLoader.Result> {
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 class ContactLoader extends AsyncTaskLoader<ContactLoader.Result> {
public boolean isUserProfile() {
return mIsUserProfile;
}
+
+ @Override
+ public String toString() {
+ return "{requested=" + mRequestedUri + ",lookupkey=" + mLookupKey +
+ ",uri=" + mUri + ",status=" + mStatus + "}";
+ }
}
/**
@@ -730,13 +737,13 @@ public class ContactLoader extends AsyncTaskLoader<ContactLoader.Result> {
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 @@ public class ContactLoader extends AsyncTaskLoader<ContactLoader.Result> {
* 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 d8fa15883..25c60d66b 100644
--- a/src/com/android/contacts/detail/ContactLoaderFragment.java
+++ b/src/com/android/contacts/detail/ContactLoaderFragment.java
@@ -191,6 +191,7 @@ public class ContactLoaderFragment extends Fragment implements FragmentKeyListen
@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;
}