summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-01-04 13:40:44 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-04 15:00:35 -0800
commit18e23785eb89a9adfaeb09b636b793921ecdabdd (patch)
tree6c9dc77f9a83c548d43b0c74a4550a86076b8ba6 /java/com/android/dialer/calllog
parentb2df8b308af8a5ccb1222f60f1ef57803153a084 (diff)
Add column CAN_REPORT_AS_INVALID_NUMBER to the annotated call log.
This column is filled by PhoneLookupDataSource using PhoneLookupInfo#PeopleApiInfo. Bug: 70218437 Test: AnnotatedCallLogDatabaseHelperTest, PhoneLookupDataSourceTest, RowCombinerTest, CoalescedAnnotatedCallLogCursorLoaderTest, PhoneLookupSelectorTest PiperOrigin-RevId: 180839783 Change-Id: I8d5ddb940670724fd4bf6dd6a50dcf408f91da9d
Diffstat (limited to 'java/com/android/dialer/calllog')
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java3
-rw-r--r--java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java10
-rw-r--r--java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java4
-rw-r--r--java/com/android/dialer/calllog/datasources/util/RowCombiner.java7
-rw-r--r--java/com/android/dialer/calllog/model/CoalescedRow.java5
-rw-r--r--java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java4
6 files changed, 30 insertions, 3 deletions
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index 8c6d58634..68d4b95df 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -59,7 +59,8 @@ class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
+ (AnnotatedCallLog.IS_VOICEMAIL + " integer, ")
+ (AnnotatedCallLog.TRANSCRIPTION + " integer, ")
+ (AnnotatedCallLog.VOICEMAIL_URI + " text, ")
- + (AnnotatedCallLog.CALL_TYPE + " integer")
+ + (AnnotatedCallLog.CALL_TYPE + " integer, ")
+ + (AnnotatedCallLog.CAN_REPORT_AS_INVALID_NUMBER + " integer")
+ ");";
/** Deletes all but the first maxRows rows (by timestamp) to keep the table a manageable size. */
diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
index 7071ab5c1..1b3e09095 100644
--- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
+++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
@@ -178,6 +178,13 @@ public class AnnotatedCallLogContract {
*/
String CALL_TYPE = "call_type";
+ /**
+ * True if the number can be reported as invalid.
+ *
+ * <p>TYPE: INTEGER (boolean)
+ */
+ String CAN_REPORT_AS_INVALID_NUMBER = "can_report_as_invalid_number";
+
String[] ALL_COMMON_COLUMNS =
new String[] {
_ID,
@@ -199,7 +206,8 @@ public class AnnotatedCallLogContract {
FEATURES,
IS_BUSINESS,
IS_VOICEMAIL,
- CALL_TYPE
+ CALL_TYPE,
+ CAN_REPORT_AS_INVALID_NUMBER
};
}
diff --git a/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java b/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java
index 56e909e84..214862793 100644
--- a/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java
@@ -268,6 +268,7 @@ public final class PhoneLookupDataSource implements CallLogDataSource {
.useMostRecentString(AnnotatedCallLog.PHOTO_URI)
.useMostRecentLong(AnnotatedCallLog.PHOTO_ID)
.useMostRecentString(AnnotatedCallLog.LOOKUP_URI)
+ .useMostRecentInt(AnnotatedCallLog.CAN_REPORT_AS_INVALID_NUMBER)
.combine();
}
@@ -564,6 +565,9 @@ public final class PhoneLookupDataSource implements CallLogDataSource {
AnnotatedCallLog.LOOKUP_URI, PhoneLookupSelector.selectLookupUri(phoneLookupInfo));
contentValues.put(
AnnotatedCallLog.NUMBER_TYPE_LABEL, PhoneLookupSelector.selectNumberLabel(phoneLookupInfo));
+ contentValues.put(
+ AnnotatedCallLog.CAN_REPORT_AS_INVALID_NUMBER,
+ PhoneLookupSelector.canReportAsInvalidNumber(phoneLookupInfo));
}
private static Uri numberUri(String number) {
diff --git a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
index ebb1ba665..6e33db51e 100644
--- a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
+++ b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
@@ -32,6 +32,13 @@ public class RowCombiner {
}
/** Use the most recent value for the specified column. */
+ public RowCombiner useMostRecentInt(String columnName) {
+ combinedRow.put(
+ columnName, individualRowsSortedByTimestampDesc.get(0).getAsInteger(columnName));
+ return this;
+ }
+
+ /** Use the most recent value for the specified column. */
public RowCombiner useMostRecentLong(String columnName) {
combinedRow.put(columnName, individualRowsSortedByTimestampDesc.get(0).getAsLong(columnName));
return this;
diff --git a/java/com/android/dialer/calllog/model/CoalescedRow.java b/java/com/android/dialer/calllog/model/CoalescedRow.java
index 5cc056872..1824ba146 100644
--- a/java/com/android/dialer/calllog/model/CoalescedRow.java
+++ b/java/com/android/dialer/calllog/model/CoalescedRow.java
@@ -39,6 +39,7 @@ public abstract class CoalescedRow {
.setIsBusiness(false)
.setIsVoicemail(false)
.setCallType(0)
+ .setCanReportAsInvalidNumber(false)
.setCoalescedIds(CoalescedIds.getDefaultInstance());
}
@@ -92,6 +93,8 @@ public abstract class CoalescedRow {
public abstract int callType();
+ public abstract boolean canReportAsInvalidNumber();
+
public abstract CoalescedIds coalescedIds();
/** Builder for {@link CoalescedRow}. */
@@ -139,6 +142,8 @@ public abstract class CoalescedRow {
public abstract Builder setCallType(int callType);
+ public abstract Builder setCanReportAsInvalidNumber(boolean canReportAsInvalidNumber);
+
public abstract Builder setCoalescedIds(CoalescedIds coalescedIds);
public abstract CoalescedRow build();
diff --git a/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java
index 8aefb1a74..6d60bdda4 100644
--- a/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java
+++ b/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java
@@ -49,7 +49,8 @@ final class CoalescedAnnotatedCallLogCursorLoader extends CursorLoader {
private static final int IS_BUSINESS = 17;
private static final int IS_VOICEMAIL = 18;
private static final int CALL_TYPE = 19;
- private static final int COALESCED_IDS = 20;
+ private static final int CAN_REPORT_AS_INVALID_NUMBER = 20;
+ private static final int COALESCED_IDS = 21;
CoalescedAnnotatedCallLogCursorLoader(Context context) {
// CoalescedAnnotatedCallLog requires that PROJECTION be ALL_COLUMNS and the following params be
@@ -100,6 +101,7 @@ final class CoalescedAnnotatedCallLogCursorLoader extends CursorLoader {
.setIsBusiness(cursor.getInt(IS_BUSINESS) == 1)
.setIsVoicemail(cursor.getInt(IS_VOICEMAIL) == 1)
.setCallType(cursor.getInt(CALL_TYPE))
+ .setCanReportAsInvalidNumber(cursor.getInt(CAN_REPORT_AS_INVALID_NUMBER) == 1)
.setCoalescedIds(coalescedIds)
.build();
}