diff options
| author | Wink Saville <wink@google.com> | 2011-03-28 12:13:22 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2011-03-28 12:13:22 -0700 |
| commit | 94a19db5a78d3f43b01fa10bd09788f68debbcab (patch) | |
| tree | a0a5984e59280bd384b73d9a435957fc2697c844 | |
| parent | 038c7297c9e2e4b6cdb490ac9fe7102da434278a (diff) | |
| parent | 59d1b26a6a4b9b2de829d62af2179f57deb79391 (diff) | |
| download | frameworks_base-94a19db5a78d3f43b01fa10bd09788f68debbcab.zip frameworks_base-94a19db5a78d3f43b01fa10bd09788f68debbcab.tar.gz frameworks_base-94a19db5a78d3f43b01fa10bd09788f68debbcab.tar.bz2 | |
am 59d1b26a: Merge "DataConnectionTracker cleanup when disposed." into honeycomb-LTE
* commit '59d1b26a6a4b9b2de829d62af2179f57deb79391':
DataConnectionTracker cleanup when disposed.
3 files changed, 10 insertions, 2 deletions
diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java index d4a3c0a..be97124 100644 --- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java @@ -247,6 +247,9 @@ public abstract class DataConnectionTracker extends Handler { /* Currently active APN */ protected ApnSetting mActiveApn; + /* Once disposed dont handle any messages */ + protected boolean mIsDisposed = false; + protected BroadcastReceiver mIntentReceiver = new BroadcastReceiver () { @Override @@ -327,6 +330,7 @@ public abstract class DataConnectionTracker extends Handler { } public void dispose() { + mIsDisposed = true; mPhone.getContext().unregisterReceiver(this.mIntentReceiver); } diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java index b244945..b24909f 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java @@ -118,6 +118,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker { @Override public void dispose() { + cleanUpConnection(false, null); + super.dispose(); // Unregister from all events @@ -861,7 +863,7 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker { @Override public void handleMessage (Message msg) { - if (!mPhone.mIsTheCurrentActivePhone) { + if (!mPhone.mIsTheCurrentActivePhone || mIsDisposed) { log("Ignore CDMA msgs since CDMA phone is inactive"); return; } diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index 48e8ea9..d8ff268 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -192,6 +192,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { @Override public void dispose() { + cleanUpAllConnections(false, null); + super.dispose(); //Unregister for all events @@ -1791,7 +1793,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { public void handleMessage (Message msg) { if (DBG) log("GSMDataConnTrack handleMessage "+msg); - if (!mPhone.mIsTheCurrentActivePhone) { + if (!mPhone.mIsTheCurrentActivePhone || mIsDisposed) { log("Ignore GSM msgs since GSM phone is inactive"); return; } |
