diff options
author | Yorke Lee <yorkelee@google.com> | 2013-10-22 14:14:50 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-10-22 14:14:50 -0700 |
commit | 8258812c8dbe198d5fd542eccb8bf7f0b2cb461f (patch) | |
tree | 3ccc9f70d0f58b8e6c23f9331248a6efc0593017 | |
parent | f9efc5d941b06862d8e0e3906ec9d05cee3dd1c8 (diff) | |
parent | 3a9b311556e967bd9deab6a258218fe4154867c9 (diff) |
am 3a9b3115: am 32443904: am 934d3ee3: Fix call log jank
* commit '3a9b311556e967bd9deab6a258218fe4154867c9':
Fix call log jank
-rw-r--r-- | src/com/android/dialer/calllog/CallLogAdapter.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index 9392410d1..e4fd0d897 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -388,7 +388,16 @@ public class CallLogAdapter extends GroupingListAdapter NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso); ContactInfo existingInfo = mContactInfoCache.getPossiblyExpired(numberCountryIso); - boolean updated = !info.equals(existingInfo); + final boolean isRemoteSource = info.sourceType != 0; + + // Don't force redraw if existing info in the cache is equal to {@link ContactInfo#EMPTY} + // to avoid updating the data set for every new row that is scrolled into view. + // see (https://googleplex-android-review.git.corp.google.com/#/c/166680/) + + // Exception: Photo uris for contacts from remote sources are not cached in the call log + // cache, so we have to force a redraw for these contacts regardless. + boolean updated = (existingInfo != ContactInfo.EMPTY || isRemoteSource) && + !info.equals(existingInfo); // Store the data in the cache so that the UI thread can use to display it. Store it // even if it has not changed so that it is marked as not expired. |