diff options
author | uabdullah <uabdullah@google.com> | 2017-10-15 03:10:50 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-10-15 03:10:50 +0000 |
commit | 039fa13e82456a4e756364e6a59126f3b1420edc (patch) | |
tree | eace3e6172e9b01c3282112c140a5e32335ba68e /java | |
parent | 8a6c036e9946bdbd643354450a39fdcb0de48ddd (diff) | |
parent | 5fb96c9646db823dfe46d1735cbd62441884f8c9 (diff) |
Merge "Use CONTENT_URI_WITH_VOICEMAIL for SystemCallLogDataSource"
am: 5fb96c9646
Change-Id: I79f55ac7c3eefccbdd9334e53185d7ed82978115
Diffstat (limited to 'java')
-rw-r--r-- | java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java | 9 | ||||
-rw-r--r-- | java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java | 23 |
2 files changed, 28 insertions, 4 deletions
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java index 9a3d2e20f..39a806568 100644 --- a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java +++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java @@ -29,6 +29,7 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; import android.os.Build; +import android.provider.CallLog.Calls; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract; @@ -121,7 +122,13 @@ public class AnnotatedCallLogContentProvider extends ContentProvider { Assert.checkArgument(sortOrder == null, "sort order not supported for coalesced call log"); try (Cursor allAnnotatedCallLogRows = queryBuilder.query( - db, null, null, null, null, null, AnnotatedCallLog.TIMESTAMP + " DESC")) { + db, + null, + String.format("%s != ?", CoalescedAnnotatedCallLog.CALL_TYPE), + new String[] {Integer.toString(Calls.VOICEMAIL_TYPE)}, + null, + null, + AnnotatedCallLog.TIMESTAMP + " DESC")) { Cursor coalescedRows = coalescer.coalesce(allAnnotatedCallLogRows); coalescedRows.setNotificationUri( getContext().getContentResolver(), CoalescedAnnotatedCallLog.CONTENT_URI); diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java index 0a965f63e..681a86da7 100644 --- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java +++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java @@ -88,7 +88,7 @@ public class SystemCallLogDataSource implements CallLogDataSource { appContext .getContentResolver() .registerContentObserver( - CallLog.Calls.CONTENT_URI, + CallLog.Calls.CONTENT_URI_WITH_VOICEMAIL, true, new CallLogObserver( ThreadUtil.getUiThreadHandler(), appContext, contentObserverCallbacks)); @@ -152,6 +152,9 @@ public class SystemCallLogDataSource implements CallLogDataSource { @Override public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) { // TODO(zachh): Complete implementation. + + assertNoVoicemailsInRows(individualRowsSortedByTimestampDesc); + return new RowCombiner(individualRowsSortedByTimestampDesc) .useMostRecentLong(AnnotatedCallLog.TIMESTAMP) .useMostRecentLong(AnnotatedCallLog.NEW) @@ -174,6 +177,15 @@ public class SystemCallLogDataSource implements CallLogDataSource { .combine(); } + private void assertNoVoicemailsInRows(List<ContentValues> individualRowsSortedByTimestampDesc) { + for (ContentValues contentValue : individualRowsSortedByTimestampDesc) { + if (contentValue.getAsLong(AnnotatedCallLog.CALL_TYPE) != null) { + Assert.checkArgument( + contentValue.getAsLong(AnnotatedCallLog.CALL_TYPE) != Calls.VOICEMAIL_TYPE); + } + } + } + @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources private void handleInsertsAndUpdates( Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) { @@ -189,7 +201,7 @@ public class SystemCallLogDataSource implements CallLogDataSource { appContext .getContentResolver() .query( - Calls.CONTENT_URI, // Excludes voicemail + Calls.CONTENT_URI_WITH_VOICEMAIL, new String[] { Calls._ID, Calls.DATE, @@ -414,7 +426,12 @@ public class SystemCallLogDataSource implements CallLogDataSource { try (Cursor cursor = appContext .getContentResolver() - .query(Calls.CONTENT_URI, new String[] {Calls._ID}, whereClause, whereArgs, null)) { + .query( + Calls.CONTENT_URI_WITH_VOICEMAIL, + new String[] {Calls._ID}, + whereClause, + whereArgs, + null)) { if (cursor == null) { LogUtil.e("SystemCallLogDataSource.getIdsFromSystemCallLog", "null cursor"); |