summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2011-03-28 12:15:28 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-03-28 12:15:28 -0700
commit45538666db67a3fd528765b22bd4da30280128ef (patch)
treeb59097a5bdca6a4aad5df696d010fac06aa19987
parent60355780eaa7d80a76a5481ab033606bcfb630fd (diff)
parent94a19db5a78d3f43b01fa10bd09788f68debbcab (diff)
downloadframeworks_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.
-rw-r--r--telephony/java/com/android/internal/telephony/DataConnectionTracker.java4
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java4
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java4
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;
}