summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/AccessPointControllerImpl.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java7
2 files changed, 18 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AccessPointControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AccessPointControllerImpl.java
index f9a68d0b21f6..479c982eac93 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AccessPointControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AccessPointControllerImpl.java
@@ -67,6 +67,7 @@ public class AccessPointControllerImpl implements NetworkController.AccessPointC
private final UserManager mUserManager;
private final Receiver mReceiver = new Receiver();
+ private NetworkControllerImpl mNetworkController;
private boolean mScanning;
private int mCurrentUser;
@@ -77,6 +78,10 @@ public class AccessPointControllerImpl implements NetworkController.AccessPointC
mCurrentUser = ActivityManager.getCurrentUser();
}
+ void setNetworkController(NetworkControllerImpl networkController) {
+ mNetworkController = networkController;
+ }
+
public boolean canConfigWifi() {
return !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI,
new UserHandle(mCurrentUser));
@@ -181,7 +186,6 @@ public class AccessPointControllerImpl implements NetworkController.AccessPointC
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.
@@ -189,7 +193,13 @@ public class AccessPointControllerImpl implements NetworkController.AccessPointC
&& 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")
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
index 5a97c75e313b..f3a04b6ab235 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
@@ -82,7 +82,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
final WifiSignalController mWifiSignalController;
@VisibleForTesting
final MobileSignalController mMobileSignalController;
- private final AccessPointController mAccessPoints;
+ private final AccessPointControllerImpl mAccessPoints;
private final MobileDataControllerImpl mMobileDataController;
// bluetooth
@@ -154,6 +154,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
// AIRPLANE_MODE_CHANGED is sent at boot; we've probably already missed it
updateAirplaneMode(true);
+ mAccessPoints.setNetworkController(this);
}
private void registerListeners() {
@@ -178,6 +179,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
mContext.unregisterReceiver(this);
}
+ public int getConnectedWifiLevel() {
+ return mWifiSignalController.getState().level;
+ }
+
@Override
public AccessPointController getAccessPointController() {
return mAccessPoints;