summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/contacts/ContactsDatabaseHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/providers/contacts/ContactsDatabaseHelper.java')
-rw-r--r--src/com/android/providers/contacts/ContactsDatabaseHelper.java13
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);