diff options
author | Makoto Onuki <omakoto@google.com> | 2012-05-14 13:27:18 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-14 13:27:18 -0700 |
commit | 69934738b0262e3202f901b5c980a40b30da134c (patch) | |
tree | 96eee026bde782d5fe15243611992fdf901b1be5 /src | |
parent | 0a660fe03a68777958858738cf4ffdad11a2b7fd (diff) | |
parent | e1cc78a9827d95afa41fb159bc93aa18fdd2c1d5 (diff) | |
download | packages_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.java | 19 | ||||
-rw-r--r-- | src/com/android/contacts/detail/ContactLoaderFragment.java | 1 |
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; } |