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

Commit 1e5922fe authored by twyen's avatar twyen Committed by android-build-merger
Browse files

Merge "Prevent VVM subscribing when carrier reset subscription status"

am: 54c21601

Change-Id: I79dacf28a70919b6f0c9c44f5427a22d07269a51
parents 358c5036 54c21601
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -196,7 +196,8 @@ public class ActivationTask extends BaseTask {
    VisualVoicemailProtocol protocol = helper.getProtocol();

    Bundle data;
    if (messageData != null) {
    boolean isCarrierInitiated = messageData != null;
    if (isCarrierInitiated) {
      // The content of STATUS SMS is provided to launch this task, no need to request it
      // again.
      data = messageData;
@@ -237,7 +238,8 @@ public class ActivationTask extends BaseTask {
    } else {
      if (helper.supportsProvisioning()) {
        VvmLog.i(TAG, "Subscriber not ready, start provisioning");
        helper.startProvisioning(this, phoneAccountHandle, status, message, data);
        helper.startProvisioning(
            this, phoneAccountHandle, status, message, data, isCarrierInitiated);

      } else if (message.getProvisioningStatus().equals(OmtpConstants.SUBSCRIBER_NEW)) {
        VvmLog.i(TAG, "Subscriber new but provisioning is not supported");
+3 −2
Original line number Diff line number Diff line
@@ -399,9 +399,10 @@ public class OmtpVvmCarrierConfigHelper {
      PhoneAccountHandle phone,
      VoicemailStatus.Editor status,
      StatusMessage message,
      Bundle data) {
      Bundle data,
      boolean isCarrierInitiated) {
    Assert.checkArgument(isValid());
    protocol.startProvisioning(task, phone, this, status, message, data);
    protocol.startProvisioning(task, phone, this, status, message, data, isCarrierInitiated);
  }

  public void requestStatus(@Nullable PendingIntent sentIntent) {
+4 −3
Original line number Diff line number Diff line
@@ -57,7 +57,8 @@ public abstract class VisualVoicemailProtocol {
      OmtpVvmCarrierConfigHelper config,
      VoicemailStatus.Editor editor,
      StatusMessage message,
      Bundle data) {
      Bundle data,
      boolean isCarrierInitiated) {
    // Do nothing
  }

@@ -78,8 +79,8 @@ public abstract class VisualVoicemailProtocol {
   * Translate an OMTP IMAP command to the protocol specific one. For example, changing the TUI
   * password on OMTP is XCHANGE_TUI_PWD, but on CVVM and VVM3 it is CHANGE_TUI_PWD.
   *
   * @param command A String command in {@link OmtpConstants}, the exact
   *     instance should be used instead of its' value.
   * @param command A String command in {@link OmtpConstants}, the exact instance should be used
   *     instead of its' value.
   * @returns Translated command, or {@code null} if not available in this protocol
   */
  public String getCommand(String command) {
+10 −1
Original line number Diff line number Diff line
@@ -115,8 +115,17 @@ public class Vvm3Protocol extends VisualVoicemailProtocol {
      OmtpVvmCarrierConfigHelper config,
      VoicemailStatus.Editor status,
      StatusMessage message,
      Bundle data) {
      Bundle data,
      boolean isCarrierInitiated) {
    VvmLog.i(TAG, "start vvm3 provisioning");

    if (isCarrierInitiated) {
      // Carrier can send the "Status UNKNOWN, Can subscribe" status when upgrading to premium VVM.
      // Ignore so we won't downgrade it back to basic.
      VvmLog.w(TAG, "carrier initiated, ignoring");
      return;
    }

    LoggerUtils.logImpressionOnMainThread(
        config.getContext(), DialerImpression.Type.VVM_PROVISIONING_STARTED);
    if (OmtpConstants.SUBSCRIBER_UNKNOWN.equals(message.getProvisioningStatus())) {