diff options
Diffstat (limited to 'wifi/java/android/net/wifi/WifiInfo.java')
-rw-r--r-- | wifi/java/android/net/wifi/WifiInfo.java | 94 |
1 files changed, 93 insertions, 1 deletions
diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java index 39a5a7d93b5b..eb26228e6238 100644 --- a/wifi/java/android/net/wifi/WifiInfo.java +++ b/wifi/java/android/net/wifi/WifiInfo.java @@ -37,6 +37,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.EnumMap; import java.util.Locale; +import java.util.Objects; /** * Describes the state of any Wi-Fi connection that is active or @@ -51,7 +52,6 @@ import java.util.Locale; * {@link #getPasspointProviderFriendlyName()} will return null. */ public class WifiInfo implements TransportInfo, Parcelable { - // TODO(b/162602799): Implement equals/hahscode methods. private static final String TAG = "WifiInfo"; /** * This is the map described in the Javadoc comment above. The positions @@ -1182,4 +1182,96 @@ public class WifiInfo implements TransportInfo, Parcelable { public @Nullable String getPasspointUniqueId() { return mPasspointUniqueId; } + + @Override + public boolean equals(Object that) { + if (this == that) return true; + + // Potential API behavior change, so don't change behavior on older devices. + if (!SdkLevel.isAtLeastS()) return false; + + if (!(that instanceof WifiInfo)) return false; + + WifiInfo thatWifiInfo = (WifiInfo) that; + return Objects.equals(mWifiSsid, thatWifiInfo.mWifiSsid) + && Objects.equals(mBSSID, thatWifiInfo.mBSSID) + && Objects.equals(mNetworkId, thatWifiInfo.mNetworkId) + && Objects.equals(mRssi, thatWifiInfo.mRssi) + && Objects.equals(mSupplicantState, thatWifiInfo.mSupplicantState) + && Objects.equals(mLinkSpeed, thatWifiInfo.mLinkSpeed) + && Objects.equals(mTxLinkSpeed, thatWifiInfo.mTxLinkSpeed) + && Objects.equals(mRxLinkSpeed, thatWifiInfo.mRxLinkSpeed) + && Objects.equals(mFrequency, thatWifiInfo.mFrequency) + && Objects.equals(mIpAddress, thatWifiInfo.mIpAddress) + && Objects.equals(mMacAddress, thatWifiInfo.mMacAddress) + && Objects.equals(mMeteredHint, thatWifiInfo.mMeteredHint) + && Objects.equals(mEphemeral, thatWifiInfo.mEphemeral) + && Objects.equals(mTrusted, thatWifiInfo.mTrusted) + && Objects.equals(mOemPaid, thatWifiInfo.mOemPaid) + && Objects.equals(mOemPrivate, thatWifiInfo.mOemPrivate) + && Objects.equals(mCarrierMerged, thatWifiInfo.mCarrierMerged) + && Objects.equals(mRequestingPackageName, thatWifiInfo.mRequestingPackageName) + && Objects.equals(mOsuAp, thatWifiInfo.mOsuAp) + && Objects.equals(mFqdn, thatWifiInfo.mFqdn) + && Objects.equals(mProviderFriendlyName, thatWifiInfo.mProviderFriendlyName) + && Objects.equals(mSubscriptionId, thatWifiInfo.mSubscriptionId) + && Objects.equals(txBad, thatWifiInfo.txBad) + && Objects.equals(txRetries, thatWifiInfo.txRetries) + && Objects.equals(txSuccess, thatWifiInfo.txSuccess) + && Objects.equals(rxSuccess, thatWifiInfo.rxSuccess) + && Objects.equals(mLostTxPacketsPerSecond, thatWifiInfo.mLostTxPacketsPerSecond) + && Objects.equals(mTxRetriedTxPacketsPerSecond, + thatWifiInfo.mTxRetriedTxPacketsPerSecond) + && Objects.equals(mSuccessfulTxPacketsPerSecond, + thatWifiInfo.mSuccessfulTxPacketsPerSecond) + && Objects.equals(mSuccessfulRxPacketsPerSecond, + thatWifiInfo.mSuccessfulRxPacketsPerSecond) + && Objects.equals(score, thatWifiInfo.score) + && Objects.equals(mWifiStandard, thatWifiInfo.mWifiStandard) + && Objects.equals(mMaxSupportedTxLinkSpeed, thatWifiInfo.mMaxSupportedTxLinkSpeed) + && Objects.equals(mMaxSupportedRxLinkSpeed, thatWifiInfo.mMaxSupportedRxLinkSpeed) + && Objects.equals(mPasspointUniqueId, thatWifiInfo.mPasspointUniqueId); + } + + @Override + public int hashCode() { + // Potential API behavior change, so don't change behavior on older devices. + if (!SdkLevel.isAtLeastS()) return System.identityHashCode(this); + + return Objects.hash(mWifiSsid, + mBSSID, + mNetworkId, + mRssi, + mSupplicantState, + mLinkSpeed, + mTxLinkSpeed, + mRxLinkSpeed, + mFrequency, + mIpAddress, + mMacAddress, + mMeteredHint, + mEphemeral, + mTrusted, + mOemPaid, + mOemPrivate, + mCarrierMerged, + mRequestingPackageName, + mOsuAp, + mFqdn, + mProviderFriendlyName, + mSubscriptionId, + txBad, + txRetries, + txSuccess, + rxSuccess, + mLostTxPacketsPerSecond, + mTxRetriedTxPacketsPerSecond, + mSuccessfulTxPacketsPerSecond, + mSuccessfulRxPacketsPerSecond, + score, + mWifiStandard, + mMaxSupportedTxLinkSpeed, + mMaxSupportedRxLinkSpeed, + mPasspointUniqueId); + } } |