Yong Zhang 25254db31a Delay radio reset to wait for data cleanup in CdmaDataConnectionTracker
Issue to be addressed:
In radioRestart() method in CdmaDataConnectionTracker, if the radio is
restarted right after cleaning up connection, it is possible that the
connection setup request triggered by radio-on may happen before the
connection cleanup has been completed so that the connection may not
be set up correctly after the radio is restarted. The end result could
be that the phone lost the data capability.

The patch includes the following changes:
1) Add EVENT_RESTART_RADIO in DataConnectionTracker.
2) In CdmaDataConnectionTracker, method restartRadio(), send a message
   delayed by 20s, the purpose of which is to wait for connection cleanup
   to be completed, then to restart radio.
3) In CdmaDataConnectionTracker, method trySetupData(), don't try to setup
   data if there is pending message to restart radio.

Addtional notes:
   A system property is not used to config the delayed timer because we
   think this fix is to address the unusual error case and waiting for
   long time should not impact user experience much. 12s is the longest
   time to complete the data cleanup as we have seen so far, so we are
   using a 20s timer.
2009-08-20 18:16:02 -07:00
..