summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wink Saville <wink@google.com> 2009-11-03 17:57:11 -0800
committer Wink Saville <wink@google.com> 2009-11-03 17:57:11 -0800
commit684b802dd9ec9e145220855d2380a3a9cd39a033 (patch)
tree4afdb13a136d49dbc357b030b171395fe3a0ff62
parentc6e88afb3eda9da97f65b2a2f32e6a12c18301ba (diff)
Add needsOtaServiceProvisioning and used to not allow
data calls until the device is provisioned. Bug: 2221241 Change-Id: Id0267cc02fdf31e14e66e5acd2ca5cbdc504f507
-rwxr-xr-xtelephony/java/com/android/internal/telephony/cdma/CDMAPhone.java24
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java6
2 files changed, 28 insertions, 2 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
index 22fbe8bf1a30..3548cad95cb6 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -80,6 +80,10 @@ public class CDMAPhone extends PhoneBase {
static final String LOG_TAG = "CDMA";
private static final boolean DBG = true;
+ // Min values used to by needsActivation
+ private static final String UNACTIVATED_MIN2_VALUE = "000000";
+ private static final String UNACTIVATED_MIN_VALUE = "1111110111";
+
// Default Emergency Callback Mode exit timer
private static final int DEFAULT_ECM_EXIT_TIMER_VALUE = 300000;
@@ -848,6 +852,26 @@ public class CDMAPhone extends PhoneBase {
mRuimRecords.setVoiceMessageWaiting(1, mwi);
}
+ /**
+ * Returns true if CDMA OTA Service Provisioning needs to be performed.
+ */
+ /* package */ boolean
+ needsOtaServiceProvisioning() {
+ String cdmaMin = getCdmaMin();
+ boolean needsProvisioning;
+ if (cdmaMin == null || (cdmaMin.length() < 6)) {
+ if (DBG) Log.d(LOG_TAG, "needsOtaServiceProvisioning: illegal cdmaMin='"
+ + cdmaMin + "' assume provisioning needed.");
+ needsProvisioning = true;
+ } else {
+ needsProvisioning = (cdmaMin.equals(UNACTIVATED_MIN_VALUE)
+ || cdmaMin.substring(0,6).equals(UNACTIVATED_MIN2_VALUE))
+ || SystemProperties.getBoolean("test_cdma_setup", false);
+ }
+ if (DBG) Log.d(LOG_TAG, "needsOtaServiceProvisioning: ret=" + needsProvisioning);
+ return needsProvisioning;
+ }
+
@Override
public void exitEmergencyCallbackMode() {
if (mWakeLock.isHeld()) {
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
index a4cf4f588bdf..9bc5e8ed4830 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
@@ -330,7 +330,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
phone.getState() == Phone.State.IDLE )
&& isDataAllowed()
&& desiredPowerState
- && !mPendingRestartRadio) {
+ && !mPendingRestartRadio
+ && !mCdmaPhone.needsOtaServiceProvisioning()) {
return setupData(reason);
@@ -348,7 +349,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
" dataOnRoamingEnable=" + getDataOnRoamingEnabled() +
" desiredPowerState=" + desiredPowerState +
" PendingRestartRadio=" + mPendingRestartRadio +
- " MasterDataEnabled=" + mMasterDataEnabled);
+ " MasterDataEnabled=" + mMasterDataEnabled +
+ " needsOtaServiceProvisioning=" + mCdmaPhone.needsOtaServiceProvisioning());
}
return false;
}