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

Commit ba91c956 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Strip emergency number format and check prefix in ecclist"

parents 5c7df49f 90768353
Loading
Loading
Loading
Loading
+51 −2
Original line number Diff line number Diff line
@@ -460,6 +460,7 @@ public class EmergencyNumberTracker extends Handler {
        if (number == null) {
            return false;
        }
        number = PhoneNumberUtils.stripSeparators(number);
        if (!mEmergencyNumberListFromRadio.isEmpty()) {
            for (EmergencyNumber num : mEmergencyNumberList) {
                // According to com.android.i18n.phonenumbers.ShortNumberInfo, in
@@ -495,6 +496,7 @@ public class EmergencyNumberTracker extends Handler {
     * @return the {@link EmergencyNumber} for the corresponding emergency number address.
     */
    public EmergencyNumber getEmergencyNumber(String emergencyNumber) {
        emergencyNumber = PhoneNumberUtils.stripSeparators(emergencyNumber);
        for (EmergencyNumber num : getEmergencyNumberList()) {
            if (num.getNumber().equals(emergencyNumber)) {
                return num;
@@ -513,6 +515,7 @@ public class EmergencyNumberTracker extends Handler {
     * @return the emergency service categories for the corresponding emergency number.
     */
    public @EmergencyServiceCategories int getEmergencyServiceCategories(String emergencyNumber) {
        emergencyNumber = PhoneNumberUtils.stripSeparators(emergencyNumber);
        for (EmergencyNumber num : getEmergencyNumberList()) {
            if (num.getNumber().equals(emergencyNumber)) {
                if (num.isFromSources(EmergencyNumber.EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING)
@@ -532,6 +535,7 @@ public class EmergencyNumberTracker extends Handler {
     * @return the emergency call routing for the corresponding emergency number.
     */
    public @EmergencyCallRouting int getEmergencyCallRouting(String emergencyNumber) {
        emergencyNumber = PhoneNumberUtils.stripSeparators(emergencyNumber);
        for (EmergencyNumber num : getEmergencyNumberList()) {
            if (num.getNumber().equals(emergencyNumber)) {
                if (num.isFromSources(EmergencyNumber.EMERGENCY_NUMBER_SOURCE_DATABASE)) {
@@ -594,6 +598,7 @@ public class EmergencyNumberTracker extends Handler {
    }

    private boolean isEmergencyNumberForTest(String number) {
        number = PhoneNumberUtils.stripSeparators(number);
        for (EmergencyNumber num : mEmergencyNumberListFromTestMode) {
            if (num.getNumber().equals(number)) {
                return true;
@@ -603,6 +608,7 @@ public class EmergencyNumberTracker extends Handler {
    }

    private EmergencyNumber getLabeledEmergencyNumberForEcclist(String number) {
        number = PhoneNumberUtils.stripSeparators(number);
        for (EmergencyNumber num : mEmergencyNumberListFromDatabase) {
            if (num.getNumber().equals(number)) {
                return new EmergencyNumber(number, mCountryIso.toLowerCase(), "",
@@ -666,10 +672,22 @@ public class EmergencyNumberTracker extends Handler {
                if (useExactMatch || "br".equalsIgnoreCase(mCountryIso)) {
                    if (number.equals(emergencyNum)) {
                        return true;
                    } else {
                        for (String prefix : mEmergencyNumberPrefix) {
                            if (number.equals(prefix + emergencyNum)) {
                                return true;
                            }
                        }
                    }
                } else {
                    if (number.startsWith(emergencyNum)) {
                        return true;
                    } else {
                        for (String prefix : mEmergencyNumberPrefix) {
                            if (number.equals(prefix + emergencyNum)) {
                                return true;
                            }
                        }
                    }
                }
            }
@@ -689,10 +707,22 @@ public class EmergencyNumberTracker extends Handler {
            if (useExactMatch) {
                if (number.equals(emergencyNum)) {
                    return true;
                } else {
                    for (String prefix : mEmergencyNumberPrefix) {
                        if (number.equals(prefix + emergencyNum)) {
                            return true;
                        }
                    }
                }
            } else {
                if (number.startsWith(emergencyNum)) {
                    return true;
                } else {
                    for (String prefix : mEmergencyNumberPrefix) {
                        if (number.equals(prefix + emergencyNum)) {
                            return true;
                        }
                    }
                }
            }
        }
@@ -701,9 +731,28 @@ public class EmergencyNumberTracker extends Handler {
        if (mCountryIso != null) {
            ShortNumberInfo info = ShortNumberInfo.getInstance();
            if (useExactMatch) {
                return info.isEmergencyNumber(number, mCountryIso.toUpperCase());
                if (info.isEmergencyNumber(number, mCountryIso.toUpperCase())) {
                    return true;
                } else {
                    for (String prefix : mEmergencyNumberPrefix) {
                        if (info.isEmergencyNumber(prefix + number, mCountryIso.toUpperCase())) {
                            return true;
                        }
                    }
                }
                return false;
            } else {
                if (info.connectsToEmergencyNumber(number, mCountryIso.toUpperCase())) {
                    return true;
                } else {
                return info.connectsToEmergencyNumber(number, mCountryIso.toUpperCase());
                    for (String prefix : mEmergencyNumberPrefix) {
                        if (info.connectsToEmergencyNumber(prefix + number,
                                mCountryIso.toUpperCase())) {
                            return true;
                        }
                    }
                }
                return false;
            }
        }