summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2015-07-14 00:47:27 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-07-14 00:47:27 +0000
commitbd70da0c584766810470882007ec9b7554dc55bb (patch)
tree27f825ca6ff7ef85b85684c04d9059d92385512e
parent0cb87ab7bc36c6eaa770e0ccdbf29f4e28c2b849 (diff)
parent48d644ffb3b8245aeacf596302688b1a1ff94e7a (diff)
downloadandroid_packages_apps_CertInstaller-bd70da0c584766810470882007ec9b7554dc55bb.tar.gz
android_packages_apps_CertInstaller-bd70da0c584766810470882007ec9b7554dc55bb.tar.bz2
android_packages_apps_CertInstaller-bd70da0c584766810470882007ec9b7554dc55bb.zip
am 48d644ff: am 219360da: Merge "Allowing rewrite of Passpoint credential." into mnc-dev
* commit '48d644ffb3b8245aeacf596302688b1a1ff94e7a': Allowing rewrite of Passpoint credential.
-rw-r--r--src/com/android/certinstaller/WiFiInstaller.java44
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