Hide emergency calls in the call log

Bug: 38494024,66926712
Test: CallLogAdapterTest, manually checked UI
PiperOrigin-RevId: 181238101
Change-Id: I1b718e30a4bc874e098e30a3aaae39bdd69d0c9a
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 261b0ec..963967f 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -39,6 +39,7 @@
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.telecom.PhoneAccountHandle;
+import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -802,7 +803,7 @@
     int groupSize = getGroupSize(position);
     CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize);
     PhoneCallDetails details = createPhoneCallDetails(c, groupSize, views);
-    if (hiddenRowIds.contains(c.getLong(CallLogQuery.ID))) {
+    if (isHiddenRow(views.number, c.getLong(CallLogQuery.ID))) {
       views.callLogEntryView.setVisibility(View.GONE);
       views.dayGroupHeader.setVisibility(View.GONE);
       return;
@@ -827,6 +828,16 @@
     }
   }
 
+  private boolean isHiddenRow(@Nullable String number, long rowId) {
+    if (number != null && PhoneNumberUtils.isEmergencyNumber(number)) {
+      return true;
+    }
+    if (hiddenRowIds.contains(rowId)) {
+      return true;
+    }
+    return false;
+  }
+
   private void loadAndRender(
       final CallLogListItemViewHolder viewHolder,
       final long rowId,