Merge "Update WifiConfiguration in AccessPoint." into oc-dr1-dev

This commit is contained in:
TreeHugger Robot
2017-06-29 16:20:13 +00:00
committed by Android (Google) Code Review
3 changed files with 41 additions and 0 deletions

View File

@@ -1058,6 +1058,12 @@ public class AccessPoint implements Comparable<AccessPoint> {
final int oldLevel = getLevel();
if (info != null && isInfoForThisAccessPoint(config, info)) {
updated = (mInfo == null);
if (mConfig != config) {
// We do not set updated = true as we do not want to increase the amount of sorting
// and copying performed in WifiTracker at this time. If issues involving refresh
// are still seen, we will investigate further.
update(config); // Notifies the AccessPointListener of the change
}
if (mRssi != info.getRssi()) {
mRssi = info.getRssi();
updated = true;

View File

@@ -21,6 +21,7 @@
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY"/>
<uses-permission android:name="android.permission.SET_TIME_ZONE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

View File

@@ -20,6 +20,8 @@ import static com.google.common.truth.Truth.assertWithMessage;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -622,4 +624,36 @@ public class AccessPointTest {
NetworkInfo newInfo = new NetworkInfo(networkInfo); // same values
assertThat(ap.update(config, wifiInfo, newInfo)).isFalse();
}
@Test
public void testUpdateWithConfigChangeOnly_returnsFalseButInvokesListener() {
int networkId = 123;
int rssi = -55;
WifiConfiguration config = new WifiConfiguration();
config.networkId = networkId;
config.numNoInternetAccessReports = 1;
WifiInfo wifiInfo = new WifiInfo();
wifiInfo.setNetworkId(networkId);
wifiInfo.setRssi(rssi);
NetworkInfo networkInfo =
new NetworkInfo(ConnectivityManager.TYPE_WIFI, 0 /* subtype */, "WIFI", "");
networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "", "");
AccessPoint ap = new TestAccessPointBuilder(mContext)
.setNetworkInfo(networkInfo)
.setNetworkId(networkId)
.setRssi(rssi)
.setWifiInfo(wifiInfo)
.build();
AccessPoint.AccessPointListener mockListener = mock(AccessPoint.AccessPointListener.class);
ap.setListener(mockListener);
WifiConfiguration newConfig = new WifiConfiguration(config);
config.validatedInternetAccess = true;
assertThat(ap.update(newConfig, wifiInfo, networkInfo)).isFalse();
verify(mockListener).onAccessPointChanged(ap);
}
}