Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdce0c57 authored by changbetty's avatar changbetty Committed by Luca Stefani
Browse files

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
parent ab91f9b5
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2253,6 +2253,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 -->
@@ -2288,6 +2290,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] -->
+5 −0
Original line number Diff line number Diff line
@@ -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"
+37 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.net.NetworkRequest;
import android.net.NetworkUtils;
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;
@@ -156,6 +157,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;
@@ -187,6 +190,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;
@@ -383,6 +387,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);
@@ -553,6 +558,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
        refreshEapSimSubscription();
        // MAC Address Pref
        refreshMacAddress();
        // Wifi Type
        refreshWifiType();
    }

    private void refreshRssiViews() {
@@ -753,6 +760,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 void updatePreference(Preference pref, String detailText) {
        if (!TextUtils.isEmpty(detailText)) {
            pref.setSummary(detailText);
+44 −0
Original line number Diff line number Diff line
@@ -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))
@@ -913,6 +919,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();