diff options
author | Stephen Bird <sbird@cyngn.com> | 2015-10-19 13:50:01 -0700 |
---|---|---|
committer | Richard MacGregor <rmacgregor@cyngn.com> | 2016-04-07 13:34:41 -0700 |
commit | 22eeaf50aa43112156d11b665857cc867d21ae63 (patch) | |
tree | e99e179859c5aad2e2e15306aec2021504882417 /src/com/android/providers/contacts/ContactsProvider2.java | |
parent | b25f3757676188caa76c9851c952eaa1bd048a0d (diff) | |
download | packages_providers_ContactsProvider-22eeaf50aa43112156d11b665857cc867d21ae63.tar.gz packages_providers_ContactsProvider-22eeaf50aa43112156d11b665857cc867d21ae63.tar.bz2 packages_providers_ContactsProvider-22eeaf50aa43112156d11b665857cc867d21ae63.zip |
(1/2) Call Lookup: Update call log handler to query usernames
Change-Id: Ie5b5f035d5c4fc5c35a2b3b0b2233353127c468a
Diffstat (limited to 'src/com/android/providers/contacts/ContactsProvider2.java')
-rw-r--r-- | src/com/android/providers/contacts/ContactsProvider2.java | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java index 3ec15c11..e8c1891f 100644 --- a/src/com/android/providers/contacts/ContactsProvider2.java +++ b/src/com/android/providers/contacts/ContactsProvider2.java @@ -6382,23 +6382,34 @@ public class ContactsProvider2 extends AbstractContactsProvider String number = uri.getPathSegments().size() > 1 ? uri.getLastPathSegment() : ""; - String numberE164 = PhoneNumberUtils.formatNumberToE164( - number, mDbHelper.get().getCurrentCountryIso()); - String normalizedNumber = PhoneNumberUtils.normalizeNumber(number); - mDbHelper.get().buildPhoneLookupAndContactQuery( - qb, normalizedNumber, numberE164); - qb.setProjectionMap(sPhoneLookupProjectionMap); - - // removeNonStarMatchesFromCursor() requires the cursor to contain - // PhoneLookup.NUMBER. Therefore, if the projection explicitly omits it, extend - // the projection. - String[] projectionWithNumber = projection; - if (projection != null - && !ArrayUtils.contains(projection,PhoneLookup.NUMBER)) { - projectionWithNumber = ArrayUtils.appendElement( - String.class, projection, PhoneLookup.NUMBER); + + boolean isPhoneNumber = isPhoneNumber(number); + + String[] projectionWithNumber; + if (isPhoneNumber) { + String numberE164 = PhoneNumberUtils.formatNumberToE164( + number, mDbHelper.get().getCurrentCountryIso()); + String normalizedNumber = PhoneNumberUtils.normalizeNumber(number); + mDbHelper.get().buildPhoneLookupAndContactQuery( + qb, normalizedNumber, numberE164); + qb.setProjectionMap(sPhoneLookupProjectionMap); + + // removeNonStarMatchesFromCursor() requires the cursor to contain + // PhoneLookup.NUMBER. Therefore, if the projection explicitly omits it, extend + // the projection. + projectionWithNumber = projection; + if (projection != null + && !ArrayUtils.contains(projection,PhoneLookup.NUMBER)) { + projectionWithNumber = ArrayUtils.appendElement( + String.class, projection, PhoneLookup.NUMBER); + } + } else { + mDbHelper.get().buildDataLookupAndContactQuery(qb, number); + projectionWithNumber = new String[0]; + sortOrder = null; } + // Peek at the results of the first query (which attempts to use fully // normalized and internationalized numbers for comparison). If no results // were returned, fall back to using the SQLite function @@ -6410,8 +6421,12 @@ public class ContactsProvider2 extends AbstractContactsProvider try { if (cursor.getCount() > 0) { foundResult = true; - return PhoneLookupWithStarPrefix - .removeNonStarMatchesFromCursor(number, cursor); + if (isPhoneNumber) { + return PhoneLookupWithStarPrefix + .removeNonStarMatchesFromCursor(number, cursor); + } else { + return cursor; + } } // Use the fall-back lookup method. |