diff options
author | Anne Rong <annerong@google.com> | 2015-09-16 14:41:00 -0700 |
---|---|---|
committer | Anne Rong <annerong@google.com> | 2015-09-16 15:10:28 -0700 |
commit | 3efffa013374bef64adac7be912cfd0381e62d03 (patch) | |
tree | fb291a9779e6a922f9554ddbf4366ec4292fcef6 /src | |
parent | 6c2eecb3989e7cefd3041af3535dcd3cfd689886 (diff) |
Call-Blocking causing crash with incoming SIP call
Check for SIP numbers and store them in normalizedNumber field.
Bug: 24133922
Change-Id: I09541b77c5e9a8ce6fbe16564a9c5fd9a104fc35
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java index 2fdea0d13..cedde27f6 100644 --- a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java +++ b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java @@ -26,6 +26,7 @@ import android.database.sqlite.SQLiteDatabaseCorruptException; 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 class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler { 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 @@ public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler { 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 class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler { 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); |