diff options
author | Robert Greenwalt <robdroid@android.com> | 2009-12-07 15:13:51 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-12-07 15:13:51 -0800 |
commit | 47a2573e5463a1bac0f856a52ad7a8bce15a631e (patch) | |
tree | 69a8e191bc6d6f95a986e8474bcbc4c2f92e7a0e /services/java/com/android/server/ConnectivityService.java | |
parent | 976ed43786dcf078a0f802716d49644691656a24 (diff) | |
parent | 096871e7e1a1f8cdfbaa1acc4bc485b69ddf22a4 (diff) | |
download | frameworks_base-47a2573e5463a1bac0f856a52ad7a8bce15a631e.zip frameworks_base-47a2573e5463a1bac0f856a52ad7a8bce15a631e.tar.gz frameworks_base-47a2573e5463a1bac0f856a52ad7a8bce15a631e.tar.bz2 |
am 096871e7: am 90d1b745: Merge change I53e91db7 into eclair
Merge commit '096871e7e1a1f8cdfbaa1acc4bc485b69ddf22a4' into eclair-mr2-plus-aosp
* commit '096871e7e1a1f8cdfbaa1acc4bc485b69ddf22a4':
Filter out minor Connectivity Notifications.
Diffstat (limited to 'services/java/com/android/server/ConnectivityService.java')
-rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 676e5f6..27b631e 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -100,7 +100,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { private boolean mSystemReady; private ArrayList<Intent> mDeferredBroadcasts; - private class NetworkAttributes { + private static class NetworkAttributes { /** * Class for holding settings read from resources. */ @@ -108,6 +108,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { public int mType; public int mRadio; public int mPriority; + public NetworkInfo.State mLastState; public NetworkAttributes(String init) { String fragments[] = init.split(","); mName = fragments[0].toLowerCase(); @@ -128,6 +129,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { mType = ConnectivityManager.TYPE_MOBILE_HIPRI; } mPriority = Integer.parseInt(fragments[2]); + mLastState = NetworkInfo.State.UNKNOWN; } public boolean isDefault() { return (mType == mRadio); @@ -135,7 +137,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { } NetworkAttributes[] mNetAttributes; - private class RadioAttributes { + private static class RadioAttributes { public String mName; public int mPriority; public int mSimultaneity; @@ -1213,9 +1215,22 @@ public class ConnectivityService extends IConnectivityManager.Stub { switch (msg.what) { case NetworkStateTracker.EVENT_STATE_CHANGED: info = (NetworkInfo) msg.obj; + int type = info.getType(); + NetworkInfo.State state = info.getState(); + if(mNetAttributes[type].mLastState == state) { + if (DBG) { + // TODO - remove this after we validate the dropping doesn't break anything + Log.d(TAG, "Dropping ConnectivityChange for " + + info.getTypeName() +": " + + state + "/" + info.getDetailedState()); + } + return; + } + mNetAttributes[type].mLastState = state; + if (DBG) Log.d(TAG, "ConnectivityChange for " + info.getTypeName() + ": " + - info.getState() + "/" + info.getDetailedState()); + state + "/" + info.getDetailedState()); // Connectivity state changed: // [31-13] Reserved for future use @@ -1233,10 +1248,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { if (info.getDetailedState() == NetworkInfo.DetailedState.FAILED) { handleConnectionFailure(info); - } else if (info.getState() == - NetworkInfo.State.DISCONNECTED) { + } else if (state == NetworkInfo.State.DISCONNECTED) { handleDisconnect(info); - } else if (info.getState() == NetworkInfo.State.SUSPENDED) { + } else if (state == NetworkInfo.State.SUSPENDED) { // TODO: need to think this over. // the logic here is, handle SUSPENDED the same as // DISCONNECTED. The only difference being we are @@ -1245,7 +1259,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { // opportunity to handle DISCONNECTED and SUSPENDED // differently, or not. handleDisconnect(info); - } else if (info.getState() == NetworkInfo.State.CONNECTED) { + } else if (state == NetworkInfo.State.CONNECTED) { handleConnect(info); } break; |