diff options
Diffstat (limited to 'java/com/android/dialer/calllog/datasources/util/RowCombiner.java')
-rw-r--r-- | java/com/android/dialer/calllog/datasources/util/RowCombiner.java | 22 |
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; |