Call-Blocking causing crash with incoming SIP call

Check for SIP numbers and store them in normalizedNumber field.

Bug: 24133922
Change-Id: I09541b77c5e9a8ce6fbe16564a9c5fd9a104fc35
diff --git a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
index 2fdea0d..cedde27 100644
--- a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
+++ b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
@@ -26,6 +26,7 @@
 import android.net.Uri;
 import android.telephony.PhoneNumberUtils;
 
+import com.android.contacts.common.util.PhoneNumberHelper;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberSources;
@@ -112,7 +113,7 @@
     public final void isBlocked(final OnCheckBlockedListener listener,
                                 String normalizedNumber, String number, String countryIso) {
         if (normalizedNumber == null) {
-            normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+            normalizedNumber = getNormalizedNumber(number, countryIso);
             if (normalizedNumber == null) {
                 throw new IllegalArgumentException("Invalid phone number");
             }
@@ -120,6 +121,14 @@
         isBlocked(listener, normalizedNumber);
     }
 
+    private String getNormalizedNumber(String number, String countryIso) {
+        if (PhoneNumberHelper.isUriNumber(number)) {
+            return number;
+        } else {
+            return PhoneNumberUtils.formatNumberToE164(number, countryIso);
+        }
+    }
+
     /**
      * Check if the normalized number given has been blocked.
      */
@@ -156,7 +165,7 @@
     public final void blockNumber(final OnBlockNumberListener listener,
                                   String normalizedNumber, String number, String countryIso) {
         if (normalizedNumber == null) {
-            normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+            normalizedNumber = getNormalizedNumber(number, countryIso);
         }
         ContentValues v = new ContentValues();
         v.put(FilteredNumberColumns.NORMALIZED_NUMBER, normalizedNumber);