From b2a9e4957a61e045924bac8d0c45841d582844d1 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Mon, 20 Sep 2010 18:01:43 -0700 Subject: [PATCH] Inet status bug fix Don't wipe out the connected status every time we get a cellular status change. Don't filter out disconnect event for wifi - we need them. bug:3009923 Change-Id: I68cadac5f44d6eb4e0fe711fda7c5d218abb45bd --- .../com/android/server/ConnectivityService.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 8603e51d3d..f38748b44e 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -920,11 +920,19 @@ public class ConnectivityService extends IConnectivityManager.Stub { newNet = tryFailover(prevNetType); if (newNet != null) { NetworkInfo switchTo = newNet.getNetworkInfo(); + if (!switchTo.isConnected()) { + // if the other net is connected they've already reset this and perhaps even gotten + // a positive report we don't want to overwrite, but if not we need to clear this now + // to turn our cellular sig strength white + mDefaultInetConditionPublished = 0; + } intent.putExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO, switchTo); } else { + mDefaultInetConditionPublished = 0; // we're not connected anymore intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true); } } + intent.putExtra(ConnectivityManager.EXTRA_INET_CONDITION, mDefaultInetConditionPublished); // do this before we broadcast the change handleConnectivityChange(prevNetType); @@ -1083,12 +1091,20 @@ public class ConnectivityService extends IConnectivityManager.Stub { newNet = tryFailover(info.getType()); if (newNet != null) { NetworkInfo switchTo = newNet.getNetworkInfo(); + if (!switchTo.isConnected()) { + // if the other net is connected they've already reset this and perhaps even gotten + // a positive report we don't want to overwrite, but if not we need to clear this now + // to turn our cellular sig strength white + mDefaultInetConditionPublished = 0; + } intent.putExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO, switchTo); } else { + mDefaultInetConditionPublished = 0; intent.putExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, true); } } + intent.putExtra(ConnectivityManager.EXTRA_INET_CONDITION, mDefaultInetConditionPublished); sendStickyBroadcast(intent); /* * If the failover network is already connected, then immediately send