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

Commit 54c21601 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Prevent VVM subscribing when carrier reset subscription status"

parents ca2ef804 80f3d35f
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())) {