summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--telephony/java/com/android/internal/telephony/ServiceStateTracker.java3
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java13
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java10
3 files changed, 17 insertions, 9 deletions
diff --git a/telephony/java/com/android/internal/telephony/ServiceStateTracker.java b/telephony/java/com/android/internal/telephony/ServiceStateTracker.java
index 5112ba0..bdcf3f7 100644
--- a/telephony/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -156,6 +156,9 @@ public abstract class ServiceStateTracker extends Handler {
}
+ public boolean getDesiredPowerState() {
+ return mDesiredPowerState;
+ }
/**
* Registration point for combined roaming on
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
index 761eb8b..bf58ab7 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
@@ -309,13 +309,11 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
Log.d(LOG_TAG, "setDataEnabled("+enable+") isEnabled=" + isEnabled);
if (!isEnabled && enable) {
setEnabled(EXTERNAL_NETWORK_DEFAULT_ID, true);
- return trySetupData(Phone.REASON_DATA_ENABLED);
+ sendMessage(obtainMessage(EVENT_TRY_SETUP_DATA));
} else if (!enable) {
setEnabled(EXTERNAL_NETWORK_DEFAULT_ID, false);
cleanUpConnection(true, Phone.REASON_DATA_DISABLED);
- return true;
- } else // isEnabled && enable
-
+ }
return true;
}
@@ -360,6 +358,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
int psState = mCdmaPhone.mSST.getCurrentCdmaDataConnectionState();
boolean roaming = phone.getServiceState().getRoaming();
+ boolean desiredPowerState = mCdmaPhone.mSST.getDesiredPowerState();
if ((state == State.IDLE || state == State.SCANNING)
&& (psState == ServiceState.RADIO_TECHNOLOGY_1xRTT ||
@@ -369,7 +368,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
mCdmaPhone.mRuimRecords.getRecordsLoaded())
&& (mCdmaPhone.mSST.isConcurrentVoiceAndData() ||
phone.getState() == Phone.State.IDLE )
- && isDataAllowed()) {
+ && isDataAllowed()
+ && desiredPowerState) {
return setupData(reason);
@@ -384,7 +384,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
" phoneState=" + phone.getState() +
" dataEnabled=" + getAnyDataEnabled() +
" roaming=" + roaming +
- " dataOnRoamingEnable=" + getDataOnRoamingEnabled());
+ " dataOnRoamingEnable=" + getDataOnRoamingEnabled() +
+ " desiredPowerState=" + desiredPowerState);
}
return false;
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
index 1d7aaf1..49e2daf 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
@@ -478,7 +478,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
setEnabled(Phone.APN_TYPE_DEFAULT, true);
// trySetupData() will be a no-op if we are currently
// connected to the MMS APN
- return trySetupData(Phone.REASON_DATA_ENABLED);
+ sendMessage(obtainMessage(EVENT_TRY_SETUP_DATA));
+ return true;
} else if (!enable) {
setEnabled(Phone.APN_TYPE_DEFAULT, false);
// Don't tear down if there is an active APN and it handles MMS or SUPL.
@@ -579,6 +580,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
int gprsState = ((GSMPhone) phone).mSST.getCurrentGprsState();
boolean roaming = phone.getServiceState().getRoaming();
+ boolean desiredPowerState = ((GSMPhone) phone).mSST.getDesiredPowerState();
if ((state == State.IDLE || state == State.SCANNING)
&& (gprsState == ServiceState.STATE_IN_SERVICE || noAutoAttach)
@@ -586,7 +588,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
&& ( ((GSMPhone) phone).mSST.isConcurrentVoiceAndData() ||
phone.getState() == Phone.State.IDLE )
&& isDataAllowed()
- && !mIsPsRestricted ) {
+ && !mIsPsRestricted
+ && desiredPowerState ) {
if (state == State.IDLE) {
waitingApns = buildWaitingApns();
@@ -614,7 +617,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
" dataEnabled=" + getAnyDataEnabled() +
" roaming=" + roaming +
" dataOnRoamingEnable=" + getDataOnRoamingEnabled() +
- " ps restricted=" + mIsPsRestricted);
+ " ps restricted=" + mIsPsRestricted +
+ " desiredPowerState=" + desiredPowerState);
return false;
}
}