Merge "Implement VVM Task Scheduling" into nyc-mr1-dev
diff --git a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
index 096c17d..04fb8e5 100644
--- a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
+++ b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
@@ -328,6 +328,13 @@
}
}
+ public boolean supportsProvisioning() {
+ if (mProtocol != null) {
+ return mProtocol.supportsProvisioning();
+ }
+ return false;
+ }
+
public void startProvisioning(PhoneAccountHandle phone, StatusMessage message, Bundle data) {
if (mProtocol != null) {
mProtocol.startProvisioning(phone, this, message, data);
@@ -410,4 +417,5 @@
}
return defaultValue;
}
+
}
\ No newline at end of file
diff --git a/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java b/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java
index be2a77f..4ceb88b 100644
--- a/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java
+++ b/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java
@@ -43,6 +43,10 @@
}
}
+ public boolean supportsProvisioning() {
+ return false;
+ }
+
public void startProvisioning(PhoneAccountHandle handle, OmtpVvmCarrierConfigHelper config,
StatusMessage message, Bundle data) {
// Do nothing
diff --git a/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java b/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java
index 95a8a32..d15786f 100644
--- a/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java
+++ b/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java
@@ -80,6 +80,11 @@
}
@Override
+ public boolean supportsProvisioning() {
+ return true;
+ }
+
+ @Override
public void startProvisioning(PhoneAccountHandle phoneAccountHandle,
OmtpVvmCarrierConfigHelper config, StatusMessage message, Bundle data) {
VvmLog.i(TAG, "start vvm3 provisioning");
diff --git a/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java b/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
index 277e882..fd7b7a6 100644
--- a/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
+++ b/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
@@ -92,8 +92,18 @@
if (message.getProvisioningStatus().equals(OmtpConstants.SUBSCRIBER_READY)) {
updateSource(phone, subId, message);
} else {
- VvmLog.v(TAG, "Subscriber not ready, start provisioning");
- mContext.startService(OmtpProvisioningService.getProvisionIntent(mContext, intent));
+ if (helper.supportsProvisioning()) {
+ VvmLog.i(TAG, "Subscriber not ready, start provisioning");
+ mContext.startService(
+ OmtpProvisioningService.getProvisionIntent(mContext, intent));
+ } else {
+ VvmLog.i(TAG, "Subscriber not ready but provisioning is not supported");
+ VvmLog.i(TAG, "st=" + message.getProvisioningStatus() +
+ ",rc=" + message.getReturnCode());
+ // Ignore the non-ready state and attempt to use the provided info as is.
+ // This is probably caused by not completing the new user tutorial.
+ updateSource(phone, subId, message);
+ }
}
} else {
VvmLog.e(TAG, "Unknown prefix: " + eventType);