summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtan Cohen <etancohen@google.com>2020-07-22 11:24:16 -0700
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-08-18 12:18:57 +0000
commitb852644a6c85fb12e05f5a5e2a848374c285028f (patch)
treed636629b71297be1bcd573d1d0a883953b4e666a
parentc88d21a460b3a8913b2e8d23913091573a89b593 (diff)
downloadbase-b852644a6c85fb12e05f5a5e2a848374c285028f.tar.gz
Fix WiFi + "x" stil visible
The WiFi + "x" still seems to appear under some conditions - code path checking on changes in status not triggered correctly. Also remove one of the calls to the WifiManager#getCurrentNetwork. Partial fix to WifiManager#getCurrentNetwork blocking. Bug: 161011371 Bug: 163425287 Test: atest NetworkControllerWifiTest Test: visual inspection Change-Id: I112bdff85e905807c4e2826c127aeaedcdb03fd1 (cherry picked from commit 57855efc386a84dd8f8fc6cdb0cad4df4bf36f94)
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java9
2 files changed, 16 insertions, 5 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
index d7e76a14c768..e77d1a2ccea1 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
@@ -189,10 +189,12 @@ public class WifiStatusTracker {
}
}
updateStatusLabel();
+ mCallback.run();
} else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) {
// Default to -200 as its below WifiManager.MIN_RSSI.
updateRssi(intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200));
updateStatusLabel();
+ mCallback.run();
}
}
@@ -215,13 +217,15 @@ public class WifiStatusTracker {
private void updateStatusLabel() {
NetworkCapabilities networkCapabilities;
- final Network currentWifiNetwork = mWifiManager.getCurrentNetwork();
- if (currentWifiNetwork != null && currentWifiNetwork.equals(mDefaultNetwork)) {
+ isDefaultNetwork = false;
+ if (mDefaultNetworkCapabilities != null) {
+ isDefaultNetwork = mDefaultNetworkCapabilities.hasTransport(
+ NetworkCapabilities.TRANSPORT_WIFI);
+ }
+ if (isDefaultNetwork) {
// Wifi is connected and the default network.
- isDefaultNetwork = true;
networkCapabilities = mDefaultNetworkCapabilities;
} else {
- isDefaultNetwork = false;
networkCapabilities = mConnectivityManager.getNetworkCapabilities(
mWifiManager.getCurrentNetwork());
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
index 5257ce4c6bd9..4ae96651b570 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
@@ -84,7 +84,7 @@ public class WifiSignalController extends
R.bool.config_showWifiIndicatorWhenEnabled);
boolean wifiVisible = mCurrentState.enabled && (
(mCurrentState.connected && mCurrentState.inetCondition == 1)
- || !mHasMobileDataFeature || mWifiTracker.isDefaultNetwork
+ || !mHasMobileDataFeature || mCurrentState.isDefault
|| visibleWhenEnabled);
String wifiDesc = mCurrentState.connected ? mCurrentState.ssid : null;
boolean ssidPresent = wifiVisible && mCurrentState.ssid != null;
@@ -107,6 +107,7 @@ public class WifiSignalController extends
public void fetchInitialState() {
mWifiTracker.fetchInitialState();
mCurrentState.enabled = mWifiTracker.enabled;
+ mCurrentState.isDefault = mWifiTracker.isDefaultNetwork;
mCurrentState.connected = mWifiTracker.connected;
mCurrentState.ssid = mWifiTracker.ssid;
mCurrentState.rssi = mWifiTracker.rssi;
@@ -121,6 +122,7 @@ public class WifiSignalController extends
public void handleBroadcast(Intent intent) {
mWifiTracker.handleBroadcast(intent);
mCurrentState.enabled = mWifiTracker.enabled;
+ mCurrentState.isDefault = mWifiTracker.isDefaultNetwork;
mCurrentState.connected = mWifiTracker.connected;
mCurrentState.ssid = mWifiTracker.ssid;
mCurrentState.rssi = mWifiTracker.rssi;
@@ -131,6 +133,7 @@ public class WifiSignalController extends
private void handleStatusUpdated() {
mCurrentState.statusLabel = mWifiTracker.statusLabel;
+ mCurrentState.isDefault = mWifiTracker.isDefaultNetwork;
notifyListenersIfNecessary();
}
@@ -156,6 +159,7 @@ public class WifiSignalController extends
static class WifiState extends SignalController.State {
String ssid;
boolean isTransient;
+ boolean isDefault;
String statusLabel;
@Override
@@ -164,6 +168,7 @@ public class WifiSignalController extends
WifiState state = (WifiState) s;
ssid = state.ssid;
isTransient = state.isTransient;
+ isDefault = state.isDefault;
statusLabel = state.statusLabel;
}
@@ -172,6 +177,7 @@ public class WifiSignalController extends
super.toString(builder);
builder.append(",ssid=").append(ssid)
.append(",isTransient=").append(isTransient)
+ .append(",isDefault=").append(isDefault)
.append(",statusLabel=").append(statusLabel);
}
@@ -183,6 +189,7 @@ public class WifiSignalController extends
WifiState other = (WifiState) o;
return Objects.equals(other.ssid, ssid)
&& other.isTransient == isTransient
+ && other.isDefault == isDefault
&& TextUtils.equals(other.statusLabel, statusLabel);
}
}