Merge "Add voip audio mode configuration for ims call" am: a8482c0efa am: 26d55b85b3
am: 1055b8d4bc

Change-Id: Id3081649958c4f874276d3e673dddc74739a635d
diff --git a/res/xml/vvm_config.xml b/res/xml/vvm_config.xml
index fad246f..19c667e 100644
--- a/res/xml/vvm_config.xml
+++ b/res/xml/vvm_config.xml
@@ -36,6 +36,10 @@
     </string-array>
     <string name="vvm_type_string">vvm_type_omtp</string>
     <boolean name="vvm_cellular_data_required_bool" value="true"/>
+    <string-array name="vvm_disabled_capabilities_string_array">
+      <!-- b/32365569 -->
+      <item value="STARTTLS"/>
+    </string-array>
   </pbundle_as_map>
 
   <pbundle_as_map>
diff --git a/src/com/android/phone/common/mail/store/imap/DigestMd5Utils.java b/src/com/android/phone/common/mail/store/imap/DigestMd5Utils.java
index f78dbdf..436d03c 100644
--- a/src/com/android/phone/common/mail/store/imap/DigestMd5Utils.java
+++ b/src/com/android/phone/common/mail/store/imap/DigestMd5Utils.java
@@ -54,7 +54,7 @@
      */
     public static class Data {
 
-        private static final String CHARSET = "utf-8'";
+        private static final String CHARSET = "utf-8";
 
         public String username;
         public String password;
diff --git a/src/com/android/phone/vvm/omtp/ActivationTask.java b/src/com/android/phone/vvm/omtp/ActivationTask.java
index 72f1f54..6fd42fd 100644
--- a/src/com/android/phone/vvm/omtp/ActivationTask.java
+++ b/src/com/android/phone/vvm/omtp/ActivationTask.java
@@ -27,7 +27,6 @@
 import android.telecom.PhoneAccountHandle;
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
-
 import com.android.phone.Assert;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.VoicemailStatus;
@@ -40,7 +39,6 @@
 import com.android.phone.vvm.omtp.sync.OmtpVvmSyncService;
 import com.android.phone.vvm.omtp.sync.SyncTask;
 import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
-
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.Set;
@@ -135,7 +133,7 @@
         OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(getContext(), subId);
         if (!helper.isValid()) {
             VvmLog.i(TAG, "VVM not supported on subId " + subId);
-            VoicemailStatus.disable(getContext(), phoneAccountHandle);
+            OmtpVvmSourceManager.getInstance(getContext()).removeSource(phoneAccountHandle);
             return;
         }
 
diff --git a/src/com/android/phone/vvm/omtp/SimChangeReceiver.java b/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
index 25c27db..c5d0c3c 100644
--- a/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
+++ b/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
@@ -29,7 +29,6 @@
 import com.android.internal.telephony.IccCardConstants;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.TelephonyIntents;
-import com.android.phone.VoicemailStatus;
 import com.android.phone.settings.VisualVoicemailSettingsUtil;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
 import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
@@ -115,7 +114,7 @@
             String mccMnc = context.getSystemService(TelephonyManager.class).getSimOperator(subId);
             VvmLog.d(TAG,
                     "visual voicemail not supported for carrier " + mccMnc + " on subId " + subId);
-            VoicemailStatus.disable(context, phoneAccount);
+            OmtpVvmSourceManager.getInstance(context).removeSource(phoneAccount);
         }
     }
 
diff --git a/tests/src/com/android/phone/common/mail/store/imap/DigestMd5UtilsTest.java b/tests/src/com/android/phone/common/mail/store/imap/DigestMd5UtilsTest.java
index 5534632..81717a1 100644
--- a/tests/src/com/android/phone/common/mail/store/imap/DigestMd5UtilsTest.java
+++ b/tests/src/com/android/phone/common/mail/store/imap/DigestMd5UtilsTest.java
@@ -50,4 +50,24 @@
         assertEquals("ea40f60335c427b5527b84dbabcdfffd", response);
     }
 
+    public void testData_createResponse() {
+        DigestMd5Utils.Data data = new DigestMd5Utils.Data();
+        data.username = "chris";
+        data.password = "secret";
+        data.realm = "elwood.innosoft.com";
+        data.nonce = "OA6MG9tEQGm2hh";
+        data.cnonce = "OA6MHXh6VqTrRk";
+        data.nc = "00000001";
+        data.qop = "auth";
+        data.digestUri = "imap/elwood.innosoft.com";
+        assertEquals(data.createResponse(), "CHARSET=utf-8,"
+                + "username=\"chris\","
+                + "realm=\"elwood.innosoft.com\","
+                + "nonce=\"OA6MG9tEQGm2hh\","
+                + "nc=00000001,"
+                + "cnonce=\"OA6MHXh6VqTrRk\","
+                + "digest-uri=\"imap/elwood.innosoft.com\","
+                + "response=d388dad90d4bbd760a152321f2143af7,"
+                + "qop=auth");
+    }
 }