diff options
author | 2011-03-28 12:13:22 -0700 | |
---|---|---|
committer | 2011-03-28 12:13:22 -0700 | |
commit | 94a19db5a78d3f43b01fa10bd09788f68debbcab (patch) | |
tree | a0a5984e59280bd384b73d9a435957fc2697c844 | |
parent | 038c7297c9e2e4b6cdb490ac9fe7102da434278a (diff) | |
parent | 59d1b26a6a4b9b2de829d62af2179f57deb79391 (diff) |
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 d4a3c0a5a547..be97124b1893 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 b2449458ab00..b24909fcddfb 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 48e8ea98db08..d8ff26899742 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; } |