diff options
author | Wink Saville <wink@google.com> | 2011-03-28 12:15:28 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-03-28 12:15:28 -0700 |
commit | 45538666db67a3fd528765b22bd4da30280128ef (patch) | |
tree | b59097a5bdca6a4aad5df696d010fac06aa19987 | |
parent | 60355780eaa7d80a76a5481ab033606bcfb630fd (diff) | |
parent | 94a19db5a78d3f43b01fa10bd09788f68debbcab (diff) | |
download | frameworks_base-45538666db67a3fd528765b22bd4da30280128ef.zip frameworks_base-45538666db67a3fd528765b22bd4da30280128ef.tar.gz frameworks_base-45538666db67a3fd528765b22bd4da30280128ef.tar.bz2 |
am 94a19db5: am 59d1b26a: Merge "DataConnectionTracker cleanup when disposed." into honeycomb-LTE
* commit '94a19db5a78d3f43b01fa10bd09788f68debbcab':
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; } |