Merge "Change status bar icons upon capability changes in the default network." into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ceeba4f6d6
@@ -23,6 +23,7 @@ import android.content.IntentFilter;
|
|||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.Network;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
@@ -219,6 +220,38 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
deviceProvisionedController.getCurrentUser()));
|
deviceProvisionedController.getCurrentUser()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback(){
|
||||||
|
private Network mLastNetwork;
|
||||||
|
private NetworkCapabilities mLastNetworkCapabilities;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCapabilitiesChanged(
|
||||||
|
Network network, NetworkCapabilities networkCapabilities) {
|
||||||
|
boolean lastValidated = (mLastNetworkCapabilities != null) &&
|
||||||
|
mLastNetworkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED);
|
||||||
|
boolean validated =
|
||||||
|
networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED);
|
||||||
|
|
||||||
|
// This callback is invoked a lot (i.e. when RSSI changes), so avoid updating
|
||||||
|
// icons when connectivity state has remained the same.
|
||||||
|
if (network.equals(mLastNetwork) &&
|
||||||
|
networkCapabilities.equalsTransportTypes(mLastNetworkCapabilities) &&
|
||||||
|
validated == lastValidated) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mLastNetwork = network;
|
||||||
|
mLastNetworkCapabilities = networkCapabilities;
|
||||||
|
updateConnectivity();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// Even though this callback runs on the receiver handler thread which also processes the
|
||||||
|
// CONNECTIVITY_ACTION broadcasts, the broadcast and callback might come in at different
|
||||||
|
// times. This is safe since updateConnectivity() builds the list of transports from
|
||||||
|
// scratch.
|
||||||
|
// TODO: Move off of the deprecated CONNECTIVITY_ACTION broadcast and rely on callbacks
|
||||||
|
// exclusively for status bar icons.
|
||||||
|
mConnectivityManager.registerDefaultNetworkCallback(callback, mReceiverHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataSaverController getDataSaverController() {
|
public DataSaverController getDataSaverController() {
|
||||||
|
|||||||
@@ -17,20 +17,25 @@
|
|||||||
package com.android.systemui.statusbar.policy;
|
package com.android.systemui.statusbar.policy;
|
||||||
|
|
||||||
import static junit.framework.Assert.assertEquals;
|
import static junit.framework.Assert.assertEquals;
|
||||||
|
import static junit.framework.Assert.assertNotNull;
|
||||||
|
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.anyBoolean;
|
import static org.mockito.Matchers.anyBoolean;
|
||||||
import static org.mockito.Matchers.anyInt;
|
import static org.mockito.Matchers.anyInt;
|
||||||
import static org.mockito.Matchers.anyString;
|
import static org.mockito.Matchers.anyString;
|
||||||
import static org.mockito.Matchers.eq;
|
import static org.mockito.Matchers.eq;
|
||||||
|
import static org.mockito.Matchers.isA;
|
||||||
|
import static org.mockito.Mockito.atLeastOnce;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.Network;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
@@ -90,6 +95,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
protected int mSubId;
|
protected int mSubId;
|
||||||
|
|
||||||
private NetworkCapabilities mNetCapabilities;
|
private NetworkCapabilities mNetCapabilities;
|
||||||
|
private ConnectivityManager.NetworkCallback mNetworkCallback;
|
||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public TestWatcher failWatcher = new TestWatcher() {
|
public TestWatcher failWatcher = new TestWatcher() {
|
||||||
@@ -154,6 +160,13 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
setSubscriptions(mSubId);
|
setSubscriptions(mSubId);
|
||||||
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
|
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
|
||||||
mPhoneStateListener = mMobileSignalController.mPhoneStateListener;
|
mPhoneStateListener = mMobileSignalController.mPhoneStateListener;
|
||||||
|
|
||||||
|
ArgumentCaptor<ConnectivityManager.NetworkCallback> callbackArg =
|
||||||
|
ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class);
|
||||||
|
Mockito.verify(mMockCm, atLeastOnce())
|
||||||
|
.registerDefaultNetworkCallback(callbackArg.capture(), isA(Handler.class));
|
||||||
|
mNetworkCallback = callbackArg.getValue();
|
||||||
|
assertNotNull(mNetworkCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setDefaultSubId(int subId) {
|
protected void setDefaultSubId(int subId) {
|
||||||
@@ -195,24 +208,37 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
|||||||
setLevel(DEFAULT_LEVEL);
|
setLevel(DEFAULT_LEVEL);
|
||||||
updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
|
updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
|
||||||
TelephonyManager.NETWORK_TYPE_UMTS);
|
TelephonyManager.NETWORK_TYPE_UMTS);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, true, true);
|
setConnectivityViaBroadcast(
|
||||||
|
NetworkCapabilities.TRANSPORT_CELLULAR, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConnectivity(int networkType, boolean inetCondition, boolean isConnected) {
|
public void setConnectivityViaBroadcast(
|
||||||
|
int networkType, boolean validated, boolean isConnected) {
|
||||||
|
setConnectivityCommon(networkType, validated, isConnected);
|
||||||
Intent i = new Intent(ConnectivityManager.INET_CONDITION_ACTION);
|
Intent i = new Intent(ConnectivityManager.INET_CONDITION_ACTION);
|
||||||
|
mNetworkController.onReceive(mContext, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConnectivityViaCallback(
|
||||||
|
int networkType, boolean validated, boolean isConnected){
|
||||||
|
setConnectivityCommon(networkType, validated, isConnected);
|
||||||
|
mNetworkCallback.onCapabilitiesChanged(
|
||||||
|
mock(Network.class), new NetworkCapabilities(mNetCapabilities));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setConnectivityCommon(
|
||||||
|
int networkType, boolean validated, boolean isConnected){
|
||||||
// TODO: Separate out into several NetworkCapabilities.
|
// TODO: Separate out into several NetworkCapabilities.
|
||||||
if (isConnected) {
|
if (isConnected) {
|
||||||
mNetCapabilities.addTransportType(networkType);
|
mNetCapabilities.addTransportType(networkType);
|
||||||
} else {
|
} else {
|
||||||
mNetCapabilities.removeTransportType(networkType);
|
mNetCapabilities.removeTransportType(networkType);
|
||||||
}
|
}
|
||||||
if (inetCondition) {
|
if (validated) {
|
||||||
mNetCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
mNetCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||||
} else {
|
} else {
|
||||||
mNetCapabilities.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
mNetCapabilities.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
mNetworkController.onReceive(mContext, i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGsmRoaming(boolean isRoaming) {
|
public void setGsmRoaming(boolean isRoaming) {
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
|||||||
when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
|
when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
|
||||||
setupDefaultSignal();
|
setupDefaultSignal();
|
||||||
updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 0);
|
updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 0);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||||
|
|
||||||
// Verify that a SignalDrawable with a cut out is used to display data disabled.
|
// Verify that a SignalDrawable with a cut out is used to display data disabled.
|
||||||
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0,
|
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0,
|
||||||
@@ -132,7 +132,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
|||||||
when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
|
when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
|
||||||
setupDefaultSignal();
|
setupDefaultSignal();
|
||||||
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||||
|
|
||||||
// Verify that a SignalDrawable with a cut out is used to display data disabled.
|
// Verify that a SignalDrawable with a cut out is used to display data disabled.
|
||||||
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0,
|
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0,
|
||||||
@@ -146,7 +146,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
|||||||
when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
|
when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
|
||||||
setupDefaultSignal();
|
setupDefaultSignal();
|
||||||
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||||
when(mMockProvisionController.isUserSetup(anyInt())).thenReturn(false);
|
when(mMockProvisionController.isUserSetup(anyInt())).thenReturn(false);
|
||||||
mUserCallback.onUserSetupChanged();
|
mUserCallback.onUserSetupChanged();
|
||||||
TestableLooper.get(this).processAllMessages();
|
TestableLooper.get(this).processAllMessages();
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class NetworkControllerEthernetTest extends NetworkControllerBaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void setEthernetState(boolean connected, boolean validated) {
|
protected void setEthernetState(boolean connected, boolean validated) {
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_ETHERNET, validated, connected);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_ETHERNET, validated, connected);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void verifyLastEthernetIcon(boolean visible, int icon) {
|
protected void verifyLastEthernetIcon(boolean visible, int icon) {
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest {
|
|||||||
testStrength, DEFAULT_ICON);
|
testStrength, DEFAULT_ICON);
|
||||||
|
|
||||||
// Verify low inet number indexing.
|
// Verify low inet number indexing.
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, true);
|
||||||
verifyLastMobileDataIndicators(true,
|
verifyLastMobileDataIndicators(true,
|
||||||
testStrength, DEFAULT_ICON, false, false);
|
testStrength, DEFAULT_ICON, false, false);
|
||||||
}
|
}
|
||||||
@@ -230,8 +230,8 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testNoBangWithWifi() {
|
public void testNoBangWithWifi() {
|
||||||
setupDefaultSignal();
|
setupDefaultSignal();
|
||||||
setConnectivity(mMobileSignalController.mTransportType, false, false);
|
setConnectivityViaBroadcast(mMobileSignalController.mTransportType, false, false);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
|
|
||||||
verifyLastMobileDataIndicators(true, DEFAULT_LEVEL, 0);
|
verifyLastMobileDataIndicators(true, DEFAULT_LEVEL, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ import org.mockito.Mockito;
|
|||||||
|
|
||||||
import static junit.framework.Assert.assertEquals;
|
import static junit.framework.Assert.assertEquals;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.anyBoolean;
|
import static org.mockito.Matchers.anyBoolean;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@@ -44,9 +44,9 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
|
|||||||
for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) {
|
for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) {
|
||||||
setWifiLevel(testLevel);
|
setWifiLevel(testLevel);
|
||||||
|
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, false, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, false, true);
|
||||||
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[0][testLevel]);
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[0][testLevel]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,10 +65,10 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
|
|||||||
for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) {
|
for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) {
|
||||||
setWifiLevel(testLevel);
|
setWifiLevel(testLevel);
|
||||||
|
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel],
|
verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel],
|
||||||
testSsid);
|
testSsid);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, false, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, false, true);
|
||||||
verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[0][testLevel],
|
verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[0][testLevel],
|
||||||
testSsid);
|
testSsid);
|
||||||
}
|
}
|
||||||
@@ -82,7 +82,7 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
|
|||||||
setWifiEnabled(true);
|
setWifiEnabled(true);
|
||||||
setWifiState(true, testSsid);
|
setWifiState(true, testSsid);
|
||||||
setWifiLevel(testLevel);
|
setWifiLevel(testLevel);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
verifyLastQsWifiIcon(true, true,
|
verifyLastQsWifiIcon(true, true,
|
||||||
WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid);
|
WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid);
|
||||||
|
|
||||||
@@ -107,19 +107,68 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
|
|||||||
setWifiEnabled(true);
|
setWifiEnabled(true);
|
||||||
setWifiState(true, testSsid);
|
setWifiState(true, testSsid);
|
||||||
setWifiLevel(testLevel);
|
setWifiLevel(testLevel);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
||||||
|
|
||||||
setupDefaultSignal();
|
setupDefaultSignal();
|
||||||
setGsmRoaming(true);
|
setGsmRoaming(true);
|
||||||
// Still be on wifi though.
|
// Still be on wifi though.
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||||
verifyLastMobileDataIndicators(true,
|
verifyLastMobileDataIndicators(true,
|
||||||
DEFAULT_LEVEL,
|
DEFAULT_LEVEL,
|
||||||
0, true);
|
0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWifiIconInvalidatedViaCallback() {
|
||||||
|
// Setup normal connection
|
||||||
|
String testSsid = "Test SSID";
|
||||||
|
int testLevel = 2;
|
||||||
|
setWifiEnabled(true);
|
||||||
|
setWifiState(true, testSsid);
|
||||||
|
setWifiLevel(testLevel);
|
||||||
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
||||||
|
|
||||||
|
setConnectivityViaCallback(NetworkCapabilities.TRANSPORT_WIFI, false, true);
|
||||||
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[0][testLevel]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWifiIconDisconnectedViaCallback(){
|
||||||
|
// Setup normal connection
|
||||||
|
String testSsid = "Test SSID";
|
||||||
|
int testLevel = 2;
|
||||||
|
setWifiEnabled(true);
|
||||||
|
setWifiState(true, testSsid);
|
||||||
|
setWifiLevel(testLevel);
|
||||||
|
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
||||||
|
|
||||||
|
setWifiState(false, testSsid);
|
||||||
|
setConnectivityViaCallback(NetworkCapabilities.TRANSPORT_WIFI, false, false);
|
||||||
|
verifyLastWifiIcon(false, WifiIcons.WIFI_NO_NETWORK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testVpnWithUnderlyingWifi(){
|
||||||
|
String testSsid = "Test SSID";
|
||||||
|
int testLevel = 2;
|
||||||
|
setWifiEnabled(true);
|
||||||
|
verifyLastWifiIcon(false, WifiIcons.WIFI_NO_NETWORK);
|
||||||
|
|
||||||
|
setConnectivityViaCallback(NetworkCapabilities.TRANSPORT_VPN, false, true);
|
||||||
|
setConnectivityViaCallback(NetworkCapabilities.TRANSPORT_VPN, true, true);
|
||||||
|
verifyLastWifiIcon(false, WifiIcons.WIFI_NO_NETWORK);
|
||||||
|
|
||||||
|
// Mock calling setUnderlyingNetworks.
|
||||||
|
setWifiState(true, testSsid);
|
||||||
|
setWifiLevel(testLevel);
|
||||||
|
setConnectivityViaCallback(NetworkCapabilities.TRANSPORT_WIFI, true, true);
|
||||||
|
verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]);
|
||||||
|
}
|
||||||
|
|
||||||
protected void setWifiActivity(int activity) {
|
protected void setWifiActivity(int activity) {
|
||||||
// TODO: Not this, because this variable probably isn't sticking around.
|
// TODO: Not this, because this variable probably isn't sticking around.
|
||||||
mNetworkController.mWifiSignalController.setActivity(activity);
|
mNetworkController.mWifiSignalController.setActivity(activity);
|
||||||
@@ -143,10 +192,10 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
|
|||||||
|
|
||||||
protected void setWifiState(boolean connected, String ssid) {
|
protected void setWifiState(boolean connected, String ssid) {
|
||||||
Intent i = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
Intent i = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
||||||
NetworkInfo networkInfo = Mockito.mock(NetworkInfo.class);
|
NetworkInfo networkInfo = mock(NetworkInfo.class);
|
||||||
when(networkInfo.isConnected()).thenReturn(connected);
|
when(networkInfo.isConnected()).thenReturn(connected);
|
||||||
|
|
||||||
WifiInfo wifiInfo = Mockito.mock(WifiInfo.class);
|
WifiInfo wifiInfo = mock(WifiInfo.class);
|
||||||
when(wifiInfo.getSSID()).thenReturn(ssid);
|
when(wifiInfo.getSSID()).thenReturn(ssid);
|
||||||
when(mMockWm.getConnectionInfo()).thenReturn(wifiInfo);
|
when(mMockWm.getConnectionInfo()).thenReturn(wifiInfo);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user