diff options
Diffstat (limited to 'java/com/android/dialer/calllog/database')
4 files changed, 37 insertions, 11 deletions
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java index ebfd3c79b..507a51af6 100644 --- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java +++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java @@ -38,7 +38,9 @@ class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper { // Common columns. .append(AnnotatedCallLog._ID + " integer primary key, ") .append(AnnotatedCallLog.TIMESTAMP + " integer, ") - .append(AnnotatedCallLog.PRIMARY_TEXT + " string, ") + .append(AnnotatedCallLog.NAME + " string, ") + .append(AnnotatedCallLog.NEW + " integer, ") + .append(AnnotatedCallLog.TYPE + " integer, ") .append(AnnotatedCallLog.CONTACT_PHOTO_URI + " string, ") .append(AnnotatedCallLog.NUMBER_TYPE_LABEL + " string, ") .append(AnnotatedCallLog.IS_READ + " integer, ") diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java index 23ddc9c21..55bed3e8c 100644 --- a/java/com/android/dialer/calllog/database/Coalescer.java +++ b/java/com/android/dialer/calllog/database/Coalescer.java @@ -133,8 +133,16 @@ public class Coalescer { DialerPhoneNumber number1; DialerPhoneNumber number2; try { - number1 = DialerPhoneNumber.parseFrom(row1.getAsByteArray(AnnotatedCallLog.NUMBER)); - number2 = DialerPhoneNumber.parseFrom(row2.getAsByteArray(AnnotatedCallLog.NUMBER)); + byte[] number1Bytes = row1.getAsByteArray(AnnotatedCallLog.NUMBER); + byte[] number2Bytes = row2.getAsByteArray(AnnotatedCallLog.NUMBER); + + if (number1Bytes == null || number2Bytes == null) { + // Empty numbers should not be combined. + return false; + } + + number1 = DialerPhoneNumber.parseFrom(number1Bytes); + number2 = DialerPhoneNumber.parseFrom(number2Bytes); } catch (InvalidProtocolBufferException e) { throw Assert.createAssertionFailException("error parsing DialerPhoneNumber proto", e); } diff --git a/java/com/android/dialer/calllog/database/annotated_call_log.proto b/java/com/android/dialer/calllog/database/annotated_call_log.proto index eb0ee52ce..de2bc5f14 100644 --- a/java/com/android/dialer/calllog/database/annotated_call_log.proto +++ b/java/com/android/dialer/calllog/database/annotated_call_log.proto @@ -8,7 +8,8 @@ option optimize_for = LITE_RUNTIME; package com.android.dialer; -// A list of android.provider.CallLog.Calls.TYPE values. +// A list of android.provider.CallLog.Calls.TYPE values ordered from newest to +// oldest. message CallTypes { repeated int32 type = 1; } diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java index 172006878..c669bdae5 100644 --- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java +++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java @@ -42,15 +42,15 @@ public class AnnotatedCallLogContract { String TIMESTAMP = "timestamp"; /** - * Primary text to display for the entry. This could be a name from a local contact or caller ID - * data source, or it could just be a phone number, for example. + * Name of the caller if available. This could be a name from a local contact or caller ID data + * source, for example. * * <p>This is exactly how it should appear to the user. If the user's locale or name display * preferences change, this column should be rewritten. * * <p>Type: TEXT */ - String PRIMARY_TEXT = "primary_text"; + String NAME = "name"; /** * Local photo URI for the contact associated with the phone number, if it exists. @@ -74,14 +74,21 @@ public class AnnotatedCallLogContract { String NUMBER_TYPE_LABEL = "number_type_label"; /** - * See CallLog.Calls.IS_READ. + * See {@link android.provider.CallLog.Calls#IS_READ}. * * <p>TYPE: INTEGER (boolean) */ String IS_READ = "is_read"; /** - * See CallLog.Calls.GEOCODED_LOCATION. + * See {@link android.provider.CallLog.Calls#NEW}. + * + * <p>Type: INTEGER (boolean) + */ + String NEW = "new"; + + /** + * See {@link android.provider.CallLog.Calls#GEOCODED_LOCATION}. * * <p>TYPE: TEXT */ @@ -102,7 +109,7 @@ public class AnnotatedCallLogContract { String PHONE_ACCOUNT_COLOR = "phone_account_color"; /** - * See CallLog.Calls.FEATURES. + * See {@link android.provider.CallLog.Calls#FEATURES}. * * <p>TYPE: INTEGER (int) */ @@ -128,10 +135,11 @@ public class AnnotatedCallLogContract { new String[] { _ID, TIMESTAMP, - PRIMARY_TEXT, + NAME, CONTACT_PHOTO_URI, NUMBER_TYPE_LABEL, IS_READ, + NEW, GEOCODED_LOCATION, PHONE_ACCOUNT_LABEL, PHONE_ACCOUNT_COLOR, @@ -168,6 +176,13 @@ public class AnnotatedCallLogContract { * <p>Type: BLOB */ public static final String NUMBER = "number"; + + /** + * Copied from {@link android.provider.CallLog.Calls#TYPE}. + * + * <p>Type: INTEGER (int) + */ + public static final String TYPE = "type"; } /** |