summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/assisteddialing/Constraints.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/assisteddialing/Constraints.java')
-rw-r--r--java/com/android/dialer/assisteddialing/Constraints.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/java/com/android/dialer/assisteddialing/Constraints.java b/java/com/android/dialer/assisteddialing/Constraints.java
index 6bcab9963..023be1c4c 100644
--- a/java/com/android/dialer/assisteddialing/Constraints.java
+++ b/java/com/android/dialer/assisteddialing/Constraints.java
@@ -62,7 +62,7 @@ final class Constraints {
"GB" /* United Kingdom */,
"JP" /* Japan */,
"MX" /* Mexico */,
- "US" /* United States*/,
+ "US" /* United States */,
};
private final Set<String> supportedCountryCodes =
@@ -115,7 +115,8 @@ final class Constraints {
&& isUserRoaming(userHomeCountryCode, userRoamingCountryCode)
&& isNotInternationalNumber(parsedPhoneNumber)
&& isNotEmergencyNumber(numberToCheck, context)
- && isValidNumber(parsedPhoneNumber);
+ && isValidNumber(parsedPhoneNumber)
+ && doesNotHaveExtension(parsedPhoneNumber);
}
/** Returns a boolean indicating the value equivalence of the provided country codes. */
@@ -165,10 +166,7 @@ final class Constraints {
}
}
- /**
- * Returns a boolean indicating if the provided number and home country code are already
- * internationally formatted.
- */
+ /** Returns a boolean indicating if the provided number is already internationally formatted. */
private boolean isNotInternationalNumber(@NonNull Optional<PhoneNumber> parsedPhoneNumber) {
if (parsedPhoneNumber.get().hasCountryCode()
@@ -181,6 +179,22 @@ final class Constraints {
return true;
}
+ /**
+ * Returns a boolean indicating if the provided number has an extension.
+ *
+ * <p>Extensions are currently stripped when formatting a number for mobile dialing, so we don't
+ * want to purposefully truncate a number.
+ */
+ private boolean doesNotHaveExtension(@NonNull Optional<PhoneNumber> parsedPhoneNumber) {
+
+ if (parsedPhoneNumber.get().hasExtension()
+ && !TextUtils.isEmpty(parsedPhoneNumber.get().getExtension())) {
+ LogUtil.i("Constraints.doesNotHaveExtension", "phone number has an extension");
+ return false;
+ }
+ return true;
+ }
+
/** Returns a boolean indicating if the provided number is considered to be a valid number. */
private boolean isValidNumber(@NonNull Optional<PhoneNumber> parsedPhoneNumber) {
boolean result = PhoneNumberUtil.getInstance().isValidNumber(parsedPhoneNumber.get());