Display WiFi Version number

- Display these type and hide the item in other case
   WIFI_STANDARD_11AX(6) WiFi 6
   WIFI_STANDARD_11AC(5) WiFi 5
   WIFI_STANDARD_11N (4) WiFi 4

-Screenshot
 https://photos.app.goo.gl/BbyZEQFyganEPfuw8

Bug: 117216087
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiDetailPreferenceController2Test

Change-Id: Ic360e501d2e3bd80ce3bcb3ddf529ec5d00c1bcc
This commit is contained in:
changbetty
2021-03-25 13:24:25 +08:00
parent 59aa4f9cb1
commit 8fcb1f5974
4 changed files with 94 additions and 0 deletions

View File

@@ -2314,6 +2314,8 @@
<string name="wifi_details_title">Network details</string>
<!-- Wifi details preference title to display router IP subnet mask -->
<string name="wifi_details_subnet_mask">Subnet mask</string>
<!-- Wifi details preference title to display wifi type info [CHAR LIMIT=50]-->
<string name="wifi_type_title">TYPE</string>
<!-- Wifi details preference title to display router DNS info -->
<string name="wifi_details_dns">DNS</string>
<!-- Wifi details preference category title for IPv6 information -->
@@ -2349,6 +2351,12 @@
<string name="wifi_gateway">Gateway</string>
<!-- Label for the network prefix of the network [CHAR LIMIT=25]-->
<string name="wifi_network_prefix_length">Network prefix length</string>
<!-- Summary for the WiFi Type WIFI_STANDARD_11AX [CHAR LIMIT=50]-->
<string name="wifi_type_11AX">Wi\u2011Fi 6</string>
<!-- Summary for the WiFi Type WIFI_STANDARD_11AC [CHAR LIMIT=50]-->
<string name="wifi_type_11AC">Wi\u2011Fi 5</string>
<!-- Summary for the WiFi Type WIFI_STANDARD_11N [CHAR LIMIT=50]-->
<string name="wifi_type_11N">Wi\u2011Fi 4</string>
<!-- Wi-Fi p2p / Wi-Fi Direct settings -->
<!-- Used in the 1st-level settings screen to launch Wi-fi Direct settings [CHAR LIMIT=25] -->

View File

@@ -100,6 +100,11 @@
<PreferenceCategory
android:key="ip_details_category"
android:title="@string/wifi_setup_detail">
<Preference
android:key="type"
android:title="@string/wifi_type_title"
android:selectable="false"
settings:enableCopying="true"/>
<Preference
android:key="ssid"
android:title="@string/wifi_advanced_ssid_title"

View File

@@ -42,6 +42,7 @@ import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.net.RouteInfo;
import android.net.Uri;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
@@ -155,6 +156,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
static final String KEY_IPV6_CATEGORY = "ipv6_category";
@VisibleForTesting
static final String KEY_IPV6_ADDRESSES_PREF = "ipv6_addresses";
@VisibleForTesting
static final String KEY_WIFI_TYPE_PREF = "type";
private final WifiEntry mWifiEntry;
private final ConnectivityManager mConnectivityManager;
@@ -186,6 +189,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
private Preference mGatewayPref;
private Preference mSubnetPref;
private Preference mDnsPref;
private Preference mTypePref;
private PreferenceCategory mIpv6Category;
private Preference mIpv6AddressPref;
private Lifecycle mLifecycle;
@@ -382,6 +386,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
mGatewayPref = screen.findPreference(KEY_GATEWAY_PREF);
mSubnetPref = screen.findPreference(KEY_SUBNET_MASK_PREF);
mDnsPref = screen.findPreference(KEY_DNS_PREF);
mTypePref = screen.findPreference(KEY_WIFI_TYPE_PREF);
mIpv6Category = screen.findPreference(KEY_IPV6_CATEGORY);
mIpv6AddressPref = screen.findPreference(KEY_IPV6_ADDRESSES_PREF);
@@ -552,6 +557,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
refreshEapSimSubscription();
// MAC Address Pref
refreshMacAddress();
// Wifi Type
refreshWifiType();
}
private void refreshRssiViews() {
@@ -749,6 +756,36 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
}
}
private void refreshWifiType() {
final ConnectedInfo connectedInfo = mWifiEntry.getConnectedInfo();
if (connectedInfo == null) {
mTypePref.setVisible(false);
return;
}
final int typeString = getWifiStandardTypeString(connectedInfo.wifiStandard);
if (typeString != -1) {
mTypePref.setSummary(typeString);
mTypePref.setVisible(true);
} else {
mTypePref.setVisible(false);
}
}
private int getWifiStandardTypeString(int wifiStandardType) {
Log.d(TAG, "Wifi Type " + wifiStandardType);
switch (wifiStandardType) {
case ScanResult.WIFI_STANDARD_11AX:
return R.string.wifi_type_11AX;
case ScanResult.WIFI_STANDARD_11AC:
return R.string.wifi_type_11AC;
case ScanResult.WIFI_STANDARD_11N:
return R.string.wifi_type_11N;
default:
return -1;
}
}
private int getMacAddressTitle() {
if (mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC) {
return mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED

View File

@@ -52,6 +52,7 @@ import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.net.RouteInfo;
import android.net.Uri;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiInfo;
@@ -83,6 +84,7 @@ import com.android.settingslib.widget.LayoutPreference;
import com.android.wifitrackerlib.NetworkDetailsTracker;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
import com.android.wifitrackerlib.WifiEntry.ConnectedInfo;
import org.junit.Before;
import org.junit.Test;
@@ -189,6 +191,8 @@ public class WifiDetailPreferenceController2Test {
@Mock
private Preference mMockDnsPref;
@Mock
private Preference mMockTypePref;
@Mock
private PreferenceCategory mMockIpv6Category;
@Mock
private Preference mMockIpv6AddressesPref;
@@ -390,6 +394,8 @@ public class WifiDetailPreferenceController2Test {
.thenReturn(mMockSubnetPref);
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_DNS_PREF))
.thenReturn(mMockDnsPref);
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_WIFI_TYPE_PREF))
.thenReturn(mMockTypePref);
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_IPV6_CATEGORY))
.thenReturn(mMockIpv6Category);
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_IPV6_ADDRESSES_PREF))
@@ -930,6 +936,44 @@ public class WifiDetailPreferenceController2Test {
verify(mMockDnsPref).setVisible(false);
}
@Test
public void onConnectedNetwork_getKnownNetworkType_visibleWifiTypePref() {
setUpForConnectedNetwork();
setUpSpyController();
setWifiType(ScanResult.WIFI_STANDARD_11AX);
displayAndResume();
verify(mMockTypePref).setSummary(R.string.wifi_type_11AX);
verify(mMockTypePref).setVisible(true);
}
@Test
public void onConnectedNetwork_getUnKnownNetworkType_invisibleWifiTypePref() {
setUpForConnectedNetwork();
setUpSpyController();
setWifiType(ScanResult.WIFI_STANDARD_UNKNOWN);
displayAndResume();
verify(mMockTypePref).setVisible(false);
}
@Test
public void onDisconnectedNetwork_resumeUI_invisibleWifiTypePref() {
setUpForDisconnectedNetwork();
displayAndResume();
verify(mMockTypePref).setVisible(false);
}
private void setWifiType(int type) {
ConnectedInfo connectedInfo = new ConnectedInfo();
connectedInfo.wifiStandard = type;
when(mMockWifiEntry.getConnectedInfo()).thenReturn(connectedInfo);
}
@Test
public void noCurrentNetwork_shouldNotFinishActivityForConnectedNetwork() {
setUpForConnectedNetwork();