summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android (Google) Code Review <android-gerrit@google.com> 2009-11-05 19:25:11 -0500
committer Android (Google) Code Review <android-gerrit@google.com> 2009-11-05 19:25:11 -0500
commit09263e1bc0f8f783b24b92643d4ccda87966d01f (patch)
tree6f52706bd69e7f7d9d19becbc0310bb9dfe58eb4
parent1e495da19f3f0061de38821a4ac733dca833b3eb (diff)
parent684b802dd9ec9e145220855d2380a3a9cd39a033 (diff)
Merge change Id0267cc0 into eclair
* changes: Add needsOtaServiceProvisioning and used to not allow data calls until the device is provisioned.
-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;
}