diff options
author | Vinit Deshpande <vinitd@google.com> | 2015-07-14 00:27:10 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-07-14 00:27:10 +0000 |
commit | 48d644ffb3b8245aeacf596302688b1a1ff94e7a (patch) | |
tree | 29113256bfedad9899143be31005f6eae5d5282e | |
parent | f46f52f1b2c15fec1bbf79c16638426ac7ba159b (diff) | |
parent | 219360da8f75362f537a03f128233b7406f0b834 (diff) | |
download | android_packages_apps_CertInstaller-48d644ffb3b8245aeacf596302688b1a1ff94e7a.tar.gz android_packages_apps_CertInstaller-48d644ffb3b8245aeacf596302688b1a1ff94e7a.tar.bz2 android_packages_apps_CertInstaller-48d644ffb3b8245aeacf596302688b1a1ff94e7a.zip |
am 219360da: Merge "Allowing rewrite of Passpoint credential." into mnc-dev
* commit '219360da8f75362f537a03f128233b7406f0b834':
Allowing rewrite of Passpoint credential.
-rw-r--r-- | src/com/android/certinstaller/WiFiInstaller.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/com/android/certinstaller/WiFiInstaller.java b/src/com/android/certinstaller/WiFiInstaller.java index 2c6d71a..9a0a785 100644 --- a/src/com/android/certinstaller/WiFiInstaller.java +++ b/src/com/android/certinstaller/WiFiInstaller.java @@ -21,6 +21,9 @@ import android.widget.TextView; import java.security.PrivateKey; import java.security.interfaces.RSAPrivateKey; import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; public class WiFiInstaller extends Activity { @@ -75,6 +78,40 @@ public class WiFiInstaller extends Activity { createMainDialog(); } + public static List<String> splitDomain(String domain) { + if (domain.endsWith(".")) { + domain = domain.substring(0, domain.length() - 1); + } + + String[] labels = domain.toLowerCase().split("\\."); + LinkedList<String> labelList = new LinkedList<>(); + for (String label : labels) { + labelList.addFirst(label); + } + + return labelList; + } + + public static boolean sameBaseDomain(List<String> arg1, String domain) { + if (domain == null) { + return false; + } + + List<String> arg2 = splitDomain(domain); + if (arg2.isEmpty()) { + return false; + } + Iterator<String> l1 = arg1.iterator(); + Iterator<String> l2 = arg2.iterator(); + + while(l1.hasNext() && l2.hasNext()) { + if (!l1.next().equals(l2.next())) { + return false; + } + } + return true; + } + private void createMainDialog() { Resources res = getResources(); AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -93,6 +130,13 @@ public class WiFiInstaller extends Activity { new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + List<String> newDomain = splitDomain(mWifiConfiguration.FQDN); + for (WifiConfiguration config : mWifiManager.getConfiguredNetworks()) { + if (sameBaseDomain(newDomain, config.FQDN)) { + mWifiManager.removeNetwork(config.networkId); + break; + } + } boolean success; try { success = mWifiManager.addNetwork(mWifiConfiguration) != -1 |