diff options
Diffstat (limited to 'src/com/android/providers/contacts/ContactsDatabaseHelper.java')
-rw-r--r-- | src/com/android/providers/contacts/ContactsDatabaseHelper.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java index a60d6cf..31d3764 100644 --- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java +++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java @@ -5253,6 +5253,12 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { qb.appendWhere(sb.toString()); } + public void buildDataLookupAndContactQuery(SQLiteQueryBuilder qb, String data) { + StringBuilder sb = new StringBuilder(); + buildDataQuery(sb, data); + qb.setTables(sb.toString()); + } + /** * Phone lookup method that uses the custom SQLite function phone_number_compare_loose * that serves as a fallback in case the regular lookup does not return any results. @@ -5329,6 +5335,13 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { sb.append("')) AS lookup, " + Tables.DATA); } + private void buildDataQuery(StringBuilder sb, String lookupData) { + // Todo: make more performant + sb.append(Tables.RAW_CONTACTS + + " JOIN " + Views.DATA + " data_view ON (data_view.raw_contact_id = " + + Tables.RAW_CONTACTS + ".contact_id) WHERE data1 = '" + lookupData + "'"); + } + private void appendPhoneLookupSelection(StringBuilder sb, String number, String numberE164) { sb.append("lookup.data_id=data._id AND data.raw_contact_id=raw_contacts._id"); boolean hasNumberE164 = !TextUtils.isEmpty(numberE164); |