summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/calllog/datasources/util/RowCombiner.java')
-rw-r--r--java/com/android/dialer/calllog/datasources/util/RowCombiner.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
index 0c7be1e27..adb7a0742 100644
--- a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
+++ b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
@@ -19,6 +19,7 @@ import android.content.ContentValues;
import com.android.dialer.common.Assert;
import java.util.Iterator;
import java.util.List;
+import java.util.Objects;
/** Convenience class for aggregating row values. */
public class RowCombiner {
@@ -36,12 +37,31 @@ public class RowCombiner {
return this;
}
+ /** Use the most recent value for the specified column. */
+ public RowCombiner useMostRecentString(String columnName) {
+ combinedRow.put(columnName, individualRowsSortedByTimestampDesc.get(0).getAsString(columnName));
+ return this;
+ }
+
/** Asserts that all column values for the given column name are the same, and uses it. */
public RowCombiner useSingleValueString(String columnName) {
Iterator<ContentValues> iterator = individualRowsSortedByTimestampDesc.iterator();
String singleValue = iterator.next().getAsString(columnName);
while (iterator.hasNext()) {
- Assert.checkState(iterator.next().getAsString(columnName).equals(singleValue));
+ String current = iterator.next().getAsString(columnName);
+ Assert.checkState(Objects.equals(singleValue, current), "Values different for " + columnName);
+ }
+ combinedRow.put(columnName, singleValue);
+ return this;
+ }
+
+ /** Asserts that all column values for the given column name are the same, and uses it. */
+ public RowCombiner useSingleValueLong(String columnName) {
+ Iterator<ContentValues> iterator = individualRowsSortedByTimestampDesc.iterator();
+ Long singleValue = iterator.next().getAsLong(columnName);
+ while (iterator.hasNext()) {
+ Long current = iterator.next().getAsLong(columnName);
+ Assert.checkState(Objects.equals(singleValue, current), "Values different for " + columnName);
}
combinedRow.put(columnName, singleValue);
return this;