aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
diff options
context:
space:
mode:
authorTom Ouyang <ouyang@google.com>2015-04-13 17:49:17 -0700
committerTom Ouyang <ouyang@google.com>2015-04-16 11:33:54 -0700
commit44a175732dc4b872515f978b986ef7b357fe2f00 (patch)
treebe4c2e92514d7f5ac8306149ba469607ffb0f0e7 /java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
parent40f0f61bb365b5073f1d9fdb56a393c5df5ef4b0 (diff)
downloadlatinime-44a175732dc4b872515f978b986ef7b357fe2f00.tar.gz
latinime-44a175732dc4b872515f978b986ef7b357fe2f00.tar.xz
latinime-44a175732dc4b872515f978b986ef7b357fe2f00.zip
Add affinity model for contact names.
This allows us to: 1. Rank contacts and only add the top N names to the keyboard LM. 2. Avoid adding duplicate names. Note: The affinity calcualuation is limited by the fact that some apps currently do not update the TIMES_CONTACTED counter. To better handle this case, the new measure also takes into account whether or not a name is in the visible contacts group. Bug: 20053274 Change-Id: I2741cb8958667d4a294aba8c437a45cec4b42dc7
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java')
-rw-r--r--java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java b/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
index 8d8faca58..022940910 100644
--- a/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
+++ b/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
@@ -26,7 +26,8 @@ public class ContactsDictionaryConstants {
/**
* Projections for {@link Contacts.CONTENT_URI}
*/
- public static final String[] PROJECTION = { BaseColumns._ID, Contacts.DISPLAY_NAME };
+ public static final String[] PROJECTION = { BaseColumns._ID, Contacts.DISPLAY_NAME,
+ Contacts.TIMES_CONTACTED, Contacts.LAST_TIME_CONTACTED, Contacts.IN_VISIBLE_GROUP };
public static final String[] PROJECTION_ID_ONLY = { BaseColumns._ID };
/**
@@ -36,13 +37,16 @@ public class ContactsDictionaryConstants {
public static final int FREQUENCY_FOR_CONTACTS_BIGRAM = 90;
/**
- * The maximum number of contacts that this dictionary supports.
+ * Do not attempt to query contacts if there are more than this many entries.
*/
- public static final int MAX_CONTACT_COUNT = 10000;
+ public static final int MAX_CONTACTS_PROVIDER_QUERY_LIMIT = 10000;
/**
* Index of the column for 'name' in content providers:
* Contacts & ContactsContract.Profile.
*/
public static final int NAME_INDEX = 1;
+ public static final int TIMES_CONTACTED_INDEX = 2;
+ public static final int LAST_TIME_CONTACTED_INDEX = 3;
+ public static final int IN_VISIBLE_GROUP_INDEX = 4;
}