Display warning if users does not provide CA cert in EAP config
Display an explicit warning in the WiFi configuration menu if
the user selects the option to not validate the EAP server (i.e.
does not provide a CA certificate) in an EAP configuration.
BUG: 26686071
Change-Id: I73620b60defdcf40865f8c67d5de24b5dad636f8
TEST: Warning appears when the abovementioned option is selected.
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 2becae6..28ceee0 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -145,6 +145,18 @@
android:prompt="@string/wifi_eap_ca_cert" />
</LinearLayout>
+ <LinearLayout android:id="@+id/no_ca_cert_warning"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ style="@style/wifi_item" >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ style="@style/wifi_item_warning"
+ android:text="@string/wifi_do_not_validate_eap_server_warning" />
+ </LinearLayout>
+
<LinearLayout android:id="@+id/l_user_cert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index bd01912..ebad62b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1588,6 +1588,8 @@
<string name="wifi_do_not_provide_eap_user_cert">Do not provide</string>
<!-- Menu option for not validating the EAP server -->
<string name="wifi_do_not_validate_eap_server">Do not validate</string>
+ <!-- Warning message displayed if user choses not to validate the EAP server -->
+ <string name="wifi_do_not_validate_eap_server_warning">No certificate specified. Your connection will not be private.</string>
<!-- Substring of status line when Wi-Fi Protected Setup (WPS) is available and
string is listed first [CHAR LIMIT=20]-->
<string name="wifi_wps_available_first_item">WPS available</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 387acf5..46ef73c 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -204,6 +204,14 @@
<item name="android:textColor">?android:attr/textColorSecondary</item>
</style>
+ <style name="wifi_item_warning">
+ <item name="android:paddingStart">8dip</item>
+ <item name="android:textSize">12sp</item>
+ <item name="android:textAlignment">viewStart</item>
+ <item name="android:textAppearance">@android:style/TextAppearance.Material.Body1</item>
+ <item name="android:textColor">@color/warning</item>
+ </style>
+
<style name="wifi_item_content">
<item name="android:textAlignment">viewStart</item>
<item name="android:textAppearance">@android:style/TextAppearance.Material.Subhead</item>
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 7d5acc0..ffa4afe 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -393,6 +393,18 @@
submit.setEnabled(enabled);
}
+ void showWarningMessageIfAppropriate() {
+ mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.GONE);
+ if (mEapCaCertSpinner != null
+ && mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE
+ && ((String) mEapCaCertSpinner.getSelectedItem())
+ .equals(mDoNotValidateEapServerString)) {
+ // Display warning if user chooses not to validate the EAP server with a user-supplied
+ // CA certificate in an EAP network configuration.
+ mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
+ }
+ }
+
/* package */ WifiConfiguration getConfig() {
if (!mEdit) {
return null;
@@ -1077,6 +1089,7 @@
} else {
showIpConfigFields();
}
+ showWarningMessageIfAppropriate();
enableSubmitIfAppropriate();
}