summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2010-11-24 17:23:52 -0800
committerRobert Greenwalt <rgreenwalt@google.com>2010-11-29 10:54:34 -0800
commitd576483787589c92827623ffb46fc81d3a8c7dbb (patch)
tree1c766454384033b374578d2560d5a19f444fa9c7 /telephony
parentb6d1832fc48d13b9e1de2815fd6946d107997e57 (diff)
downloadframeworks_base-d576483787589c92827623ffb46fc81d3a8c7dbb.zip
frameworks_base-d576483787589c92827623ffb46fc81d3a8c7dbb.tar.gz
frameworks_base-d576483787589c92827623ffb46fc81d3a8c7dbb.tar.bz2
Make the internal data-disable mechanism internal
Break links to the outside world and limit its use. A new public, persisted and separate mechanism will be coming soon. Change-Id: Ia51a663125f7fe583e6d5d93bc2253f4e318847b
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/com/android/internal/telephony/DataConnectionTracker.java37
-rw-r--r--telephony/java/com/android/internal/telephony/Phone.java30
-rw-r--r--telephony/java/com/android/internal/telephony/PhoneBase.java4
-rw-r--r--telephony/java/com/android/internal/telephony/PhoneProxy.java12
-rwxr-xr-xtelephony/java/com/android/internal/telephony/cdma/CDMAPhone.java21
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java5
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java4
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GSMPhone.java8
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java4
9 files changed, 21 insertions, 104 deletions
diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java
index cc01bc5..069e1b8 100644
--- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java
@@ -110,7 +110,7 @@ public abstract class DataConnectionTracker extends Handler {
public static final int EVENT_CLEAN_UP_CONNECTION = 34;
protected static final int EVENT_CDMA_OTA_PROVISION = 35;
protected static final int EVENT_RESTART_RADIO = 36;
- protected static final int EVENT_SET_MASTER_DATA_ENABLE = 37;
+ protected static final int EVENT_SET_INTERNAL_DATA_ENABLE = 37;
protected static final int EVENT_RESET_DONE = 38;
/***** Constants *****/
@@ -126,8 +126,9 @@ public abstract class DataConnectionTracker extends Handler {
protected static final int DISABLED = 0;
protected static final int ENABLED = 1;
- // responds to the setDataEnabled call - used independently from the APN requests
- protected boolean mMasterDataEnabled = true;
+ // responds to the setInternalDataEnabled call - used internally to turn off data
+ // for example during emergency calls
+ protected boolean mInternalDataEnabled = true;
protected boolean[] dataEnabled = new boolean[APN_NUM_TYPES];
@@ -489,9 +490,9 @@ public abstract class DataConnectionTracker extends Handler {
onCleanUpConnection(tearDown, (String) msg.obj);
break;
- case EVENT_SET_MASTER_DATA_ENABLE:
+ case EVENT_SET_INTERNAL_DATA_ENABLE:
boolean enabled = (msg.arg1 == ENABLED) ? true : false;
- onSetDataEnabled(enabled);
+ onSetInternalDataEnabled(enabled);
break;
case EVENT_RESET_DONE:
@@ -505,23 +506,13 @@ public abstract class DataConnectionTracker extends Handler {
}
/**
- * Report the current state of data connectivity (enabled or disabled)
- *
- * @return {@code false} if data connectivity has been explicitly disabled,
- * {@code true} otherwise.
- */
- public synchronized boolean getDataEnabled() {
- return (mMasterDataEnabled && dataEnabled[APN_DEFAULT_ID]);
- }
-
- /**
* Report on whether data connectivity is enabled
*
* @return {@code false} if data connectivity has been explicitly disabled,
* {@code true} otherwise.
*/
public synchronized boolean getAnyDataEnabled() {
- return (mMasterDataEnabled && (enabledCount != 0));
+ return (mInternalDataEnabled && (enabledCount != 0));
}
protected abstract void startNetStatPoll();
@@ -676,7 +667,7 @@ public abstract class DataConnectionTracker extends Handler {
*/
protected boolean isDataPossible() {
boolean possible = (isDataAllowed()
- && !(getDataEnabled() && (mState == State.FAILED || mState == State.IDLE)));
+ && !(getAnyDataEnabled() && (mState == State.FAILED || mState == State.IDLE)));
if (!possible && DBG && isDataAllowed()) {
log("Data not possible. No coverage: dataState = " + mState);
}
@@ -847,20 +838,20 @@ public abstract class DataConnectionTracker extends Handler {
* {@code false}) data
* @return {@code true} if the operation succeeded
*/
- public boolean setDataEnabled(boolean enable) {
+ public boolean setInternalDataEnabled(boolean enable) {
if (DBG)
- log("setDataEnabled(" + enable + ")");
+ log("setInternalDataEnabled(" + enable + ")");
- Message msg = obtainMessage(EVENT_SET_MASTER_DATA_ENABLE);
+ Message msg = obtainMessage(EVENT_SET_INTERNAL_DATA_ENABLE);
msg.arg1 = (enable ? ENABLED : DISABLED);
sendMessage(msg);
return true;
}
- protected void onSetDataEnabled(boolean enable) {
- if (mMasterDataEnabled != enable) {
+ protected void onSetInternalDataEnabled(boolean enable) {
+ if (mInternalDataEnabled != enable) {
synchronized (this) {
- mMasterDataEnabled = enable;
+ mInternalDataEnabled = enable;
}
if (enable) {
mRetryMgr.resetRetryCount();
diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java
index 69b7de6..25ad48d 100644
--- a/telephony/java/com/android/internal/telephony/Phone.java
+++ b/telephony/java/com/android/internal/telephony/Phone.java
@@ -1325,36 +1325,6 @@ public interface Phone {
SimulatedRadioControl getSimulatedRadioControl();
/**
- * Allow mobile data connections.
- * @return {@code true} if the operation started successfully
- * <br/>{@code false} if it
- * failed immediately.<br/>
- * Even in the {@code true} case, it may still fail later
- * during setup, in which case an asynchronous indication will
- * be supplied.
- */
- boolean enableDataConnectivity();
-
- /**
- * Disallow mobile data connections, and terminate any that
- * are in progress.
- * @return {@code true} if the operation started successfully
- * <br/>{@code false} if it
- * failed immediately.<br/>
- * Even in the {@code true} case, it may still fail later
- * during setup, in which case an asynchronous indication will
- * be supplied.
- */
- boolean disableDataConnectivity();
-
- /**
- * Report the current state of data connectivity (enabled or disabled)
- * @return {@code false} if data connectivity has been explicitly disabled,
- * {@code true} otherwise.
- */
- boolean isDataConnectivityEnabled();
-
- /**
* Enables the specified APN type. Only works for "special" APN types,
* i.e., not the default APN.
* @param type The desired APN type. Cannot be {@link #APN_TYPE_DEFAULT}.
diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java
index fe4fdb3..fce7b9b 100644
--- a/telephony/java/com/android/internal/telephony/PhoneBase.java
+++ b/telephony/java/com/android/internal/telephony/PhoneBase.java
@@ -941,10 +941,6 @@ public abstract class PhoneBase extends Handler implements Phone {
logUnexpectedCdmaMethodCall("unsetOnEcbModeExitResponse");
}
- public boolean isDataConnectivityEnabled() {
- return mDataConnection.getDataEnabled();
- }
-
public String[] getActiveApnTypes() {
return mDataConnection.getActiveApnTypes();
}
diff --git a/telephony/java/com/android/internal/telephony/PhoneProxy.java b/telephony/java/com/android/internal/telephony/PhoneProxy.java
index 2e79762..219efbb 100644
--- a/telephony/java/com/android/internal/telephony/PhoneProxy.java
+++ b/telephony/java/com/android/internal/telephony/PhoneProxy.java
@@ -650,14 +650,6 @@ public class PhoneProxy extends Handler implements Phone {
return mActivePhone.getSimulatedRadioControl();
}
- public boolean enableDataConnectivity() {
- return mActivePhone.enableDataConnectivity();
- }
-
- public boolean disableDataConnectivity() {
- return mActivePhone.disableDataConnectivity();
- }
-
public int enableApnType(String type) {
return mActivePhone.enableApnType(type);
}
@@ -666,10 +658,6 @@ public class PhoneProxy extends Handler implements Phone {
return mActivePhone.disableApnType(type);
}
- public boolean isDataConnectivityEnabled() {
- return mActivePhone.isDataConnectivityEnabled();
- }
-
public boolean isDataConnectivityPossible() {
return mActivePhone.isDataConnectivityPossible();
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
index 099bc30..1e77589 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -478,10 +478,6 @@ public class CDMAPhone extends PhoneBase {
return mSST.cellLoc;
}
- public boolean disableDataConnectivity() {
- return mDataConnection.setDataEnabled(false);
- }
-
public CdmaCall getForegroundCall() {
return mCT.foregroundCall;
}
@@ -761,21 +757,6 @@ public class CDMAPhone extends PhoneBase {
return ret;
}
- public boolean enableDataConnectivity() {
-
- // block data activities when phone is in emergency callback mode
- if (mIsPhoneInEcmState) {
- Intent intent = new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS);
- ActivityManagerNative.broadcastStickyIntent(intent, null);
- return false;
- } else if ((mCT.state == Phone.State.OFFHOOK) && mCT.isInEmergencyCall()) {
- // Do not allow data call to be enabled when emergency call is going on
- return false;
- } else {
- return mDataConnection.setDataEnabled(true);
- }
- }
-
public boolean getIccRecordsLoaded() {
return mRuimRecords.getRecordsLoaded();
}
@@ -921,7 +902,7 @@ public class CDMAPhone extends PhoneBase {
// send an Intent
sendEmergencyCallbackModeChange();
// Re-initiate data connection
- mDataConnection.setDataEnabled(true);
+ mDataConnection.setInternalDataEnabled(true);
}
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
index 325c2e1..a89f783 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaCallTracker.java
@@ -1058,7 +1058,7 @@ public final class CdmaCallTracker extends CallTracker {
if (PhoneNumberUtils.isEmergencyNumber(dialString)) {
if (Phone.DEBUG_PHONE) log("disableDataCallInEmergencyCall");
mIsInEmergencyCall = true;
- phone.disableDataConnectivity();
+ phone.mDataConnection.setInternalDataEnabled(false);
}
}
@@ -1075,8 +1075,7 @@ public final class CdmaCallTracker extends CallTracker {
}
if (inEcm.compareTo("false") == 0) {
// Re-initiate data connection
- // TODO - can this be changed to phone.enableDataConnectivity();
- phone.mDataConnection.setDataEnabled(true);
+ phone.mDataConnection.setInternalDataEnabled(true);
}
}
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
index f7664ca..b005cd3 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
@@ -204,7 +204,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
(mCdmaPhone.mSST.isConcurrentVoiceAndData() ||
mPhone.getState() == Phone.State.IDLE) &&
!roaming &&
- mMasterDataEnabled &&
+ mInternalDataEnabled &&
desiredPowerState &&
!mPendingRestartRadio &&
!mCdmaPhone.needsOtaServiceProvisioning();
@@ -222,7 +222,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
reason += " - concurrentVoiceAndData not allowed and state= " + mPhone.getState();
}
if (roaming) reason += " - Roaming";
- if (!mMasterDataEnabled) reason += " - mMasterDataEnabled= false";
+ if (!mInternalDataEnabled) reason += " - mInternalDataEnabled= false";
if (!desiredPowerState) reason += " - desiredPowerState= false";
if (mPendingRestartRadio) reason += " - mPendingRestartRadio= true";
if (mCdmaPhone.needsOtaServiceProvisioning()) reason += " - needs Provisioning";
diff --git a/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java b/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java
index fc03d1a..628f11a 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java
@@ -1084,14 +1084,6 @@ public class GSMPhone extends PhoneBase {
mDataConnection.setDataOnRoamingEnabled(enable);
}
- public boolean enableDataConnectivity() {
- return mDataConnection.setDataEnabled(true);
- }
-
- public boolean disableDataConnectivity() {
- return mDataConnection.setDataEnabled(false);
- }
-
/**
* Removes the given MMI from the pending list and notifies
* registrants that it is complete.
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index b41402c..4713c24 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -284,7 +284,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
(gprsState == ServiceState.STATE_IN_SERVICE || mAutoAttachOnCreation) &&
mGsmPhone.mSIMRecords.getRecordsLoaded() &&
mPhone.getState() == Phone.State.IDLE &&
- mMasterDataEnabled &&
+ mInternalDataEnabled &&
(!mPhone.getServiceState().getRoaming() || getDataOnRoamingEnabled()) &&
!mIsPsRestricted &&
desiredPowerState;
@@ -297,7 +297,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
if (mPhone.getState() != Phone.State.IDLE) {
reason += " - PhoneState= " + mPhone.getState();
}
- if (!mMasterDataEnabled) reason += " - mMasterDataEnabled= false";
+ if (!mInternalDataEnabled) reason += " - mInternalDataEnabled= false";
if (mPhone.getServiceState().getRoaming() && !getDataOnRoamingEnabled()) {
reason += " - Roaming and data roaming not enabled";
}