Loading res/values/strings.xml +8 −0 Original line number Diff line number Diff line Loading @@ -2341,6 +2341,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 --> Loading Loading @@ -2376,6 +2378,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] --> Loading res/xml/wifi_network_details_fragment2.xml +5 −0 Original line number Diff line number Diff line Loading @@ -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" Loading src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +37 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -552,6 +557,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle refreshEapSimSubscription(); // MAC Address Pref refreshMacAddress(); // Wifi Type refreshWifiType(); } private void refreshRssiViews() { Loading Loading @@ -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 Loading tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +44 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -189,6 +191,8 @@ public class WifiDetailPreferenceController2Test { @Mock private Preference mMockDnsPref; @Mock private Preference mMockTypePref; @Mock private PreferenceCategory mMockIpv6Category; @Mock private Preference mMockIpv6AddressesPref; Loading Loading @@ -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)) Loading Loading @@ -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(); Loading Loading
res/values/strings.xml +8 −0 Original line number Diff line number Diff line Loading @@ -2341,6 +2341,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 --> Loading Loading @@ -2376,6 +2378,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] --> Loading
res/xml/wifi_network_details_fragment2.xml +5 −0 Original line number Diff line number Diff line Loading @@ -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" Loading
src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +37 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -552,6 +557,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle refreshEapSimSubscription(); // MAC Address Pref refreshMacAddress(); // Wifi Type refreshWifiType(); } private void refreshRssiViews() { Loading Loading @@ -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 Loading
tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +44 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -189,6 +191,8 @@ public class WifiDetailPreferenceController2Test { @Mock private Preference mMockDnsPref; @Mock private Preference mMockTypePref; @Mock private PreferenceCategory mMockIpv6Category; @Mock private Preference mMockIpv6AddressesPref; Loading Loading @@ -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)) Loading Loading @@ -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(); Loading