From f23fb20d134b4f078b7856e5e61e5f73fdb71a7e Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Wed, 18 May 2011 15:59:04 -0700 Subject: [PATCH] Reset connection while data state changed. Check data call states and reset connection if any link properties changed. Change-Id: I008aea969378648192852161959fdf4aad6211a1 --- core/java/android/net/LinkProperties.java | 3 ++- core/java/android/net/RouteInfo.java | 27 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java index 61acf2b841..19894a039a 100644 --- a/core/java/android/net/LinkProperties.java +++ b/core/java/android/net/LinkProperties.java @@ -68,7 +68,8 @@ public class LinkProperties implements Parcelable { mLinkAddresses = source.getLinkAddresses(); mDnses = source.getDnses(); mRoutes = source.getRoutes(); - mHttpProxy = new ProxyProperties(source.getHttpProxy()); + mHttpProxy = (source.getHttpProxy() == null) ? + null : new ProxyProperties(source.getHttpProxy()); } } diff --git a/core/java/android/net/RouteInfo.java b/core/java/android/net/RouteInfo.java index 39e708a8d9..74ebed1be0 100644 --- a/core/java/android/net/RouteInfo.java +++ b/core/java/android/net/RouteInfo.java @@ -128,6 +128,33 @@ public class RouteInfo implements Parcelable { } } + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + + if (!(obj instanceof RouteInfo)) return false; + + RouteInfo target = (RouteInfo) obj; + + boolean sameDestination = ( mDestination == null) ? + target.getDestination() == null + : mDestination.equals(target.getDestination()); + + boolean sameAddress = (mGateway == null) ? + target.getGateway() == null + : mGateway.equals(target.getGateway()); + + return sameDestination && sameAddress + && mIsDefault == target.mIsDefault; + } + + @Override + public int hashCode() { + return (mDestination == null ? 0 : mDestination.hashCode()) + + (mGateway == null ? 0 :mGateway.hashCode()) + + (mIsDefault ? 3 : 7); + } + public static final Creator CREATOR = new Creator() { public RouteInfo createFromParcel(Parcel in) {