diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2010-11-24 17:23:52 -0800 |
---|---|---|
committer | Robert Greenwalt <rgreenwalt@google.com> | 2010-11-29 10:54:34 -0800 |
commit | d576483787589c92827623ffb46fc81d3a8c7dbb (patch) | |
tree | 1c766454384033b374578d2560d5a19f444fa9c7 /telephony | |
parent | b6d1832fc48d13b9e1de2815fd6946d107997e57 (diff) | |
download | frameworks_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')
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"; } |