From 164ca032b609c9590b41dfd83c13317612e43b2f Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Thu, 27 Jan 2011 16:35:18 -0800 Subject: [PATCH] Fix data network type notifications. These trackers have two copies of the network type: newSS and newNetworkType. I think thats wrong, but this was the smaller change on code that will hopefully be refactored soon. On radio_off we were making a new, empty newSS but not clearing newNetworkType so it still thought we were on 3G and when we reconnect and get 3G state changes new==old and we don't send the update. In this fix I reset newNetworkType every time we apply it to networkType. bug:3389886 Change-Id: I294f34259dc6c6f8f445bf2cb5466c8be747e25c --- .../internal/telephony/cdma/CdmaServiceStateTracker.java | 2 ++ .../android/internal/telephony/gsm/GsmServiceStateTracker.java | 3 +++ 2 files changed, 5 insertions(+) diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java index 19e7faeaeb881..a7f786664fece 100755 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java @@ -1069,6 +1069,8 @@ final class CdmaServiceStateTracker extends ServiceStateTracker { cdmaDataConnectionState = newCdmaDataConnectionState; networkType = newNetworkType; + // this new state has been applied - forget it until we get a new new state + newNetworkType = 0; newSS.setStateOutOfService(); // clean slate for next time diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java index c107d174919f3..bb99e4564c1d0 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java @@ -957,6 +957,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker { gprsState = newGPRSState; networkType = newNetworkType; + // this new state has been applied - forget it until we get a new new state + newNetworkType = 0; + newSS.setStateOutOfService(); // clean slate for next time