diff options
Diffstat (limited to 'java/com/android/dialer/app/contactinfo')
-rw-r--r-- | java/com/android/dialer/app/contactinfo/ContactInfoCache.java | 22 | ||||
-rw-r--r-- | java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java | 2 |
2 files changed, 16 insertions, 8 deletions
diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java index 7a5db19f2..e561b5607 100644 --- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java +++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java @@ -28,6 +28,7 @@ import com.android.dialer.phonenumbercache.ContactInfo; import com.android.dialer.phonenumbercache.ContactInfoHelper; import com.android.dialer.util.ExpirableCache; import java.lang.ref.WeakReference; +import java.util.Objects; import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlockingQueue; @@ -77,6 +78,8 @@ public class ContactInfoCache { break; case START_THREAD: reference.startRequestProcessing(); + break; + default: // fall out } } } @@ -125,7 +128,7 @@ public class ContactInfoCache { enqueueRequest(number, countryIso, callLogContactInfo, /* immediate */ false, requestType); } - if (info == ContactInfo.EMPTY) { + if (Objects.equals(info, ContactInfo.EMPTY)) { // Use the cached contact info from the call log. info = callLogContactInfo; } @@ -153,11 +156,15 @@ public class ContactInfoCache { ContactInfo info; if (request.isLocalRequest()) { info = mContactInfoHelper.lookupNumber(request.number, request.countryIso); - // TODO: Maybe skip look up if it's already available in cached number lookup service. - long start = SystemClock.elapsedRealtime(); - mContactInfoHelper.updateFromCequintCallerId(info, request.number); - long time = SystemClock.elapsedRealtime() - start; - LogUtil.d("ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time); + if (!info.contactExists) { + // TODO: Maybe skip look up if it's already available in cached number lookup + // service. + long start = SystemClock.elapsedRealtime(); + mContactInfoHelper.updateFromCequintCallerId(info, request.number); + long time = SystemClock.elapsedRealtime() - start; + LogUtil.d( + "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time); + } if (request.type == ContactInfoRequest.TYPE_LOCAL_AND_REMOTE) { if (!mContactInfoHelper.hasName(info)) { enqueueRequest( @@ -192,7 +199,8 @@ public class ContactInfoCache { // 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); + (!Objects.equals(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. diff --git a/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java b/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java index 71e4a16ad..4c8e32a41 100644 --- a/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java +++ b/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java @@ -25,11 +25,11 @@ import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.support.v4.graphics.drawable.RoundedBitmapDrawable; import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; -import com.android.contacts.common.GeoUtil; import com.android.contacts.common.lettertiles.LetterTileDrawable; import com.android.dialer.app.R; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.location.GeoUtil; import com.android.dialer.phonenumbercache.ContactInfo; import com.android.dialer.phonenumbercache.ContactInfoHelper; import java.io.IOException; |