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

Commit ba93c4fe authored by twyen's avatar twyen Committed by Copybara-Service
Browse files

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
parent 9c952d8f
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -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 =
        stripInternational(
            this.helper
                .getContext()
                .getSystemService(TelephonyManager.class)
                .createForPhoneAccountHandle(this.handle)
            .getLine1Number();
                .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