Merge "Wifi details: minor ordering fixes." into oc-dev am: 85395155fb

am: 1185ea72f2

Change-Id: Id2661d1f4edac5d987f122542176372b2f99ef3b
This commit is contained in:
Lorenzo Colitti
2017-06-06 22:40:32 +00:00
committed by android-build-merger
2 changed files with 48 additions and 47 deletions

View File

@@ -269,16 +269,19 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
mForgetButton = (Button) mButtonsPref.findViewById(R.id.forget_button); mForgetButton = (Button) mButtonsPref.findViewById(R.id.forget_button);
mForgetButton.setText(R.string.forget); mForgetButton.setText(R.string.forget);
mForgetButton.setOnClickListener(view -> forgetNetwork()); mForgetButton.setOnClickListener(view -> forgetNetwork());
updateInfo();
} }
@Override @Override
public void onResume() { public void onResume() {
// Ensure mNetwork is set before any callbacks above are delivered, since our
// NetworkCallback only looks at changes to mNetwork.
mNetwork = mWifiManager.getCurrentNetwork();
mLinkProperties = mConnectivityManager.getLinkProperties(mNetwork);
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
updateInfo();
mContext.registerReceiver(mReceiver, mFilter);
mConnectivityManagerWrapper.registerNetworkCallback(mNetworkRequest, mNetworkCallback, mConnectivityManagerWrapper.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
mHandler); mHandler);
// updateInfo() will be called during registration because NETWORK_STATE_CHANGED_ACTION is
// a sticky broadcast.
mContext.registerReceiver(mReceiver, mFilter);
} }
@Override @Override
@@ -293,9 +296,8 @@ public class WifiDetailPreferenceController extends PreferenceController impleme
} }
private void updateInfo() { private void updateInfo() {
mNetwork = mWifiManager.getCurrentNetwork(); // No need to fetch LinkProperties and NetworkCapabilities, they are updated by the
mLinkProperties = mConnectivityManager.getLinkProperties(mNetwork); // callbacks. mNetwork doesn't change except in onResume.
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
mNetworkInfo = mConnectivityManager.getNetworkInfo(mNetwork); mNetworkInfo = mConnectivityManager.getNetworkInfo(mNetwork);
mWifiInfo = mWifiManager.getConnectionInfo(); mWifiInfo = mWifiManager.getConnectionInfo();
if (mNetwork == null || mNetworkInfo == null || mWifiInfo == null) { if (mNetwork == null || mNetworkInfo == null || mWifiInfo == null) {

View File

@@ -266,6 +266,11 @@ public class WifiDetailPreferenceControllerTest {
.thenReturn(mockIpv6AddressesPref); .thenReturn(mockIpv6AddressesPref);
} }
private void displayAndResume() {
mController.displayPreference(mockScreen);
mController.onResume();
}
@Test @Test
public void isAvailable_shouldAlwaysReturnTrue() { public void isAvailable_shouldAlwaysReturnTrue() {
mController.displayPreference(mockScreen); mController.displayPreference(mockScreen);
@@ -275,28 +280,28 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void securityPreference_stringShouldBeSet() { public void securityPreference_stringShouldBeSet() {
mController.displayPreference(mockScreen); displayAndResume();
verify(mockSecurityPref).setDetailText(SECURITY); verify(mockSecurityPref).setDetailText(SECURITY);
} }
@Test @Test
public void latestWifiInfo_shouldBeFetchedInDisplayPreference() { public void latestWifiInfo_shouldBeFetchedInDisplayPreference() {
mController.displayPreference(mockScreen); displayAndResume();
verify(mockWifiManager, times(1)).getConnectionInfo(); verify(mockWifiManager, times(1)).getConnectionInfo();
} }
@Test @Test
public void latestNetworkInfo_shouldBeFetchedInDisplayPreference() { public void latestNetworkInfo_shouldBeFetchedInDisplayPreference() {
mController.displayPreference(mockScreen); displayAndResume();
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class)); verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
} }
@Test @Test
public void networkCallback_shouldBeRegisteredOnResume() { public void networkCallback_shouldBeRegisteredOnResume() {
mController.onResume(); displayAndResume();
verify(mockConnectivityManagerWrapper, times(1)).registerNetworkCallback( verify(mockConnectivityManagerWrapper, times(1)).registerNetworkCallback(
nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class)); nullable(NetworkRequest.class), mCallbackCaptor.capture(), nullable(Handler.class));
@@ -304,7 +309,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void networkCallback_shouldBeUnregisteredOnPause() { public void networkCallback_shouldBeUnregisteredOnPause() {
mController.onResume(); displayAndResume();
mController.onPause(); mController.onPause();
verify(mockConnectivityManager, times(1)).unregisterNetworkCallback( verify(mockConnectivityManager, times(1)).unregisterNetworkCallback(
@@ -316,7 +321,7 @@ public class WifiDetailPreferenceControllerTest {
Drawable expectedIcon = Drawable expectedIcon =
NetworkBadging.getWifiIcon(LEVEL, NetworkBadging.BADGING_NONE, mContext.getTheme()); NetworkBadging.getWifiIcon(LEVEL, NetworkBadging.BADGING_NONE, mContext.getTheme());
mController.displayPreference(mockScreen); displayAndResume();
verify(mockConnectionDetailPref).setIcon(expectedIcon); verify(mockConnectionDetailPref).setIcon(expectedIcon);
} }
@@ -326,14 +331,14 @@ public class WifiDetailPreferenceControllerTest {
String summary = "summary"; String summary = "summary";
when(mockAccessPoint.getSettingsSummary()).thenReturn(summary); when(mockAccessPoint.getSettingsSummary()).thenReturn(summary);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockConnectionDetailPref).setTitle(summary); verify(mockConnectionDetailPref).setTitle(summary);
} }
@Test @Test
public void signalStrengthPref_shouldHaveIconSet() { public void signalStrengthPref_shouldHaveIconSet() {
mController.displayPreference(mockScreen); displayAndResume();
verify(mockSignalStrengthPref).setIcon(any(Drawable.class)); verify(mockSignalStrengthPref).setIcon(any(Drawable.class));
} }
@@ -343,7 +348,7 @@ public class WifiDetailPreferenceControllerTest {
String expectedStrength = String expectedStrength =
mContext.getResources().getStringArray(R.array.wifi_signal)[LEVEL]; mContext.getResources().getStringArray(R.array.wifi_signal)[LEVEL];
mController.displayPreference(mockScreen); displayAndResume();
verify(mockSignalStrengthPref).setDetailText(expectedStrength); verify(mockSignalStrengthPref).setDetailText(expectedStrength);
} }
@@ -352,7 +357,7 @@ public class WifiDetailPreferenceControllerTest {
public void linkSpeedPref_shouldHaveDetailTextSet() { public void linkSpeedPref_shouldHaveDetailTextSet() {
String expectedLinkSpeed = mContext.getString(R.string.link_speed, LINK_SPEED); String expectedLinkSpeed = mContext.getString(R.string.link_speed, LINK_SPEED);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockLinkSpeedPref).setDetailText(expectedLinkSpeed); verify(mockLinkSpeedPref).setDetailText(expectedLinkSpeed);
} }
@@ -361,14 +366,14 @@ public class WifiDetailPreferenceControllerTest {
public void linkSpeedPref_shouldNotShowIfNotSet() { public void linkSpeedPref_shouldNotShowIfNotSet() {
when(mockWifiInfo.getLinkSpeed()).thenReturn(-1); when(mockWifiInfo.getLinkSpeed()).thenReturn(-1);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockLinkSpeedPref).setVisible(false); verify(mockLinkSpeedPref).setVisible(false);
} }
@Test @Test
public void macAddressPref_shouldHaveDetailTextSet() { public void macAddressPref_shouldHaveDetailTextSet() {
mController.displayPreference(mockScreen); displayAndResume();
verify(mockMacAddressPref).setDetailText(MAC_ADDRESS); verify(mockMacAddressPref).setDetailText(MAC_ADDRESS);
} }
@@ -377,7 +382,7 @@ public class WifiDetailPreferenceControllerTest {
public void ipAddressPref_shouldHaveDetailTextSet() { public void ipAddressPref_shouldHaveDetailTextSet() {
mLinkProperties.addLinkAddress(Constants.IPV4_ADDR); mLinkProperties.addLinkAddress(Constants.IPV4_ADDR);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockIpAddressPref).setDetailText(Constants.IPV4_ADDR.getAddress().getHostAddress()); verify(mockIpAddressPref).setDetailText(Constants.IPV4_ADDR.getAddress().getHostAddress());
} }
@@ -388,7 +393,7 @@ public class WifiDetailPreferenceControllerTest {
mLinkProperties.addRoute(Constants.IPV4_DEFAULT); mLinkProperties.addRoute(Constants.IPV4_DEFAULT);
mLinkProperties.addRoute(Constants.IPV4_SUBNET); mLinkProperties.addRoute(Constants.IPV4_SUBNET);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockSubnetPref).setDetailText("255.255.255.128"); verify(mockSubnetPref).setDetailText("255.255.255.128");
verify(mockGatewayPref).setDetailText("192.0.2.127"); verify(mockGatewayPref).setDetailText("192.0.2.127");
@@ -399,7 +404,7 @@ public class WifiDetailPreferenceControllerTest {
mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[]{8,8,4,4})); mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[]{8,8,4,4}));
mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[]{8,8,8,8})); mLinkProperties.addDnsServer(InetAddress.getByAddress(new byte[]{8,8,8,8}));
mController.displayPreference(mockScreen); displayAndResume();
verify(mockDnsPref).setDetailText("8.8.4.4,8.8.8.8"); verify(mockDnsPref).setDetailText("8.8.4.4,8.8.8.8");
} }
@@ -410,7 +415,7 @@ public class WifiDetailPreferenceControllerTest {
// nor connecting and WifiStateMachine has not reached L2ConnectedState. // nor connecting and WifiStateMachine has not reached L2ConnectedState.
when(mockWifiManager.getCurrentNetwork()).thenReturn(null); when(mockWifiManager.getCurrentNetwork()).thenReturn(null);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockActivity).finish(); verify(mockActivity).finish();
} }
@@ -421,7 +426,7 @@ public class WifiDetailPreferenceControllerTest {
reset(mockIpv6Category, mockIpAddressPref, mockSubnetPref, mockGatewayPref, reset(mockIpv6Category, mockIpAddressPref, mockSubnetPref, mockGatewayPref,
mockDnsPref); mockDnsPref);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockIpv6Category).setVisible(false); verify(mockIpv6Category).setVisible(false);
verify(mockIpAddressPref).setVisible(false); verify(mockIpAddressPref).setVisible(false);
@@ -466,8 +471,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void onLinkPropertiesChanged_updatesFields() { public void onLinkPropertiesChanged_updatesFields() {
mController.displayPreference(mockScreen); displayAndResume();
mController.onResume();
InOrder inOrder = inOrder(mockIpAddressPref, mockGatewayPref, mockSubnetPref, InOrder inOrder = inOrder(mockIpAddressPref, mockGatewayPref, mockSubnetPref,
mockDnsPref, mockIpv6Category, mockIpv6AddressesPref); mockDnsPref, mockIpv6Category, mockIpv6AddressesPref);
@@ -529,8 +533,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockAccessPoint.getSettingsSummary()).thenReturn(summary); when(mockAccessPoint.getSettingsSummary()).thenReturn(summary);
InOrder inOrder = inOrder(mockConnectionDetailPref); InOrder inOrder = inOrder(mockConnectionDetailPref);
mController.displayPreference(mockScreen); displayAndResume();
mController.onResume();
inOrder.verify(mockConnectionDetailPref).setTitle(summary); inOrder.verify(mockConnectionDetailPref).setTitle(summary);
// Check that an irrelevant capability update does not update the access point summary, as // Check that an irrelevant capability update does not update the access point summary, as
@@ -563,7 +566,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockAccessPoint.getConfig()).thenReturn(null); when(mockAccessPoint.getConfig()).thenReturn(null);
mController = newWifiDetailPreferenceController(); mController = newWifiDetailPreferenceController();
mController.displayPreference(mockScreen); displayAndResume();
verify(mockForgetButton).setVisibility(View.INVISIBLE); verify(mockForgetButton).setVisibility(View.INVISIBLE);
} }
@@ -573,14 +576,14 @@ public class WifiDetailPreferenceControllerTest {
when(mockWifiInfo.isEphemeral()).thenReturn(true); when(mockWifiInfo.isEphemeral()).thenReturn(true);
when(mockAccessPoint.getConfig()).thenReturn(null); when(mockAccessPoint.getConfig()).thenReturn(null);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockForgetButton).setVisibility(View.VISIBLE); verify(mockForgetButton).setVisibility(View.VISIBLE);
} }
@Test @Test
public void canForgetNetwork_saved() { public void canForgetNetwork_saved() {
mController.displayPreference(mockScreen); displayAndResume();
verify(mockForgetButton).setVisibility(View.VISIBLE); verify(mockForgetButton).setVisibility(View.VISIBLE);
} }
@@ -591,7 +594,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockWifiInfo.isEphemeral()).thenReturn(true); when(mockWifiInfo.isEphemeral()).thenReturn(true);
when(mockWifiInfo.getSSID()).thenReturn(ssid); when(mockWifiInfo.getSSID()).thenReturn(ssid);
mController.displayPreference(mockScreen); displayAndResume();
mForgetClickListener.getValue().onClick(null); mForgetClickListener.getValue().onClick(null);
verify(mockWifiManager).disableEphemeralNetwork(ssid); verify(mockWifiManager).disableEphemeralNetwork(ssid);
@@ -613,8 +616,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void networkStateChangedIntent_shouldRefetchInfo() { public void networkStateChangedIntent_shouldRefetchInfo() {
mController.displayPreference(mockScreen); displayAndResume();
mController.onResume();
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class)); verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
verify(mockWifiManager, times(1)).getConnectionInfo(); verify(mockWifiManager, times(1)).getConnectionInfo();
@@ -627,8 +629,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void rssiChangedIntent_shouldRefetchInfo() { public void rssiChangedIntent_shouldRefetchInfo() {
mController.displayPreference(mockScreen); displayAndResume();
mController.onResume();
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class)); verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
verify(mockWifiManager, times(1)).getConnectionInfo(); verify(mockWifiManager, times(1)).getConnectionInfo();
@@ -641,7 +642,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void networkDisconnectedState_shouldFinishActivity() { public void networkDisconnectedState_shouldFinishActivity() {
mController.onResume(); displayAndResume();
when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(null); when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(null);
mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION)); mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
@@ -651,8 +652,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void networkOnLost_shouldFinishActivity() { public void networkOnLost_shouldFinishActivity() {
mController.displayPreference(mockScreen); displayAndResume();
mController.onResume();
mCallbackCaptor.getValue().onLost(mockNetwork); mCallbackCaptor.getValue().onLost(mockNetwork);
@@ -665,7 +665,7 @@ public class WifiDetailPreferenceControllerTest {
mLinkProperties.addLinkAddress(Constants.IPV6_GLOBAL1); mLinkProperties.addLinkAddress(Constants.IPV6_GLOBAL1);
mLinkProperties.addLinkAddress(Constants.IPV6_GLOBAL2); mLinkProperties.addLinkAddress(Constants.IPV6_GLOBAL2);
mController.displayPreference(mockScreen); displayAndResume();
List <Preference> addrs = mIpv6AddressCaptor.getAllValues(); List <Preference> addrs = mIpv6AddressCaptor.getAllValues();
@@ -681,7 +681,7 @@ public class WifiDetailPreferenceControllerTest {
public void ipv6AddressPref_shouldNotBeSelectable() { public void ipv6AddressPref_shouldNotBeSelectable() {
mLinkProperties.addLinkAddress(Constants.IPV6_GLOBAL2); mLinkProperties.addLinkAddress(Constants.IPV6_GLOBAL2);
mController.displayPreference(mockScreen); displayAndResume();
assertThat(mockIpv6AddressesPref.isSelectable()).isFalse(); assertThat(mockIpv6AddressesPref.isSelectable()).isFalse();
} }
@@ -690,8 +690,7 @@ public class WifiDetailPreferenceControllerTest {
public void captivePortal_shouldShowSignInButton() { public void captivePortal_shouldShowSignInButton() {
InOrder inOrder = inOrder(mockSignInButton); InOrder inOrder = inOrder(mockSignInButton);
mController.displayPreference(mockScreen); displayAndResume();
mController.onResume();
inOrder.verify(mockSignInButton).setVisibility(View.INVISIBLE); inOrder.verify(mockSignInButton).setVisibility(View.INVISIBLE);
@@ -710,7 +709,7 @@ public class WifiDetailPreferenceControllerTest {
@Test @Test
public void testSignInButton_shouldStartCaptivePortalApp() { public void testSignInButton_shouldStartCaptivePortalApp() {
mController.displayPreference(mockScreen); displayAndResume();
ArgumentCaptor<OnClickListener> captor = ArgumentCaptor.forClass(OnClickListener.class); ArgumentCaptor<OnClickListener> captor = ArgumentCaptor.forClass(OnClickListener.class);
verify(mockSignInButton).setOnClickListener(captor.capture()); verify(mockSignInButton).setOnClickListener(captor.capture());
@@ -723,7 +722,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockSignInButton.getVisibility()).thenReturn(View.VISIBLE); when(mockSignInButton.getVisibility()).thenReturn(View.VISIBLE);
when(mockForgetButton.getVisibility()).thenReturn(View.INVISIBLE); when(mockForgetButton.getVisibility()).thenReturn(View.INVISIBLE);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockButtonsPref).setVisible(true); verify(mockButtonsPref).setVisible(true);
} }
@@ -733,7 +732,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockSignInButton.getVisibility()).thenReturn(View.INVISIBLE); when(mockSignInButton.getVisibility()).thenReturn(View.INVISIBLE);
when(mockForgetButton.getVisibility()).thenReturn(View.VISIBLE); when(mockForgetButton.getVisibility()).thenReturn(View.VISIBLE);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockButtonsPref).setVisible(true); verify(mockButtonsPref).setVisible(true);
} }
@@ -743,7 +742,7 @@ public class WifiDetailPreferenceControllerTest {
when(mockSignInButton.getVisibility()).thenReturn(View.INVISIBLE); when(mockSignInButton.getVisibility()).thenReturn(View.INVISIBLE);
when(mockForgetButton.getVisibility()).thenReturn(View.INVISIBLE); when(mockForgetButton.getVisibility()).thenReturn(View.INVISIBLE);
mController.displayPreference(mockScreen); displayAndResume();
verify(mockButtonsPref).setVisible(false); verify(mockButtonsPref).setVisible(false);
} }