Merge "[Settings] Show accurate Enterprise networks details" into qt-dev
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index 8a39b82..aad9e79 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -32,14 +32,18 @@
<string name="wifi_security_short_psk_generic" translatable="false">@string/wifi_security_short_wpa_wpa2</string>
<!-- Do not translate. Concise terminology for wifi with 802.1x EAP security -->
<string name="wifi_security_short_eap" translatable="false">802.1x</string>
+ <!-- Do not translate. Concise terminology for wifi with WPA 802.1x EAP security -->
+ <string name="wifi_security_short_eap_wpa" translatable="false">WPA-EAP</string>
+ <!-- Do not translate. Concise terminology for wifi with WPA2/WPA3 802.1x EAP security -->
+ <string name="wifi_security_short_eap_wpa2_wpa3" translatable="false">RSN-EAP</string>
<!-- Do not translate. Concise terminology for wifi with WPA3 security -->
<string name="wifi_security_short_sae" translatable="false">WPA3</string>
<!-- Do not translate. Concise terminology for wifi with WPA2/WPA3 transition security -->
<string name="wifi_security_short_psk_sae" translatable="false">WPA2/WPA3</string>
<!-- Do not translate. Concise terminology for wifi with OWE security -->
<string name="wifi_security_short_owe" translatable="false">OWE</string>
- <!-- Do not translate. Concise terminology for wifi with 802.1x EAP Suite-B security -->
- <string name="wifi_security_short_eap_suiteb" translatable="false">Suite-B</string>
+ <!-- Do not translate. Concise terminology for wifi with 802.1x EAP Suite-B-192 security -->
+ <string name="wifi_security_short_eap_suiteb" translatable="false">Suite-B-192</string>
<!-- Used in Wi-Fi settings dialogs when Wi-Fi does not have any security. [CHAR LIMIT=40] -->
<string name="wifi_security_none">None</string>
@@ -55,7 +59,11 @@
<!-- Do not translate. Terminology for wifi with unknown PSK type -->
<string name="wifi_security_psk_generic" translatable="false">@string/wifi_security_wpa_wpa2</string>
<!-- Do not translate. Concise terminology for wifi with 802.1x EAP security -->
- <string name="wifi_security_eap" translatable="false">WPA/WPA2-Enterprise</string>
+ <string name="wifi_security_eap" translatable="false">WPA/WPA2/WPA3-Enterprise</string>
+ <!-- Do not translate. Concise terminology for wifi with WPA 802.1x EAP security -->
+ <string name="wifi_security_eap_wpa" translatable="false">WPA-Enterprise</string>
+ <!-- Do not translate. Concise terminology for wifi with WPA2/WPA3 802.1x EAP security -->
+ <string name="wifi_security_eap_wpa2_wpa3" translatable="false">WPA2/WPA3-Enterprise</string>
<!-- Do not translate. Concise terminology for Passpoint network -->
<string name="wifi_security_passpoint" translatable="false">Passpoint</string>
<!-- Do not translate. Terminology for wifi with WPA3 security -->
@@ -64,8 +72,8 @@
<string name="wifi_security_psk_sae" translatable="false">WPA2/WPA3-Personal</string>
<!-- Do not translate. Terminology for wifi with OWE security -->
<string name="wifi_security_owe" translatable="false">Enhanced Open</string>
- <!-- Do not translate. Concise terminology for wifi with 802.1x EAP Suite-B security -->
- <string name="wifi_security_eap_suiteb" translatable="false">WPA3-Enterprise</string>
+ <!-- Do not translate. Concise terminology for wifi with 802.1x EAP Suite-B-192 security -->
+ <string name="wifi_security_eap_suiteb" translatable="false">WPA3-Enterprise 192-bit</string>
<!-- Summary for the remembered network. -->
<string name="wifi_remembered">Saved</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index d1e4fdf..34d11b5 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -164,6 +164,7 @@
static final String KEY_IS_CARRIER_AP = "key_is_carrier_ap";
static final String KEY_CARRIER_AP_EAP_TYPE = "key_carrier_ap_eap_type";
static final String KEY_CARRIER_NAME = "key_carrier_name";
+ static final String KEY_EAPTYPE = "eap_psktype";
static final AtomicInteger sLastId = new AtomicInteger(0);
/*
@@ -186,6 +187,10 @@
private static final int PSK_WPA_WPA2 = 3;
private static final int PSK_SAE = 4;
+ private static final int EAP_UNKNOWN = 0;
+ private static final int EAP_WPA = 1; // WPA-EAP
+ private static final int EAP_WPA2_WPA3 = 2; // RSN-EAP
+
/**
* The number of distinct wifi levels.
*
@@ -210,6 +215,7 @@
private int networkId = WifiConfiguration.INVALID_NETWORK_ID;
private int pskType = PSK_UNKNOWN;
+ private int mEapType = EAP_UNKNOWN;
private WifiConfiguration mConfig;
@@ -267,6 +273,9 @@
if (savedState.containsKey(KEY_PSKTYPE)) {
pskType = savedState.getInt(KEY_PSKTYPE);
}
+ if (savedState.containsKey(KEY_EAPTYPE)) {
+ mEapType = savedState.getInt(KEY_EAPTYPE);
+ }
mInfo = savedState.getParcelable(KEY_WIFIINFO);
if (savedState.containsKey(KEY_NETWORKINFO)) {
mNetworkInfo = savedState.getParcelable(KEY_NETWORKINFO);
@@ -776,6 +785,9 @@
if (security == SECURITY_PSK || security == SECURITY_SAE) {
pskType = getPskType(bestResult);
}
+ if (security == SECURITY_EAP) {
+ mEapType = getEapType(bestResult);
+ }
mIsCarrierAp = bestResult.isCarrierAp;
mCarrierApEapType = bestResult.carrierApEapType;
mCarrierName = bestResult.carrierName;
@@ -810,8 +822,20 @@
}
switch(security) {
case SECURITY_EAP:
- return concise ? context.getString(R.string.wifi_security_short_eap) :
- context.getString(R.string.wifi_security_eap);
+ switch (mEapType) {
+ case EAP_WPA:
+ return concise ? context.getString(R.string.wifi_security_short_eap_wpa) :
+ context.getString(R.string.wifi_security_eap_wpa);
+ case EAP_WPA2_WPA3:
+ return concise
+ ? context.getString(R.string.wifi_security_short_eap_wpa2_wpa3) :
+ context.getString(R.string.wifi_security_eap_wpa2_wpa3);
+ case EAP_UNKNOWN:
+ default:
+ return concise
+ ? context.getString(R.string.wifi_security_short_eap) :
+ context.getString(R.string.wifi_security_eap);
+ }
case SECURITY_EAP_SUITE_B:
return concise ? context.getString(R.string.wifi_security_short_eap_suiteb) :
context.getString(R.string.wifi_security_eap_suiteb);
@@ -1161,6 +1185,7 @@
savedState.putInt(KEY_SECURITY, security);
savedState.putInt(KEY_SPEED, mSpeed);
savedState.putInt(KEY_PSKTYPE, pskType);
+ savedState.putInt(KEY_EAPTYPE, mEapType);
if (mConfig != null) savedState.putParcelable(KEY_CONFIG, mConfig);
savedState.putParcelable(KEY_WIFIINFO, mInfo);
savedState.putParcelableArray(KEY_SCANRESULTS,
@@ -1494,6 +1519,18 @@
}
}
+ private static int getEapType(ScanResult result) {
+ // WPA2-Enterprise and WPA3-Enterprise (non 192-bit) advertise RSN-EAP-CCMP
+ if (result.capabilities.contains("RSN-EAP")) {
+ return EAP_WPA2_WPA3;
+ }
+ // WPA-Enterprise advertises WPA-EAP-TKIP
+ if (result.capabilities.contains("WPA-EAP")) {
+ return EAP_WPA;
+ }
+ return EAP_UNKNOWN;
+ }
+
private static int getSecurity(ScanResult result) {
if (result.capabilities.contains("WEP")) {
return SECURITY_WEP;