fa2944d93f
Issues to be addressed: The method setPowerStateToDesired() in CdmaServiceStateTracker class sends a msg to CdmaDataConnectionTracker class to deactive data call, and then starts a loop which calls SystemClock.sleep() to wait for several seconds.The purpose of this is to wait for data-disconnection before sending RADIO_POWER off request. However, the CdmaServiceStateTracker and CdmaDataConnectionTracker are running in the same process so that the CdmaDataConnectionTracker is not able to process the message to deactive data before the loop ends. The patch includes the following changes: 1) In setPowerStateToDesired() in CdmaServiceStateTracker, replace implementation of loop-delay by sending a delayed msg to set RADIO_POWER off. 2) In CdmaDataConnectionTracker, when getting EVENT_DISCONNECT_DONE, call a new method in CdmaServiceStateTracker to process pending request to turn RADIO_POWER off.