summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortwyen <twyen@google.com>2018-06-29 13:05:50 -0700
committerCopybara-Service <copybara-piper@google.com>2018-06-29 13:07:17 -0700
commitba93c4fe5016341d06be1ce47410885522e09a58 (patch)
tree215979c6cd2b4ec80f6fe1b8c3f803ceb9d08665
parent9c952d8f2688350f06d65df7852756ab05b6fdab (diff)
Strip +1 when subscribing to VVM3
The self provisioning gateway expects 10 digit US national number. TEST=manual, VVM subscription cannot be automated. Bug: 110390254 Test: manual, VVM subscription cannot be automated. PiperOrigin-RevId: 202695056 Change-Id: I9368a4e04d50f4a402d994f7bef3fb1e4b654940
-rw-r--r--java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java25
1 files changed, 19 insertions, 6 deletions
diff --git a/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java b/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
index 3bbda4797..41598e047 100644
--- a/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
+++ b/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
@@ -89,7 +89,7 @@ public class Vvm3Subscriber {
private static final String OPERATION_GET_SPG_URL = "retrieveSPGURL";
private static final String SPG_URL_TAG = "spgurl";
private static final String TRANSACTION_ID_TAG = "transactionid";
- //language=XML
+ // language=XML
private static final String VMG_XML_REQUEST_FORMAT =
""
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
@@ -159,6 +159,7 @@ public class Vvm3Subscriber {
}
@WorkerThread
+ @SuppressWarnings("missingPermission")
public Vvm3Subscriber(
ActivationTask task,
PhoneAccountHandle handle,
@@ -175,11 +176,23 @@ public class Vvm3Subscriber {
// Assuming getLine1Number() will work with VVM3. For unprovisioned users the IMAP username
// is not included in the status SMS, thus no other way to get the current phone number.
number =
- this.helper
- .getContext()
- .getSystemService(TelephonyManager.class)
- .createForPhoneAccountHandle(this.handle)
- .getLine1Number();
+ stripInternational(
+ this.helper
+ .getContext()
+ .getSystemService(TelephonyManager.class)
+ .createForPhoneAccountHandle(this.handle)
+ .getLine1Number());
+ }
+
+ /**
+ * Self provisioning gateway expects 10 digit national format, but {@link
+ * TelephonyManager#getLine1Number()} might return e164 with "+1" at front.
+ */
+ private static String stripInternational(String number) {
+ if (number.startsWith("+1")) {
+ number = number.substring(2);
+ }
+ return number;
}
@WorkerThread