diff options
3 files changed, 38 insertions, 2 deletions
diff --git a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java index 9f581849efca..7d56585b6b71 100644 --- a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java +++ b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java @@ -909,8 +909,8 @@ public final class PasspointConfiguration implements Parcelable { } StringBuilder sb = new StringBuilder(); - sb.append(String.format("%s_%x%x", mHomeSp.getFqdn(), mHomeSp.hashCode(), - mCredential.hashCode())); + sb.append(String.format("%s_%x%x", mHomeSp.getFqdn(), mHomeSp.getUniqueId(), + mCredential.getUniqueId())); return sb.toString(); } } diff --git a/wifi/java/android/net/wifi/hotspot2/pps/Credential.java b/wifi/java/android/net/wifi/hotspot2/pps/Credential.java index b037703ca056..99901808ec3e 100644 --- a/wifi/java/android/net/wifi/hotspot2/pps/Credential.java +++ b/wifi/java/android/net/wifi/hotspot2/pps/Credential.java @@ -1020,6 +1020,28 @@ public final class Credential implements Parcelable { Arrays.hashCode(mClientCertificateChain)); } + /** + * Get a unique identifier for Credential. This identifier depends only on items that remain + * constant throughout the lifetime of a subscription's credentials. + * + * @hide + * @return a Unique identifier for a Credential object + */ + public int getUniqueId() { + int usedCredential; + + // Initialize usedCredential based on the credential type of the profile + if (mUserCredential != null) { + usedCredential = 0; + } else if (mCertCredential != null) { + usedCredential = 1; + } else { + usedCredential = 2; + } + + return Objects.hash(usedCredential, mRealm); + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java b/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java index a5de3318f454..224c4bed9d5b 100644 --- a/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java +++ b/wifi/java/android/net/wifi/hotspot2/pps/HomeSp.java @@ -305,6 +305,20 @@ public final class HomeSp implements Parcelable { Arrays.hashCode(mRoamingConsortiumOis)); } + /** + * Get a unique identifier for HomeSp. This identifier depends only on items that remain + * constant throughout the lifetime of a subscription. + * + * @hide + * @return a Unique identifier for a HomeSp object + */ + public int getUniqueId() { + return Objects.hash(mFqdn, mFriendlyName, mHomeNetworkIds, Arrays.hashCode(mMatchAllOis), + Arrays.hashCode(mMatchAnyOis), Arrays.hashCode(mOtherHomePartners), + Arrays.hashCode(mRoamingConsortiumOis)); + } + + @Override public String toString() { StringBuilder builder = new StringBuilder(); |