A hack that when restartRadio is called the CdmaDataConnectionTracker
to retry a connection and possibly reconnect after a temporary data loss.
The root cause appears to be because DEACTIVATE and POWER_RADIO_OFF are
sent back to back and POWER_RADIO_OFF completes before DEACTIVATE.
When this happens CdmaDataConnectionTracker won't attempt to reestablish
a data connection until a voice call terminates.
At this time it appears the better solution is have CdmaDataConnectionTracker
wait for DEACTIVATE to complete before issuing POWER_RADIO_OFF, this fix
will be implemented in the near future.
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
index 33cbbd7..8e87587 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java
@@ -498,7 +498,7 @@
protected void restartRadio() {
Log.d(LOG_TAG, "************TURN OFF RADIO**************");
- cleanUpConnection(true, Phone.REASON_RADIO_TURNED_OFF);
+ cleanUpConnection(true, Phone.REASON_CDMA_DATA_DETACHED);
phone.mCM.setRadioPower(false, null);
/* Note: no need to call setRadioPower(true). Assuming the desired
* radio power state is still ON (as tracked by ServiceStateTracker),