summaryrefslogtreecommitdiff
path: root/core/java/android/net/LinkProperties.java
diff options
context:
space:
mode:
authorIsabelle Taylor <taylori@google.com>2020-02-14 13:09:16 +0000
committerIsabelle Taylor <taylori@google.com>2020-02-14 13:09:16 +0000
commita996b06b6f28878e29badb9c3f8ac132ec39f86b (patch)
tree7ca40cdfb9e613e4975b4a6c11129d4e322ef297 /core/java/android/net/LinkProperties.java
parent80abddc763fd02b773ae86bd904014f124cf2d53 (diff)
Revert "Remove framework code that has moved to frameworks/libs/net"
Revert "Use createRandomUnicastAddress from MacAddressUtils" Revert "Add net-utils-framework-net to telephony-common" Revert submission 1191997-net-utils-framework-net Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=git_qt-qpr1-dev-plus-aosp&target=aosp_taimen-userdebug&lkgb=6208131&lkbb=6208273&fkbb=6208273, bug b/149551544 Reverted Changes: Ib1c807d64:Use createRandomUnicastAddress from MacAddressUtil... I9e0f297e0:Add net-utils-framework-net to telephony-common Ieb8927f9a:Remove framework code that has moved to frameworks... Change-Id: I2824f781babd9f7e0bb9df524dadf6b8397dcaa1
Diffstat (limited to 'core/java/android/net/LinkProperties.java')
-rw-r--r--core/java/android/net/LinkProperties.java76
1 files changed, 69 insertions, 7 deletions
diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java
index 732ceb560cab..d25ee0e69e88 100644
--- a/core/java/android/net/LinkProperties.java
+++ b/core/java/android/net/LinkProperties.java
@@ -21,8 +21,6 @@ import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
-import android.net.util.LinkPropertiesUtils;
-import android.net.util.LinkPropertiesUtils.CompareResult;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
@@ -95,6 +93,36 @@ public final class LinkProperties implements Parcelable {
/**
* @hide
*/
+ public static class CompareResult<T> {
+ public final List<T> removed = new ArrayList<>();
+ public final List<T> added = new ArrayList<>();
+
+ public CompareResult() {}
+
+ public CompareResult(Collection<T> oldItems, Collection<T> newItems) {
+ if (oldItems != null) {
+ removed.addAll(oldItems);
+ }
+ if (newItems != null) {
+ for (T newItem : newItems) {
+ if (!removed.remove(newItem)) {
+ added.add(newItem);
+ }
+ }
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "removed=[" + TextUtils.join(",", removed)
+ + "] added=[" + TextUtils.join(",", added)
+ + "]";
+ }
+ }
+
+ /**
+ * @hide
+ */
@UnsupportedAppUsage(implicitMember =
"values()[Landroid/net/LinkProperties$ProvisioningChange;")
public enum ProvisioningChange {
@@ -1298,7 +1326,7 @@ public final class LinkProperties implements Parcelable {
*/
@UnsupportedAppUsage
public boolean isIdenticalInterfaceName(@NonNull LinkProperties target) {
- return LinkPropertiesUtils.isIdenticalInterfaceName(target, this);
+ return TextUtils.equals(getInterfaceName(), target.getInterfaceName());
}
/**
@@ -1321,7 +1349,10 @@ public final class LinkProperties implements Parcelable {
*/
@UnsupportedAppUsage
public boolean isIdenticalAddresses(@NonNull LinkProperties target) {
- return LinkPropertiesUtils.isIdenticalAddresses(target, this);
+ Collection<InetAddress> targetAddresses = target.getAddresses();
+ Collection<InetAddress> sourceAddresses = getAddresses();
+ return (sourceAddresses.size() == targetAddresses.size()) ?
+ sourceAddresses.containsAll(targetAddresses) : false;
}
/**
@@ -1333,7 +1364,15 @@ public final class LinkProperties implements Parcelable {
*/
@UnsupportedAppUsage
public boolean isIdenticalDnses(@NonNull LinkProperties target) {
- return LinkPropertiesUtils.isIdenticalDnses(target, this);
+ Collection<InetAddress> targetDnses = target.getDnsServers();
+ String targetDomains = target.getDomains();
+ if (mDomains == null) {
+ if (targetDomains != null) return false;
+ } else {
+ if (!mDomains.equals(targetDomains)) return false;
+ }
+ return (mDnses.size() == targetDnses.size()) ?
+ mDnses.containsAll(targetDnses) : false;
}
/**
@@ -1386,7 +1425,9 @@ public final class LinkProperties implements Parcelable {
*/
@UnsupportedAppUsage
public boolean isIdenticalRoutes(@NonNull LinkProperties target) {
- return LinkPropertiesUtils.isIdenticalRoutes(target, this);
+ Collection<RouteInfo> targetRoutes = target.getRoutes();
+ return (mRoutes.size() == targetRoutes.size()) ?
+ mRoutes.containsAll(targetRoutes) : false;
}
/**
@@ -1398,7 +1439,8 @@ public final class LinkProperties implements Parcelable {
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
public boolean isIdenticalHttpProxy(@NonNull LinkProperties target) {
- return LinkPropertiesUtils.isIdenticalHttpProxy(target, this);
+ return getHttpProxy() == null ? target.getHttpProxy() == null :
+ getHttpProxy().equals(target.getHttpProxy());
}
/**
@@ -1621,6 +1663,26 @@ public final class LinkProperties implements Parcelable {
}
/**
+ * Compares the addresses in this LinkProperties with another
+ * LinkProperties, examining only addresses on the base link.
+ *
+ * @param target a LinkProperties with the new list of addresses
+ * @return the differences between the addresses.
+ * @hide
+ */
+ public @NonNull CompareResult<LinkAddress> compareAddresses(@Nullable LinkProperties target) {
+ /*
+ * Duplicate the LinkAddresses into removed, we will be removing
+ * address which are common between mLinkAddresses and target
+ * leaving the addresses that are different. And address which
+ * are in target but not in mLinkAddresses are placed in the
+ * addedAddresses.
+ */
+ return new CompareResult<>(mLinkAddresses,
+ target != null ? target.getLinkAddresses() : null);
+ }
+
+ /**
* Compares the DNS addresses in this LinkProperties with another
* LinkProperties, examining only DNS addresses on the base link.
*