diff options
author | Ramesh Sudini <ramesh.sudini@motorola.com> | 2011-03-28 10:59:42 -0700 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2011-03-28 11:00:26 -0700 |
commit | 3bbe33d703cc42ed4d0ee4015510219c6f5e6964 (patch) | |
tree | 898809f2697a3c4e9c053f3f87e39928938ffa3a /telephony | |
parent | e7cedad2b8408a13c610f3a7fcf13597a432a37d (diff) | |
download | frameworks_base-3bbe33d703cc42ed4d0ee4015510219c6f5e6964.zip frameworks_base-3bbe33d703cc42ed4d0ee4015510219c6f5e6964.tar.gz frameworks_base-3bbe33d703cc42ed4d0ee4015510219c6f5e6964.tar.bz2 |
DataConnectionTracker cleanup when disposed.
Change-Id: I4db442ae110531f33280ceb626fc260d392a1bd5
Diffstat (limited to 'telephony')
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; } |