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

Commit 54fa9b14 authored by sqian's avatar sqian Committed by android-build-merger
Browse files

Merge "Strip emergency number format and check prefix in ecclist" am: ba91c956

am: ee153c8c

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


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


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