Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f51f954 authored by David Brown's avatar David Brown Committed by Android (Google) Code Review
Browse files

Merge "Fix a crash caused by SIP addresses containing "%40" instead of "@"" into ics-mr1

parents a37a78e2 158f116e
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -2117,6 +2117,31 @@ public class PhoneNumberUtils
        return number != null && (number.contains("@") || number.contains("%40"));
    }

    /**
     * @return the "username" part of the specified SIP address,
     *         i.e. the part before the "@" character (or "%40").
     *
     * @param number SIP address of the form "username@domainname"
     *               (or the URI-escaped equivalent "username%40domainname")
     * @see isUriNumber
     *
     * @hide
     */
    public static String getUsernameFromUriNumber(String number) {
        // The delimiter between username and domain name can be
        // either "@" or "%40" (the URI-escaped equivalent.)
        int delimiterIndex = number.indexOf('@');
        if (delimiterIndex < 0) {
            delimiterIndex = number.indexOf("%40");
        }
        if (delimiterIndex < 0) {
            Log.w(LOG_TAG,
                  "getUsernameFromUriNumber: no delimiter found in SIP addr '" + number + "'");
            delimiterIndex = number.length();
        }
        return number.substring(0, delimiterIndex);
    }

    /**
     * This function handles the plus code conversion within NANP CDMA network
     * If the number format is
+1 −1
Original line number Diff line number Diff line
@@ -288,7 +288,7 @@ public class CallerInfo {
            String number, CallerInfo previousResult) {
        if (!previousResult.contactExists
                && PhoneNumberUtils.isUriNumber(number)) {
            String username = number.substring(0, number.indexOf('@'));
            String username = PhoneNumberUtils.getUsernameFromUriNumber(number);
            if (PhoneNumberUtils.isGlobalPhoneNumber(username)) {
                previousResult = getCallerInfo(context,
                        Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,