private final UserManager mUserManager;
private final Receiver mReceiver = new Receiver();
+ private NetworkControllerImpl mNetworkController;
private boolean mScanning;
private int mCurrentUser;
mCurrentUser = ActivityManager.getCurrentUser();
}
+ void setNetworkController(NetworkControllerImpl networkController) {
+ mNetworkController = networkController;
+ }
+
public boolean canConfigWifi() {
return !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI,
new UserHandle(mCurrentUser));
ap.isConfigured = config != null;
ap.networkId = config != null ? config.networkId : AccessPoint.NO_NETWORK;
ap.ssid = ssid;
- ap.iconId = ICONS[level];
// Connected if either:
// -The network ID in the active WifiInfo matches this network's ID.
// -The network is ephemeral (no configuration) but the SSID matches.
&& ap.networkId == connectedNetworkId) ||
(ap.networkId == WifiConfiguration.INVALID_NETWORK_ID && wifiInfo != null &&
ap.ssid.equals(trimDoubleQuotes(wifiInfo.getSSID())));
- ap.level = level;
+ if (ap.isConnected && mNetworkController != null) {
+ // Ensure we have the connected network's RSSI.
+ ap.level = mNetworkController.getConnectedWifiLevel();
+ } else {
+ ap.level = level;
+ }
+ ap.iconId = ICONS[ap.level];
// Based on Settings AccessPoint#getSecurity, keep up to date
// with better methods of determining no security or not.
ap.hasSecurity = scanResult.capabilities.contains("WEP")
final WifiSignalController mWifiSignalController;
@VisibleForTesting
final MobileSignalController mMobileSignalController;
- private final AccessPointController mAccessPoints;
+ private final AccessPointControllerImpl mAccessPoints;
private final MobileDataControllerImpl mMobileDataController;
// bluetooth
// AIRPLANE_MODE_CHANGED is sent at boot; we've probably already missed it
updateAirplaneMode(true);
+ mAccessPoints.setNetworkController(this);
}
private void registerListeners() {
mContext.unregisterReceiver(this);
}
+ public int getConnectedWifiLevel() {
+ return mWifiSignalController.getState().level;
+ }
+
@Override
public AccessPointController getAccessPointController() {
return mAccessPoints;