Merge "Improved handling of IS_READ in new call log."
diff --git a/java/com/android/dialer/calllog/ClearMissedCalls.java b/java/com/android/dialer/calllog/ClearMissedCalls.java
index 78eb802..56c8e57 100644
--- a/java/com/android/dialer/calllog/ClearMissedCalls.java
+++ b/java/com/android/dialer/calllog/ClearMissedCalls.java
@@ -138,7 +138,12 @@
 
           Selection.Builder selectionBuilder =
               Selection.builder()
-                  .and(Selection.column(Calls.IS_READ).is("=", 0))
+                  .and(
+                      Selection.column(Calls.IS_READ)
+                          .is("=", 0)
+                          .buildUpon()
+                          .or(Selection.column(Calls.IS_READ).is("IS NULL"))
+                          .build())
                   .and(Selection.column(Calls.TYPE).is("=", Calls.MISSED_TYPE));
           if (!ids.isEmpty()) {
             selectionBuilder.and(Selection.column(Calls._ID).in(toStrings(ids)));
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index 66ba8aa..61f7deb 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -63,8 +63,8 @@
           + (AnnotatedCallLog.NUMBER_PRESENTATION + " integer, ")
           + (AnnotatedCallLog.DURATION + " integer, ")
           + (AnnotatedCallLog.DATA_USAGE + " integer, ")
-          + (AnnotatedCallLog.IS_READ + " integer, ")
-          + (AnnotatedCallLog.NEW + " integer, ")
+          + (AnnotatedCallLog.IS_READ + " integer not null, ")
+          + (AnnotatedCallLog.NEW + " integer not null, ")
           + (AnnotatedCallLog.GEOCODED_LOCATION + " text, ")
           + (AnnotatedCallLog.PHONE_ACCOUNT_COMPONENT_NAME + " text, ")
           + (AnnotatedCallLog.PHONE_ACCOUNT_ID + " text, ")
diff --git a/java/com/android/dialer/main/impl/bottomnav/MissedCallCountObserver.java b/java/com/android/dialer/main/impl/bottomnav/MissedCallCountObserver.java
index 2760634..ee7f6d0 100644
--- a/java/com/android/dialer/main/impl/bottomnav/MissedCallCountObserver.java
+++ b/java/com/android/dialer/main/impl/bottomnav/MissedCallCountObserver.java
@@ -62,7 +62,13 @@
                           .query(
                               Calls.CONTENT_URI,
                               new String[] {Calls._ID},
-                              Calls.IS_READ + " = ? AND " + Calls.TYPE + " = ?",
+                              "("
+                                  + Calls.IS_READ
+                                  + " = ? OR "
+                                  + Calls.IS_READ
+                                  + " IS NULL) AND "
+                                  + Calls.TYPE
+                                  + " = ?",
                               new String[] {"0", Integer.toString(Calls.MISSED_TYPE)},
                               /* sortOrder= */ null)) {
                     return cursor == null ? 0 : cursor.getCount();