aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java')
-rw-r--r--src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java b/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
index 66fc00099..554a3c8ba 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcSwitchStateMachine.java
@@ -33,6 +33,7 @@ import com.android.internal.telephony.SubscriptionController;
import android.os.AsyncResult;
import android.os.Message;
import android.telephony.Rlog;
+import android.telephony.ServiceState;
public class DcSwitchStateMachine extends StateMachine {
private static final boolean DBG = true;
@@ -298,6 +299,16 @@ public class DcSwitchStateMachine extends StateMachine {
} else {
logd("EVENT_DATA_ALLOWED success");
mResponseMsg = null;
+
+ /* If the data service state is IN_SERVICE then move to
+ * ATTACHED state.
+ */
+ int dataState = mPhone.getServiceState().getDataRegState();
+ if (dataState == ServiceState.STATE_IN_SERVICE) {
+ logd("AttachingState: Already attached, move to ATTACHED state");
+ transitionTo(mAttachedState);
+ }
+
}
}
retVal = HANDLED;