17fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang/* 27fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * Copyright (C) 2014 The Android Open Source Project 37fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * 47fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * Licensed under the Apache License, Version 2.0 (the "License"); 57fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * you may not use this file except in compliance with the License. 67fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * You may obtain a copy of the License at 77fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * 87fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * http://www.apache.org/licenses/LICENSE-2.0 97fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * 107fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * Unless required by applicable law or agreed to in writing, software 117fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * distributed under the License is distributed on an "AS IS" BASIS, 127fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * See the License for the specific language governing permissions and 147fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * limitations under the License. 157fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang */ 167fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 177fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changpackage android.net.wifi.passpoint; 187fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 197fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changimport android.net.wifi.WifiEnterpriseConfig; 207fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changimport android.os.Parcelable; 217fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changimport android.os.Parcel; 227fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 237fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changimport java.util.Collection; 247fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changimport java.util.Iterator; 257fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changimport java.util.Map; 268dd64036cdaec757d3b19654a2c3c336ce902433roger.changimport java.util.Set; 278dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 287fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 297c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng/** 307c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * A class representing a Wi-Fi Passpoint credential. 318a9eb81df1218884bf0c4cdb214d2f1ec0a5679cYuhao Zheng * @hide 327c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng */ 337fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Changpublic class WifiPasspointCredential implements Parcelable { 347fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 357fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private final static String TAG = "PasspointCredential"; 368dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private final static boolean DBG = true; 378dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 388dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** Wi-Fi nodes**/ 398dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mWifiSpFqdn; 408dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 418dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** PerProviderSubscription nodes **/ 427fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mCredentialName; 438dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 448dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** SubscriptionUpdate nodes **/ 458dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mSubscriptionUpdateInterval; 467fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mSubscriptionUpdateMethod; 478dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mSubscriptionUpdateRestriction; 488dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mSubscriptionUpdateURI; 498dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mSubscriptionUpdateUsername; 508dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mSubscriptionUpdatePassword; 518dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 528dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** HomeSP nodes **/ 538dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mHomeSpFqdn; 548dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mFriendlyName; 558dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private Collection<WifiPasspointDmTree.HomeOIList> mHomeOIList; 568dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private Collection<WifiPasspointDmTree.OtherHomePartners> mOtherHomePartnerList; 578dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 588dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** SubscriptionParameters nodes**/ 598dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mCreationDate; 608dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mExpirationDate; 618dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 628dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** Credential nodes **/ 637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mType; 647fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mInnerMethod; 657fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mCertType; 667fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mCertSha256Fingerprint; 678dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mUpdateIdentifier; 687fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mUsername; 697fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mPasswd; 708dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mRealm; 717fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mImsi; 727fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mMcc; 737fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mMnc; 747fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mCaRootCert; 757fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mClientCert; 768dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private boolean mCheckAaaServerCertStatus; 777fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 788dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** Policy nodes **/ 798dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mPolicyUpdateUri; 807fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mPolicyUpdateInterval; 818dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mPolicyUpdateUsername; 828dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mPolicyUpdatePassword; 837fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mPolicyUpdateRestriction; 847fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mPolicyUpdateMethod; 857fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private Collection<WifiPasspointDmTree.PreferredRoamingPartnerList> mPreferredRoamingPartnerList; 867fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private Collection<WifiPasspointDmTree.MinBackhaulThresholdNetwork> mMinBackhaulThresholdNetwork; 877fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private Collection<WifiPasspointDmTree.SPExclusionList> mSpExclusionList; 888dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private Collection<WifiPasspointDmTree.RequiredProtoPortTuple> mRequiredProtoPortTuple; 897fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang private String mMaxBssLoad; 907fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 918dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** CrednetialPriority node **/ 928dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private int mCrednetialPriority; 937fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 948dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** AAAServerTrustRoot nodes **/ 958dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mAaaCertUrl; 968dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mAaaSha256Fingerprint; 977fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 988dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** Others **/ 998dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private boolean mIsMachineRemediation; 1008dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private boolean mUserPreferred = false; 1018dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private String mWifiTreePath; 1028dd64036cdaec757d3b19654a2c3c336ce902433roger.chang private WifiEnterpriseConfig mEnterpriseConfig; 1037fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1047fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 1058dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public WifiPasspointCredential() {} 1067fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1077fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** 1087fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * Constructor 1097fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * @param realm Realm of the passpoint credential 1107c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * @param fqdn Fully qualified domain name (FQDN) of the credential 111bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * @param config Enterprise config, must be either EAP-TLS or EAP-TTLS 1127fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * @see WifiEnterpriseConfig 1137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang */ 1147c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng public WifiPasspointCredential(String realm, String fqdn, WifiEnterpriseConfig config) { 1157fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mRealm = realm; 1167fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang switch (config.getEapMethod()) { 1177fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang case WifiEnterpriseConfig.Eap.TLS: 1187fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang case WifiEnterpriseConfig.Eap.TTLS: 119bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng mEnterpriseConfig = new WifiEnterpriseConfig(config); 1207fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang break; 1217fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang default: 1227fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang // ignore 1237fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 1247fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 1257fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1267fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 1277fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public WifiPasspointCredential(String type, 1287fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang String caroot, 1297fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang String clientcert, 1307fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang String mcc, 1317fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang String mnc, 1327fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang WifiPasspointDmTree.SpFqdn sp, 1337fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang WifiPasspointDmTree.CredentialInfo credinfo) { 1347fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1357fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (credinfo == null) { 1367fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return; 1377fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 1387fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1397fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mType = type; 1407fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mCaRootCert = caroot; 1417fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mClientCert = clientcert; 1427fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1438dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mWifiSpFqdn = sp.nodeName; 1447fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mUpdateIdentifier = sp.perProviderSubscription.UpdateIdentifier; 1457fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1467fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mCredentialName = credinfo.nodeName; 1478dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mOtherHomePartnerList = credinfo.homeSP.otherHomePartners.values(); 1487fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1498dd64036cdaec757d3b19654a2c3c336ce902433roger.chang Set set = credinfo.aAAServerTrustRoot.entrySet(); 1508dd64036cdaec757d3b19654a2c3c336ce902433roger.chang Iterator i = set.iterator(); 1517fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (i.hasNext()) { 1527fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang Map.Entry entry3 = (Map.Entry) i.next(); 1537fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang WifiPasspointDmTree.AAAServerTrustRoot aaa = (WifiPasspointDmTree.AAAServerTrustRoot) entry3.getValue(); 1548dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mAaaCertUrl = aaa.CertURL; 1558dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mAaaSha256Fingerprint = aaa.CertSHA256Fingerprint; 1567fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 1577fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1587fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mCertType = credinfo.credential.digitalCertificate.CertificateType; 1597fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mCertSha256Fingerprint = credinfo.credential.digitalCertificate.CertSHA256Fingerprint; 1607fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mUsername = credinfo.credential.usernamePassword.Username; 1617fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mPasswd = credinfo.credential.usernamePassword.Password; 1627fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mIsMachineRemediation = credinfo.credential.usernamePassword.MachineManaged; 1637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mInnerMethod = credinfo.credential.usernamePassword.eAPMethod.InnerMethod; 1647fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mImsi = credinfo.credential.sim.IMSI; 1657fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mMcc = mcc; 1667fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mMnc = mnc; 1677fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mCreationDate = credinfo.credential.CreationDate; 1687fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mExpirationDate = credinfo.credential.ExpirationDate; 1697fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mRealm = credinfo.credential.Realm; 1707fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1717fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (credinfo.credentialPriority == null) { 1728dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mCrednetialPriority = 128; 1738dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } else { 1748dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mCrednetialPriority = Integer.parseInt(credinfo.credentialPriority); 1757fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 1767fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1777fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mHomeSpFqdn = credinfo.homeSP.FQDN; 1787fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1798dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mSubscriptionUpdateInterval = credinfo.subscriptionUpdate.UpdateInterval; 1807fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mSubscriptionUpdateMethod = credinfo.subscriptionUpdate.UpdateMethod; 1817fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mSubscriptionUpdateRestriction = credinfo.subscriptionUpdate.Restriction; 1827fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mSubscriptionUpdateURI = credinfo.subscriptionUpdate.URI; 1838dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mSubscriptionUpdateUsername = credinfo.subscriptionUpdate.usernamePassword.Username; 1848dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mSubscriptionUpdatePassword = credinfo.subscriptionUpdate.usernamePassword.Password; 1857fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1868dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mPolicyUpdateUri = credinfo.policy.policyUpdate.URI; 1877fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mPolicyUpdateInterval = credinfo.policy.policyUpdate.UpdateInterval; 1888dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mPolicyUpdateUsername = credinfo.policy.policyUpdate.usernamePassword.Username; 1898dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mPolicyUpdatePassword = credinfo.policy.policyUpdate.usernamePassword.Password; 1907fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mPolicyUpdateRestriction = credinfo.policy.policyUpdate.Restriction; 1917fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mPolicyUpdateMethod = credinfo.policy.policyUpdate.UpdateMethod; 1927fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mPreferredRoamingPartnerList = credinfo.policy.preferredRoamingPartnerList.values(); 1937fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mMinBackhaulThresholdNetwork = credinfo.policy.minBackhaulThreshold.values(); 1947fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mRequiredProtoPortTuple = credinfo.policy.requiredProtoPortTuple.values(); 1957fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mMaxBssLoad = credinfo.policy.maximumBSSLoadValue; 1967fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mSpExclusionList = credinfo.policy.sPExclusionList.values(); 1977fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 1987fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mHomeOIList = credinfo.homeSP.homeOIList.values(); 1997fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mFriendlyName = credinfo.homeSP.FriendlyName; 2008dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mCheckAaaServerCertStatus = credinfo.credential.CheckAAAServerCertStatus; 2017fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2027fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2037fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2047fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getUpdateIdentifier() { 2057fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mUpdateIdentifier; 2067fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2077fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2087fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2097fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getUpdateMethod() { 2107fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mSubscriptionUpdateMethod; 2117fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2127fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2147fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public void setUpdateMethod(String method) { 2157fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mSubscriptionUpdateMethod = method; 2167fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2177fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2187fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2198dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getWifiSpFqdn() { 2208dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mWifiSpFqdn; 2217fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2227fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2237fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2247fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getCredName() { 2257fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mCredentialName; 2267fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2277fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2287fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2298dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getType() { 2307fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mType; 2317fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2327fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2337fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** 234bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * Get enterprise config of this Passpoint credential. 235bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * @return Enterprise config 236bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * @see WifiEnterpriseConfig 2377fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang */ 238bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng public WifiEnterpriseConfig getEnterpriseConfig() { 239bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng return new WifiEnterpriseConfig(mEnterpriseConfig); 240bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng } 241bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng 242bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng /** 243bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * Set enterprise config of this Passpoint credential. 244bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * @param config Enterprise config, must be either EAP-TLS or EAP-TTLS 245bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng * @see WifiEnterpriseConfig 246bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng */ 247bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng public void setEnterpriseConfig(WifiEnterpriseConfig config) { 248bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng // TODO 2497fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2507fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2517fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2527fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getCertType() { 2537fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mCertType; 2547fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2557fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2567fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2577fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getCertSha256Fingerprint() { 2587fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mCertSha256Fingerprint; 2597fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2607fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 261bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng /** @hide */ 2627fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getUserName() { 2637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mUsername; 2647fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2657fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2667fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2677fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getPassword() { 2687fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang // TODO: guarded by connectivity internal 2697fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mPasswd; 2707fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2717fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2727c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng /** @hide */ 2737fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getImsi() { 2747fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mImsi; 2757fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2767fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2777fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2787fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getMcc() { 2797fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mMcc; 2807fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2817fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2827fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 2837fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getMnc() { 2847fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mMnc; 2857fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2867fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 287bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng /** @hide */ 2887c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng public String getCaRootCertPath() { 2897fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mCaRootCert; 2907fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2917fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 292bd9af355975e0feb54385c4615b9f9314b52dba7Yuhao Zheng /** @hide */ 2937fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getClientCertPath() { 2947fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mClientCert; 2957fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 2967fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 2977fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** 2987c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * Get the realm of this Passpoint credential. 2997fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * @return Realm 3007fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang */ 3017fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getRealm() { 3027fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mRealm; 3037fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3047fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3057c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng /** 3067c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * Set the ream of this Passpoint credential. 3077c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * @param realm Realm 3087c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng */ 3097c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng public void setRealm(String realm) { 3107c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng mRealm = realm; 3117c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng } 3127c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng 3137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3147fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public int getPriority() { 3157fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (mUserPreferred) { 3167fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return 0; 3177fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3187fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3198dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mCrednetialPriority; 3207fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3217fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3227fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** 3237c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * Get the fully qualified domain name (FQDN) of this Passpoint credential. 3247fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang * @return FQDN 3257fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang */ 3268dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getHomeSpFqdn() { 3277fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mHomeSpFqdn; 3287fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3297fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3307c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng /** 3317c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * Set the fully qualified domain name (FQDN) of this Passpoint credential. 3327c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng * @param fqdn FQDN 3337c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng */ 334833a6f3d1bf0ade93fc0d35dcb12fc1902a7761droger.chang public void setHomeFqdn(String fqdn) { 3357c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng mHomeSpFqdn = fqdn; 3367c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng } 3377c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng 3387c28c3663470ce5eb818cfa2ce4a993e4bae8f33Yuhao Zheng 3397fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3408dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public Collection<WifiPasspointDmTree.OtherHomePartners> getOtherHomePartnerList() { 3418dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mOtherHomePartnerList; 3427fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3437fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3447fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3458dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getSubscriptionUpdateUsername() { 3468dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mSubscriptionUpdateUsername; 3477fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3487fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3497fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3508dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getSubscriptionUpdatePassword() { 3518dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mSubscriptionUpdatePassword; 3527fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3537fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3547fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3558dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getPolicyUpdateUri() { 3568dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mPolicyUpdateUri; 3577fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3587fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3597fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3607fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getPolicyUpdateInterval() { 3617fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mPolicyUpdateInterval; 3627fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3647fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3658dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getPolicyUpdateUsername() { 3668dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mPolicyUpdateUsername; 3677fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3687fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3697fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3708dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getPolicyUpdatePassword() { 3718dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mPolicyUpdatePassword; 3727fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3737fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3747fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3757fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getPolicyUpdateRestriction() { 3767fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mPolicyUpdateRestriction; 3777fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3787fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3797fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3807fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getPolicyUpdateMethod() { 3817fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mPolicyUpdateMethod; 3827fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3837fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3847fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3857fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getCreationDate() { 3867fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mCreationDate; 3877fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3887fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3897fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3907fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getExpirationDate() { 3917fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mExpirationDate; 3927fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3937fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3947fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 3957fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public void setExpirationDate(String expirationdate) { 3967fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mExpirationDate = expirationdate; 3977fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 3987fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 3997fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4008dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public Collection<WifiPasspointDmTree.PreferredRoamingPartnerList> getPreferredRoamingPartnerList() { 4017fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mPreferredRoamingPartnerList; 4027fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4037fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4047fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4058dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public Collection<WifiPasspointDmTree.HomeOIList> getHomeOiList() { 4067fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mHomeOIList; 4077fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4087fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4097fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4107fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public Collection<WifiPasspointDmTree.MinBackhaulThresholdNetwork> getBackhaulThresholdList() { 4117fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mMinBackhaulThresholdNetwork; 4127fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4147fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4157fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public Collection<WifiPasspointDmTree.RequiredProtoPortTuple> getRequiredProtoPortList() { 4167fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mRequiredProtoPortTuple; 4177fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4187fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4197fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4207fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public Collection<WifiPasspointDmTree.SPExclusionList> getSPExclusionList() { 4217fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mSpExclusionList; 4227fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4237fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4247fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4257fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public boolean getIsMachineRemediation() { 4267fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mIsMachineRemediation; 4277fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4287fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4297fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4308dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getAaaCertUrl() { 4318dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mAaaCertUrl; 4327fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4337fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4347fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4358dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public String getAaaSha256Fingerprint() { 4368dd64036cdaec757d3b19654a2c3c336ce902433roger.chang return mAaaSha256Fingerprint; 4377fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4387fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4397fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4407fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getSubscriptionUpdateRestriction() { 4417fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mSubscriptionUpdateRestriction; 4427fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4437fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4447fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4457fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getSubscriptionUpdateURI() { 4467fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mSubscriptionUpdateURI; 4477fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4487fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4497fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4507fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getSubscriptionUpdateInterval() { 4517fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mSubscriptionUpdateInterval; 4527fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4537fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4547fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4557fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getFriendlyName() { 4567fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mFriendlyName; 4577fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4587fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4597fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4607fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String getMaxBssLoad() { 4617fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mMaxBssLoad; 4627fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4647fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4657fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public boolean getUserPreference() { 4667fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mUserPreferred; 4677fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4687fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4697fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4707fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public boolean getCheckAaaServerCertStatus() { 4717fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return mCheckAaaServerCertStatus; 4727fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4737fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4747fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4757fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public void setUserPreference(boolean value) { 4767fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang mUserPreferred = value; 4777fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4787fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 4797fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang @Override 4807fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 4817fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public boolean equals(Object obj) { 4827fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang boolean result = false; 4837fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (obj instanceof WifiPasspointCredential) { 4847fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang final WifiPasspointCredential other = (WifiPasspointCredential) obj; 4857fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (this.mType.equals(other.mType)) { 4867fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (this.mType.equals("TTLS")) { 4877fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang result = this.mUsername.equals(other.mUsername) && 4887fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang this.mPasswd.equals(other.mPasswd) && 4897fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang this.mRealm.equals(other.mRealm) && 4907fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang this.mHomeSpFqdn.equals(other.mHomeSpFqdn); 4917fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4927fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (this.mType.equals("TLS")) { 4937fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang result = this.mRealm.equals(other.mRealm) && 494535e0fb8060458c827a29b99af579dd656ef8c49roger.chang this.mHomeSpFqdn.equals(other.mHomeSpFqdn) && 495535e0fb8060458c827a29b99af579dd656ef8c49roger.chang this.mClientCert.equals(other.mClientCert); 4967fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 4977fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (this.mType.equals("SIM")) { 4987fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang result = this.mMcc.equals(other.mMcc) && 4997fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang this.mMnc.equals(other.mMnc) && 5007fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang this.mImsi.equals(other.mImsi) && 5017fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang this.mHomeSpFqdn.equals(other.mHomeSpFqdn); 5027fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5037fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5047fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5057fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return result; 5067fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5077fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5087fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang @Override 5097fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 5107fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public String toString() { 5117fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang StringBuffer sb = new StringBuffer(); 5127fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang String none = "<none>"; 5137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5148dd64036cdaec757d3b19654a2c3c336ce902433roger.chang if (!DBG) { 5158dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append(none); 5168dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } else { 5178dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append(", UpdateIdentifier: ") 5188dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mUpdateIdentifier == null ? none : mUpdateIdentifier) 5198dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", SubscriptionUpdateMethod: ") 5208dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mSubscriptionUpdateMethod == null ? none : mSubscriptionUpdateMethod) 5218dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Type: ").append(mType == null ? none : mType) 5228dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Username: ").append(mUsername == null ? none : mUsername) 5238dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Passwd: ").append(mPasswd == null ? none : mPasswd) 5248dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", SubDMAccUsername: ") 5258dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mSubscriptionUpdateUsername == null ? none : mSubscriptionUpdateUsername) 5268dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", SubDMAccPassword: ") 5278dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mSubscriptionUpdatePassword == null ? none : mSubscriptionUpdatePassword) 5288dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", PolDMAccUsername: ") 5298dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mPolicyUpdateUsername == null ? none : mPolicyUpdateUsername) 5308dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", PolDMAccPassword: ") 5318dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mPolicyUpdatePassword == null ? none : mPolicyUpdatePassword) 5328dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Imsi: ").append(mImsi == null ? none : mImsi) 5338dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Mcc: ").append(mMcc == null ? none : mMcc) 5348dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Mnc: ").append(mMnc == null ? none : mMnc) 5358dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", CaRootCert: ").append(mCaRootCert == null ? none : mCaRootCert) 5368dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Realm: ").append(mRealm == null ? none : mRealm) 5378dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Priority: ").append(mCrednetialPriority) 5388dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Fqdn: ").append(mHomeSpFqdn == null ? none : mHomeSpFqdn) 5398dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", Otherhomepartners: ") 5408dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mOtherHomePartnerList == null ? none : mOtherHomePartnerList) 5418dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", ExpirationDate: ") 5428dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(mExpirationDate == null ? none : mExpirationDate) 5438dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", MaxBssLoad: ").append(mMaxBssLoad == null ? none : mMaxBssLoad) 5448dd64036cdaec757d3b19654a2c3c336ce902433roger.chang .append(", SPExclusionList: ").append(mSpExclusionList); 5458dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 5468dd64036cdaec757d3b19654a2c3c336ce902433roger.chang if (mPreferredRoamingPartnerList != null) { 5478dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("PreferredRoamingPartnerList:"); 5488dd64036cdaec757d3b19654a2c3c336ce902433roger.chang for (WifiPasspointDmTree.PreferredRoamingPartnerList prpListItem : mPreferredRoamingPartnerList) { 5498dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("[fqdnmatch:").append(prpListItem.FQDN_Match). 5508dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append(", priority:").append(prpListItem.Priority). 5518dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append(", country:").append(prpListItem.Country).append("]"); 5528dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } 5537fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5547fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5558dd64036cdaec757d3b19654a2c3c336ce902433roger.chang if (mHomeOIList != null) { 5568dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("HomeOIList:"); 5578dd64036cdaec757d3b19654a2c3c336ce902433roger.chang for (WifiPasspointDmTree.HomeOIList HomeOIListItem : mHomeOIList) { 5588dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("[HomeOI:").append(HomeOIListItem.HomeOI). 5598dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append(", HomeOIRequired:").append(HomeOIListItem.HomeOIRequired). 5608dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append("]"); 5618dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } 5627fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5648dd64036cdaec757d3b19654a2c3c336ce902433roger.chang if (mMinBackhaulThresholdNetwork != null) { 5658dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("BackHaulThreshold:"); 5668dd64036cdaec757d3b19654a2c3c336ce902433roger.chang for (WifiPasspointDmTree.MinBackhaulThresholdNetwork BhtListItem : mMinBackhaulThresholdNetwork) { 5678dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("[networkType:").append(BhtListItem.NetworkType). 5688dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append(", dlBandwidth:").append(BhtListItem.DLBandwidth). 5698dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append(", ulBandwidth:").append(BhtListItem.ULBandwidth). 5708dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append("]"); 5718dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } 5727fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5737fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5748dd64036cdaec757d3b19654a2c3c336ce902433roger.chang if (mRequiredProtoPortTuple != null) { 5758dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("WifiMORequiredProtoPortTupleList:"); 5768dd64036cdaec757d3b19654a2c3c336ce902433roger.chang for (WifiPasspointDmTree.RequiredProtoPortTuple RpptListItem : mRequiredProtoPortTuple) { 5778dd64036cdaec757d3b19654a2c3c336ce902433roger.chang sb.append("[IPProtocol:").append(RpptListItem.IPProtocol). 5788dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append(", PortNumber:").append(RpptListItem.PortNumber). 5798dd64036cdaec757d3b19654a2c3c336ce902433roger.chang append("]"); 5808dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } 5817fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5827fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5837fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return sb.toString(); 5847fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5857fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5867fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** Implement the Parcelable interface {@hide} */ 5877fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public int describeContents() { 5887fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return 0; 5897fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 5907fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 5917fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** Implement the Parcelable interface {@hide} */ 5927fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public void writeToParcel(Parcel dest, int flags) { 5938dd64036cdaec757d3b19654a2c3c336ce902433roger.chang dest.writeString(mWifiSpFqdn); 5948dd64036cdaec757d3b19654a2c3c336ce902433roger.chang dest.writeString(mCredentialName); 5957fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang dest.writeString(mType); 5968dd64036cdaec757d3b19654a2c3c336ce902433roger.chang dest.writeInt(mCrednetialPriority); 5977fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang dest.writeString(mHomeSpFqdn); 5988dd64036cdaec757d3b19654a2c3c336ce902433roger.chang dest.writeString(mRealm); 5998dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } 6008dd64036cdaec757d3b19654a2c3c336ce902433roger.chang 6018dd64036cdaec757d3b19654a2c3c336ce902433roger.chang /** Implement the Parcelable interface {@hide} */ 6028dd64036cdaec757d3b19654a2c3c336ce902433roger.chang public void readFromParcel(Parcel in) { 6038dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mWifiSpFqdn = in.readString(); 6048dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mCredentialName = in.readString(); 6058dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mType = in.readString(); 6068dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mCrednetialPriority = in.readInt(); 6078dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mHomeSpFqdn = in.readString(); 6088dd64036cdaec757d3b19654a2c3c336ce902433roger.chang mRealm = in.readString(); 6097fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6107fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 6117fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** Implement the Parcelable interface {@hide} */ 6127fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public static final Creator<WifiPasspointCredential> CREATOR = 6137fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang new Creator<WifiPasspointCredential>() { 6147fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public WifiPasspointCredential createFromParcel(Parcel in) { 6157fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang WifiPasspointCredential pc = new WifiPasspointCredential(); 6168dd64036cdaec757d3b19654a2c3c336ce902433roger.chang pc.mWifiSpFqdn = in.readString(); 6178dd64036cdaec757d3b19654a2c3c336ce902433roger.chang pc.mCredentialName = in.readString(); 6187fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang pc.mType = in.readString(); 6198dd64036cdaec757d3b19654a2c3c336ce902433roger.chang pc.mCrednetialPriority = in.readInt(); 6207fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang pc.mHomeSpFqdn = in.readString(); 6218dd64036cdaec757d3b19654a2c3c336ce902433roger.chang pc.mRealm = in.readString(); 6227fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return pc; 6237fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6247fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 6257fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public WifiPasspointCredential[] newArray(int size) { 6267fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return new WifiPasspointCredential[size]; 6277fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6287fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang }; 6297fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 6307fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 6317fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public int compareTo(WifiPasspointCredential another) { 6327fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 6337fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang //The smaller the higher 6348dd64036cdaec757d3b19654a2c3c336ce902433roger.chang if (mCrednetialPriority < another.mCrednetialPriority) { 6357fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return -1; 6368dd64036cdaec757d3b19654a2c3c336ce902433roger.chang } else if (mCrednetialPriority == another.mCrednetialPriority) { 6377fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return this.mType.compareTo(another.mType); 6387fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } else { 6397fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return 1; 6407fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6417fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6427fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 6437fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang @Override 6447fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang /** @hide */ 6457fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang public int hashCode() { 6467fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang int hash = 208; 6477fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (mType != null) { 6487fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang hash += mType.hashCode(); 6497fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6507fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (mRealm != null) { 6517fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang hash += mRealm.hashCode(); 6527fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6537fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (mHomeSpFqdn != null) { 6547fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang hash += mHomeSpFqdn.hashCode(); 6557fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6567fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (mUsername != null) { 6577fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang hash += mUsername.hashCode(); 6587fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6597fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang if (mPasswd != null) { 6607fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang hash += mPasswd.hashCode(); 6617fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6627fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang 6637fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang return hash; 6647fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang } 6657fee7232ee2ae45fb3cd4fcce314e8f1101ae8dbRoger Chang} 666