From e23362a54d4aed4616e6e3a9fd4f70c676dac6ca Mon Sep 17 00:00:00 2001 From: Daisuke Miyakawa Date: Sun, 6 May 2012 16:54:25 -0700 Subject: [PATCH] Use callable-filter capability when updating call log CallerInfo#phoneNumber has a formatted phone number even when contacts database itself has an unformatted one, so just using Phone.CONTENT_URI may not be enough to find the relevant contact. Bug: 6291905 Change-Id: Ie6e40529eb1f9cf98de861601669dbccb718541c --- core/java/android/provider/CallLog.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java index 6d14dfc7ad4ab..7824724c32149 100644 --- a/core/java/android/provider/CallLog.java +++ b/core/java/android/provider/CallLog.java @@ -25,6 +25,7 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; +import android.provider.ContactsContract.CommonDataKinds.Callable; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.DataUsageFeedback; import android.text.TextUtils; @@ -312,10 +313,12 @@ public class CallLog { null); } else { final String phoneNumber = ci.phoneNumber != null ? ci.phoneNumber : number; - cursor = resolver.query(Phone.CONTENT_URI, + cursor = resolver.query( + Uri.withAppendedPath(Callable.CONTENT_FILTER_URI, + Uri.encode(phoneNumber)), new String[] { Phone._ID }, - Phone.CONTACT_ID + " =? AND " + Phone.NUMBER + " =?", - new String[] { String.valueOf(ci.person_id), phoneNumber}, + Phone.CONTACT_ID + " =?", + new String[] { String.valueOf(ci.person_id) }, null); }