From 909641b23712b9066b514442b236dfc47c1e3279 Mon Sep 17 00:00:00 2001 From: Sanket Padawe Date: Wed, 5 Aug 2015 14:06:23 -0700 Subject: Offload time consuming task to background while installing HS profile. + Avoid Wifi api calls when wifi is disabled. Bug: 22921398 Change-Id: I21b0db5b2926c4bbd5473d84855ec1ef2e83734b --- res/values/strings.xml | 1 + src/com/android/certinstaller/WiFiInstaller.java | 81 ++++++++++++++---------- 2 files changed, 50 insertions(+), 32 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 8550395..6fe6596 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -90,6 +90,7 @@ Details for %s Details Install + Installing Cancel Dismiss diff --git a/src/com/android/certinstaller/WiFiInstaller.java b/src/com/android/certinstaller/WiFiInstaller.java index 00cb0bb..8e54ebd 100644 --- a/src/com/android/certinstaller/WiFiInstaller.java +++ b/src/com/android/certinstaller/WiFiInstaller.java @@ -17,6 +17,8 @@ import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; +import android.widget.Toast; +import android.os.AsyncTask; import java.security.PrivateKey; import java.security.interfaces.RSAPrivateKey; @@ -131,40 +133,55 @@ public class WiFiInstaller extends Activity { new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - List 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 - && mWifiManager.saveConfiguration(); + final boolean wifiEnabled = mWifiManager.isWifiEnabled(); + if (wifiEnabled) { + Toast.makeText(WiFiInstaller.this, getString(R.string.wifi_installing_label), + Toast.LENGTH_LONG).show(); } - catch (RuntimeException rte) { - Log.w(TAG, "Caught exception while installing wifi config: " + rte, rte); - success = false; - } - if (success) { - Intent intent = new Intent(getApplicationContext(), - CredentialsInstallDialog.class); - intent.putExtra(NETWORK_NAME, mWifiConfiguration.providerFriendlyName); - intent.putExtra(INSTALL_STATE, INSTALL_SUCCESS); - startActivity(intent); - } else { - Intent intent = new Intent(getApplicationContext(), - CredentialsInstallDialog.class); - if (!mWifiManager.isWifiEnabled()) { - intent.putExtra(INSTALL_STATE, INSTALL_FAIL_NO_WIFI); - } else { - intent.putExtra(INSTALL_STATE, INSTALL_FAIL); + AsyncTask.execute(new Runnable() { + @Override + public void run() { + boolean success = false; + if (wifiEnabled) { + List newDomain = splitDomain(mWifiConfiguration.FQDN); + for (WifiConfiguration config : + mWifiManager.getConfiguredNetworks()) { + if (sameBaseDomain(newDomain, config.FQDN)) { + mWifiManager.removeNetwork(config.networkId); + break; + } + } + try { + success = mWifiManager.addNetwork(mWifiConfiguration) != -1 + && mWifiManager.saveConfiguration(); + } + catch (RuntimeException rte) { + Log.w(TAG, "Caught exception while installing wifi config: " + + rte, rte); + success = false; + } + } + if (success) { + Intent intent = new Intent(getApplicationContext(), + CredentialsInstallDialog.class); + intent.putExtra(NETWORK_NAME, + mWifiConfiguration.providerFriendlyName); + intent.putExtra(INSTALL_STATE, INSTALL_SUCCESS); + startActivity(intent); + } else { + Intent intent = new Intent(getApplicationContext(), + CredentialsInstallDialog.class); + if (!wifiEnabled) { + intent.putExtra(INSTALL_STATE, INSTALL_FAIL_NO_WIFI); + } else { + intent.putExtra(INSTALL_STATE, INSTALL_FAIL); + } + startActivity(intent); + } + finish(); } - startActivity(intent); - } + }); dialog.dismiss(); - finish(); } }); @@ -175,7 +192,7 @@ public class WiFiInstaller extends Activity { dialog.dismiss(); finish(); } - }); + }); } else { text.setText(getResources().getString(R.string.wifi_installer_download_error)); builder.setPositiveButton(R.string.done_label, new DialogInterface.OnClickListener() { -- cgit v1.2.3