Merge "Telephony: Add Powerdown Cause to PDP Deactivate Message." into honeycomb-LTE

This commit is contained in:
Wink Saville
2011-03-31 15:51:07 -07:00
committed by Android (Google) Code Review
6 changed files with 29 additions and 27 deletions

View File

@@ -109,14 +109,17 @@ public abstract class DataConnection extends HierarchicalStateMachine {
* Used internally for saving disconnecting parameters.
*/
protected static class DisconnectParams {
public DisconnectParams(Message onCompletedMsg) {
public DisconnectParams(String reason, Message onCompletedMsg) {
this.reason = reason;
this.onCompletedMsg = onCompletedMsg;
}
public DisconnectParams(ResetSynchronouslyLock lockObj) {
this.reason = null;
this.lockObj = lockObj;
}
public int tag;
public String reason;
public Message onCompletedMsg;
public ResetSynchronouslyLock lockObj;
}
@@ -274,10 +277,8 @@ public abstract class DataConnection extends HierarchicalStateMachine {
if ((o != null) && (o instanceof DisconnectParams)) {
DisconnectParams dp = (DisconnectParams)o;
Message m = dp.onCompletedMsg;
if ((m != null) && (m.obj != null) && (m.obj instanceof String)) {
String reason = (String)m.obj;
if (TextUtils.equals(reason, Phone.REASON_RADIO_TURNED_OFF))
discReason = RILConstants.DEACTIVATE_REASON_RADIO_OFF;
if (TextUtils.equals(dp.reason, Phone.REASON_RADIO_TURNED_OFF)) {
discReason = RILConstants.DEACTIVATE_REASON_RADIO_OFF;
}
}
if (phone.mCM.getRadioState().isOn()) {
@@ -963,7 +964,7 @@ public abstract class DataConnection extends HierarchicalStateMachine {
* With AsyncResult.userObj set to the original msg.obj.
*/
public void reset(Message onCompletedMsg) {
sendMessage(obtainMessage(EVENT_RESET, new DisconnectParams(onCompletedMsg)));
sendMessage(obtainMessage(EVENT_RESET, new DisconnectParams(null, onCompletedMsg)));
}
/**
@@ -1014,8 +1015,8 @@ public abstract class DataConnection extends HierarchicalStateMachine {
* @param onCompletedMsg is sent with its msg.obj as an AsyncResult object.
* With AsyncResult.userObj set to the original msg.obj.
*/
public void disconnect(Message onCompletedMsg) {
sendMessage(obtainMessage(EVENT_DISCONNECT, new DisconnectParams(onCompletedMsg)));
public void disconnect(String reason, Message onCompletedMsg) {
sendMessage(obtainMessage(EVENT_DISCONNECT, new DisconnectParams(reason, onCompletedMsg)));
}
// ****** The following are used for debugging.

View File

@@ -461,7 +461,7 @@ public abstract class DataConnectionTracker extends Handler {
protected abstract void onVoiceCallStarted();
protected abstract void onVoiceCallEnded();
protected abstract void onCleanUpConnection(boolean tearDown, int apnId, String reason);
protected abstract void onCleanUpAllConnections();
protected abstract void onCleanUpAllConnections(String cause);
@Override
public void handleMessage(Message msg) {
@@ -517,7 +517,7 @@ public abstract class DataConnectionTracker extends Handler {
break;
case EVENT_CLEAN_UP_ALL_CONNECTIONS: {
onCleanUpAllConnections();
onCleanUpAllConnections((String) msg.obj);
break;
}
case EVENT_CLEAN_UP_CONNECTION: {
@@ -920,7 +920,7 @@ public abstract class DataConnectionTracker extends Handler {
resetAllRetryCounts();
onTrySetupData(Phone.REASON_DATA_ENABLED);
} else {
cleanUpAllConnections();
cleanUpAllConnections(null);
}
}
}
@@ -930,8 +930,9 @@ public abstract class DataConnectionTracker extends Handler {
return mDataEnabled;
}
public void cleanUpAllConnections() {
public void cleanUpAllConnections(String cause) {
Message msg = obtainMessage(EVENT_CLEAN_UP_ALL_CONNECTIONS);
msg.obj = cause;
sendMessage(msg);
}

View File

@@ -243,7 +243,7 @@ public abstract class PhoneBase extends Handler implements Phone {
synchronized(PhoneProxy.lockForRadioTechnologyChange) {
mCM.unSetOnCallRing(this);
// Must cleanup all connectionS and needs to use sendMessage!
mDataConnection.cleanUpAllConnections();
mDataConnection.cleanUpAllConnections(null);
mIsTheCurrentActivePhone = false;
}
}

View File

@@ -269,7 +269,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
if(conn != null) {
if (tearDown) {
if (DBG) log("cleanUpConnection: teardown, call conn.disconnect");
conn.disconnect(obtainMessage(EVENT_DISCONNECT_DONE,
conn.disconnect(reason, obtainMessage(EVENT_DISCONNECT_DONE,
conn.getDataConnectionId(), 0, reason));
notificationDeferred = true;
} else {
@@ -367,7 +367,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
protected void restartRadio() {
if (DBG) log("Cleanup connection and wait " +
(TIME_DELAYED_TO_RESTART_RADIO / 1000) + "s to restart radio");
cleanUpAllConnections();
cleanUpAllConnections(null);
sendEmptyMessageDelayed(EVENT_RESTART_RADIO, TIME_DELAYED_TO_RESTART_RADIO);
mPendingRestartRadio = true;
}
@@ -524,14 +524,14 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
protected void onRecordsLoaded() {
if (mState == State.FAILED) {
cleanUpAllConnections();
cleanUpAllConnections(null);
}
sendMessage(obtainMessage(EVENT_TRY_SETUP_DATA, Phone.REASON_SIM_LOADED));
}
protected void onNVReady() {
if (mState == State.FAILED) {
cleanUpAllConnections();
cleanUpAllConnections(null);
}
sendMessage(obtainMessage(EVENT_TRY_SETUP_DATA));
}
@@ -570,7 +570,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
trySetupData(Phone.REASON_ROAMING_ON);
} else {
if (DBG) log("Tear down data connection on roaming.");
cleanUpAllConnections();
cleanUpAllConnections(null);
}
}
@@ -591,7 +591,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
notifyDataAvailability(null);
if (mState != State.IDLE) {
cleanUpAllConnections();
cleanUpAllConnections(null);
}
}
@@ -608,7 +608,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
log("We're on the simulator; assuming radio off is meaningless");
} else {
if (DBG) log("Radio is off and clean up all connection");
cleanUpAllConnections();
cleanUpAllConnections(null);
}
}
@@ -714,9 +714,9 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
}
@Override
protected void onCleanUpAllConnections() {
protected void onCleanUpAllConnections(String cause) {
// Only one CDMA connection is supported
cleanUpConnection(true, null);
cleanUpConnection(true, cause);
}
private void createAllDataConnectionList() {

View File

@@ -525,7 +525,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
synchronized (this) {
if (!mPendingRadioPowerOffAfterDataOff) {
if (dcTracker.isAnyActiveDataConnections()) {
dcTracker.cleanUpAllConnections();
dcTracker.cleanUpAllConnections(Phone.REASON_RADIO_TURNED_OFF);
if (sendEmptyMessageDelayed(EVENT_SET_RADIO_POWER_OFF, 30000)) {
if (DBG) log("Wait upto 30s for data to disconnect, then turn off radio.");
mPendingRadioPowerOffAfterDataOff = true;
@@ -534,7 +534,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
hangupAndPowerOff();
}
} else {
dcTracker.cleanUpAllConnections();
dcTracker.cleanUpAllConnections(Phone.REASON_RADIO_TURNED_OFF);
if (DBG) log("Data disconnected, turn off radio right away.");
hangupAndPowerOff();
}

View File

@@ -708,8 +708,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
*/
@Override
protected void onCleanUpAllConnections() {
cleanUpAllConnections(true, null);
protected void onCleanUpAllConnections(String cause) {
cleanUpAllConnections(true, cause);
}
private void cleanUpConnection(boolean tearDown, ApnContext apnContext) {
@@ -745,7 +745,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
apnContext.setState(State.DISCONNECTING);
if (tearDown ) {
Message msg = obtainMessage(EVENT_DISCONNECT_DONE, apnContext);
conn.disconnect(msg);
conn.disconnect(apnContext.getReason(), msg);
} else {
conn.resetSynchronously();
apnContext.setState(State.IDLE);