diff --git a/res/layout/wifi_status_test.xml b/res/layout/wifi_status_test.xml index d7ba0992291..e4de1f34258 100644 --- a/res/layout/wifi_status_test.xml +++ b/res/layout/wifi_status_test.xml @@ -90,10 +90,16 @@ - + - - + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index c80ba95735f..1bf45b5183e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1832,8 +1832,10 @@ Sign in Tap here to sign in to network - - %1$d Mbps + + %1$d Mbps + + %1$d Mbps %s wants to turn on Wi-Fi @@ -2028,8 +2030,10 @@ Signal strength Status - - Link speed + + Transmit link speed + + Receive link speed Frequency @@ -2381,7 +2385,10 @@ Network ID: - Link speed: + Transmit link speed: + + Receive link speed: Scan results: diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml index 70bd1944309..7c542d851aa 100644 --- a/res/xml/wifi_network_details_fragment.xml +++ b/res/xml/wifi_network_details_fragment.xml @@ -96,8 +96,13 @@ android:selectable="false" settings:enableCopying="true"/> + diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 67f59ea5de3..acf7474eb0a 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -363,9 +363,14 @@ public class WifiConfigController implements TextWatcher, } WifiInfo info = mAccessPoint.getInfo(); - if (info != null && info.getLinkSpeed() != -1) { - addRow(group, R.string.wifi_speed, String.format( - res.getString(R.string.link_speed), info.getLinkSpeed())); + if (info != null && info.getTxLinkSpeedMbps() != -1) { + addRow(group, R.string.tx_wifi_speed, String.format( + res.getString(R.string.tx_link_speed), info.getTxLinkSpeedMbps())); + } + + if (info != null && info.getRxLinkSpeedMbps() != -1) { + addRow(group, R.string.rx_wifi_speed, String.format( + res.getString(R.string.rx_link_speed), info.getRxLinkSpeedMbps())); } if (info != null && info.getFrequency() != -1) { diff --git a/src/com/android/settings/wifi/WifiStatusTest.java b/src/com/android/settings/wifi/WifiStatusTest.java index 4c3873cbb10..6c1a3fc7865 100644 --- a/src/com/android/settings/wifi/WifiStatusTest.java +++ b/src/com/android/settings/wifi/WifiStatusTest.java @@ -64,7 +64,8 @@ public class WifiStatusTest extends Activity { private TextView mIPAddr; private TextView mMACAddr; private TextView mNetworkId; - private TextView mLinkSpeed; + private TextView mTxLinkSpeed; + private TextView mRxLinkSpeed; private TextView mScanList; @@ -142,7 +143,8 @@ public class WifiStatusTest extends Activity { mIPAddr = (TextView) findViewById(R.id.ipaddr); mMACAddr = (TextView) findViewById(R.id.macaddr); mNetworkId = (TextView) findViewById(R.id.networkid); - mLinkSpeed = (TextView) findViewById(R.id.link_speed); + mTxLinkSpeed = (TextView) findViewById(R.id.tx_link_speed); + mRxLinkSpeed = (TextView) findViewById(R.id.rx_link_speed); mScanList = (TextView) findViewById(R.id.scan_list); @@ -186,7 +188,8 @@ public class WifiStatusTest extends Activity { append((ipAddr >>>= 8) & 0xff); mIPAddr.setText(ipBuf); - mLinkSpeed.setText(String.valueOf(wifiInfo.getLinkSpeed())+" Mbps"); + mTxLinkSpeed.setText(String.valueOf(wifiInfo.getTxLinkSpeedMbps())+" Mbps"); + mRxLinkSpeed.setText(String.valueOf(wifiInfo.getRxLinkSpeedMbps())+" Mbps"); mMACAddr.setText(wifiInfo.getMacAddress()); mNetworkId.setText(String.valueOf(wifiInfo.getNetworkId())); mRSSI.setText(String.valueOf(wifiInfo.getRssi())); diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index fe71991d9a5..4387459845c 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -99,7 +99,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController @VisibleForTesting static final String KEY_SIGNAL_STRENGTH_PREF = "signal_strength"; @VisibleForTesting - static final String KEY_LINK_SPEED = "link_speed"; + static final String KEY_TX_LINK_SPEED = "tx_link_speed"; + @VisibleForTesting + static final String KEY_RX_LINK_SPEED = "rx_link_speed"; @VisibleForTesting static final String KEY_FREQUENCY_PREF = "frequency"; @VisibleForTesting @@ -138,7 +140,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController private ActionButtonsPreference mButtonsPref; private EntityHeaderController mEntityHeaderController; private Preference mSignalStrengthPref; - private Preference mLinkSpeedPref; + private Preference mTxLinkSpeedPref; + private Preference mRxLinkSpeedPref; private Preference mFrequencyPref; private Preference mSecurityPref; private Preference mMacAddressPref; @@ -291,7 +294,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController .setButton3OnClickListener(view -> shareNetwork()); mSignalStrengthPref = screen.findPreference(KEY_SIGNAL_STRENGTH_PREF); - mLinkSpeedPref = screen.findPreference(KEY_LINK_SPEED); + mTxLinkSpeedPref = screen.findPreference(KEY_TX_LINK_SPEED); + mRxLinkSpeedPref = screen.findPreference(KEY_RX_LINK_SPEED); mFrequencyPref = screen.findPreference(KEY_FREQUENCY_PREF); mSecurityPref = screen.findPreference(KEY_SECURITY_PREF); @@ -367,11 +371,17 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController // MAC Address Pref mMacAddressPref.setSummary(mWifiInfo.getMacAddress()); - // Link Speed Pref - int linkSpeedMbps = mWifiInfo.getLinkSpeed(); - mLinkSpeedPref.setVisible(linkSpeedMbps >= 0); - mLinkSpeedPref.setSummary(mContext.getString( - R.string.link_speed, mWifiInfo.getLinkSpeed())); + // Transmit Link Speed Pref + int txLinkSpeedMbps = mWifiInfo.getTxLinkSpeedMbps(); + mTxLinkSpeedPref.setVisible(txLinkSpeedMbps >= 0); + mTxLinkSpeedPref.setSummary(mContext.getString( + R.string.tx_link_speed, mWifiInfo.getTxLinkSpeedMbps())); + + // Receive Link Speed Pref + int rxLinkSpeedMbps = mWifiInfo.getRxLinkSpeedMbps(); + mRxLinkSpeedPref.setVisible(rxLinkSpeedMbps >= 0); + mRxLinkSpeedPref.setSummary(mContext.getString( + R.string.rx_link_speed, mWifiInfo.getRxLinkSpeedMbps())); // Frequency Pref final int frequency = mWifiInfo.getFrequency(); diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index 7e1d389b385..e80e931d9e6 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -100,7 +100,8 @@ public class WifiDetailPreferenceControllerTest { private static final int LEVEL = 1; private static final int RSSI = -55; - private static final int LINK_SPEED = 123; + private static final int TX_LINK_SPEED = 123; + private static final int RX_LINK_SPEED = 54; private static final String MAC_ADDRESS = WifiInfo.DEFAULT_MAC_ADDRESS; private static final String SECURITY = "None"; @@ -142,7 +143,9 @@ public class WifiDetailPreferenceControllerTest { @Mock private Preference mockSignalStrengthPref; @Mock - private Preference mockLinkSpeedPref; + private Preference mockTxLinkSpeedPref; + @Mock + private Preference mockRxLinkSpeedPref; @Mock private Preference mockFrequencyPref; @Mock @@ -247,7 +250,8 @@ public class WifiDetailPreferenceControllerTest { when(mockButtonsPref.setButton1OnClickListener(mForgetClickListener.capture())) .thenReturn(mockButtonsPref); - when(mockWifiInfo.getLinkSpeed()).thenReturn(LINK_SPEED); + when(mockWifiInfo.getTxLinkSpeedMbps()).thenReturn(TX_LINK_SPEED); + when(mockWifiInfo.getRxLinkSpeedMbps()).thenReturn(RX_LINK_SPEED); when(mockWifiInfo.getRssi()).thenReturn(RSSI); when(mockWifiInfo.getMacAddress()).thenReturn(MAC_ADDRESS); when(mockWifiManager.getConnectionInfo()).thenReturn(mockWifiInfo); @@ -294,8 +298,10 @@ public class WifiDetailPreferenceControllerTest { .thenReturn(mockButtonsPref); when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SIGNAL_STRENGTH_PREF)) .thenReturn(mockSignalStrengthPref); - when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_LINK_SPEED)) - .thenReturn(mockLinkSpeedPref); + when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_TX_LINK_SPEED)) + .thenReturn(mockTxLinkSpeedPref); + when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_RX_LINK_SPEED)) + .thenReturn(mockRxLinkSpeedPref); when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_FREQUENCY_PREF)) .thenReturn(mockFrequencyPref); when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_SECURITY_PREF)) @@ -414,20 +420,38 @@ public class WifiDetailPreferenceControllerTest { @Test public void linkSpeedPref_shouldHaveDetailTextSet() { - String expectedLinkSpeed = mContext.getString(R.string.link_speed, LINK_SPEED); + String expectedLinkSpeed = mContext.getString(R.string.tx_link_speed, TX_LINK_SPEED); displayAndResume(); - verify(mockLinkSpeedPref).setSummary(expectedLinkSpeed); + verify(mockTxLinkSpeedPref).setSummary(expectedLinkSpeed); } @Test public void linkSpeedPref_shouldNotShowIfNotSet() { - when(mockWifiInfo.getLinkSpeed()).thenReturn(-1); + when(mockWifiInfo.getTxLinkSpeedMbps()).thenReturn(-1); displayAndResume(); - verify(mockLinkSpeedPref).setVisible(false); + verify(mockTxLinkSpeedPref).setVisible(false); + } + + @Test + public void rxLinkSpeedPref_shouldHaveDetailTextSet() { + String expectedLinkSpeed = mContext.getString(R.string.rx_link_speed, RX_LINK_SPEED); + + displayAndResume(); + + verify(mockRxLinkSpeedPref).setSummary(expectedLinkSpeed); + } + + @Test + public void rxLinkSpeedPref_shouldNotShowIfNotSet() { + when(mockWifiInfo.getRxLinkSpeedMbps()).thenReturn(-1); + + displayAndResume(); + + verify(mockRxLinkSpeedPref).setVisible(false); } @Test