diff options
author | Wink Saville <wink@google.com> | 2011-03-31 15:51:07 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-03-31 15:51:07 -0700 |
commit | b90f9c370e5b1b1825016e48b864e8eda6d5f89c (patch) | |
tree | 90f6c9393ae53faf805f8302de9af52205796843 /telephony | |
parent | 11feacb348e624bcdbb073a32c1fc1d8bdc7bae3 (diff) | |
parent | 261306889e75ecc2b2fcac1165cfc39f03610979 (diff) | |
download | frameworks_base-b90f9c370e5b1b1825016e48b864e8eda6d5f89c.zip frameworks_base-b90f9c370e5b1b1825016e48b864e8eda6d5f89c.tar.gz frameworks_base-b90f9c370e5b1b1825016e48b864e8eda6d5f89c.tar.bz2 |
Merge "Telephony: Add Powerdown Cause to PDP Deactivate Message." into honeycomb-LTE
Diffstat (limited to 'telephony')
6 files changed, 29 insertions, 27 deletions
diff --git a/telephony/java/com/android/internal/telephony/DataConnection.java b/telephony/java/com/android/internal/telephony/DataConnection.java index b5578c3..e21e951 100644 --- a/telephony/java/com/android/internal/telephony/DataConnection.java +++ b/telephony/java/com/android/internal/telephony/DataConnection.java @@ -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. diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java index 8a029f1..fba73fb5 100644 --- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java @@ -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); } diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java index 5408ce9..779b125 100644 --- a/telephony/java/com/android/internal/telephony/PhoneBase.java +++ b/telephony/java/com/android/internal/telephony/PhoneBase.java @@ -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; } } diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java index 01519a7..3d10c9c 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java @@ -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() { diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java index 658de84..4c6cd17 100755 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java @@ -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(); } diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index 22c4640..4d94b27 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -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); |