From 15fcce4405c64f46794005d67c377fff7980c1a3 Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Thu, 20 Feb 2020 17:33:31 -0800 Subject: [PATCH] [WIFI][SysUI] Update QS iconography for Wi-Fi Update for: - No internet: show SSID, show pie + "x" for real bars - Captive portal: show SSID, same icon as before (empty pie + '?') - No connection: empty pie Bug: 136473125 Test: visual test in all above scenarios + normal connectivity Change-Id: I2f302874de35e83f9530427733d8518becddfa4b --- .../com/android/settingslib/wifi/WifiStatusTracker.java | 3 +++ .../src/com/android/systemui/qs/tiles/WifiTile.java | 2 +- .../systemui/statusbar/policy/WifiSignalController.java | 7 ++++--- .../statusbar/policy/NetworkControllerWifiTest.java | 2 +- 4 files changed, 9 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 3f55ceaad29a3..8bf48e59165ef 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java @@ -68,6 +68,7 @@ public class WifiStatusTracker extends ConnectivityManager.NetworkCallback { private WifiInfo mWifiInfo; public boolean enabled; + public boolean isCaptivePortal; public int state; public boolean connected; public String ssid; @@ -155,9 +156,11 @@ public class WifiStatusTracker extends ConnectivityManager.NetworkCallback { private void updateStatusLabel() { final NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(mWifiManager.getCurrentNetwork()); + isCaptivePortal = false; if (networkCapabilities != null) { if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) { statusLabel = mContext.getString(R.string.wifi_status_sign_in_required); + isCaptivePortal = true; return; } else if (networkCapabilities.hasCapability(NET_CAPABILITY_PARTIAL_CONNECTIVITY)) { statusLabel = mContext.getString(R.string.wifi_limited_connection); diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java index 39bfd5a8b6db8..f1695017a8836 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java @@ -206,7 +206,7 @@ public class WifiTile extends QSTileImpl { state.icon = ResourceIcon.get(cb.wifiSignalIconId); state.label = removeDoubleQuotes(cb.ssid); } else if (wifiNotConnected) { - state.icon = ResourceIcon.get(R.drawable.ic_qs_wifi_disconnected); + state.icon = ResourceIcon.get(WifiIcons.QS_WIFI_NO_NETWORK); state.label = r.getString(R.string.quick_settings_wifi_label); } else { state.icon = ResourceIcon.get(WifiIcons.QS_WIFI_NO_NETWORK); 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 8bd0f2cadb2b5..7c963869ed47f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java @@ -88,15 +88,16 @@ public class WifiSignalController extends boolean wifiVisible = mCurrentState.enabled && ((mCurrentState.connected && mCurrentState.inetCondition == 1) || !mHasMobileData || visibleWhenEnabled); - String wifiDesc = wifiVisible ? mCurrentState.ssid : null; + String wifiDesc = mCurrentState.connected ? mCurrentState.ssid : null; boolean ssidPresent = wifiVisible && mCurrentState.ssid != null; String contentDescription = getTextIfExists(getContentDescription()).toString(); if (mCurrentState.inetCondition == 0) { contentDescription += ("," + mContext.getString(R.string.data_connection_no_internet)); } IconState statusIcon = new IconState(wifiVisible, getCurrentIconId(), contentDescription); - IconState qsIcon = new IconState(mCurrentState.connected, getQsCurrentIconId(), - contentDescription); + IconState qsIcon = new IconState(mCurrentState.connected, + mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected + : getQsCurrentIconId(), contentDescription); callback.setWifiIndicators(mCurrentState.enabled, statusIcon, qsIcon, ssidPresent && mCurrentState.activityIn, ssidPresent && mCurrentState.activityOut, wifiDesc, mCurrentState.isTransient, mCurrentState.statusLabel); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java index 32da4c9650fbc..9c250c5e8e16e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java @@ -72,7 +72,7 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { testSsid); setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_WIFI, false, true); verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[0][testLevel], - null); + testSsid); } }