summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog/database
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/calllog/database')
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java4
-rw-r--r--java/com/android/dialer/calllog/database/Coalescer.java12
-rw-r--r--java/com/android/dialer/calllog/database/annotated_call_log.proto3
-rw-r--r--java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java29
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";
}
/**