Loading packages/SettingsLib/res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,12 @@ <!-- Summary for Connected wifi network without internet --> <string name="wifi_connected_no_internet">Connected, no internet</string> <!-- Wi-Fi status indicating that the current network is connected, but has no internet access. --> <string name="wifi_status_no_internet">No internet</string> <!-- Wi-Fi status indicating that the current network is connected requires sign in to access the internet. --> <string name="wifi_status_sign_in_required">Sign in required</string> <!-- Summary for networks failing to connect due to association rejection status 17, AP full --> <string name="wifi_ap_unable_to_handle_new_sta">Access point temporarily full</string> Loading packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +15 −5 Original line number Diff line number Diff line Loading @@ -1154,7 +1154,7 @@ public class AccessPoint implements Comparable<AccessPoint> { @Nullable @Speed private int roundToClosestSpeedEnum(int speed) { private static int roundToClosestSpeedEnum(int speed) { if (speed < Speed.SLOW) { return Speed.NONE; } else if (speed < (Speed.SLOW + Speed.MODERATE) / 2) { Loading @@ -1170,21 +1170,31 @@ public class AccessPoint implements Comparable<AccessPoint> { @Nullable String getSpeedLabel(@Speed int speed) { return getSpeedLabel(mContext, speed); } private static String getSpeedLabel(Context context, int speed) { switch (speed) { case Speed.VERY_FAST: return mContext.getString(R.string.speed_label_very_fast); return context.getString(R.string.speed_label_very_fast); case Speed.FAST: return mContext.getString(R.string.speed_label_fast); return context.getString(R.string.speed_label_fast); case Speed.MODERATE: return mContext.getString(R.string.speed_label_okay); return context.getString(R.string.speed_label_okay); case Speed.SLOW: return mContext.getString(R.string.speed_label_slow); return context.getString(R.string.speed_label_slow); case Speed.NONE: default: return null; } } /** Return the speed label for a {@link ScoredNetwork} at the specified {@code rssi} level. */ @Nullable public static String getSpeedLabel(Context context, ScoredNetwork scoredNetwork, int rssi) { return getSpeedLabel(context, roundToClosestSpeedEnum(scoredNetwork.calculateBadge(rssi))); } /** Return true if the current RSSI is reachable, and false otherwise. */ public boolean isReachable() { return mRssi != UNREACHABLE_RSSI; Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +108 −21 Original line number Diff line number Diff line Loading @@ -10,28 +10,90 @@ package com.android.settingslib.wifi; import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkKey; import android.net.NetworkRequest; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; import android.net.wifi.WifiSsid; import android.os.Handler; import android.os.Looper; import java.util.List; import com.android.settingslib.R; public class WifiStatusTracker { import java.util.List; public class WifiStatusTracker extends ConnectivityManager.NetworkCallback { private final Context mContext; private final WifiNetworkScoreCache mWifiNetworkScoreCache; private final WifiManager mWifiManager; private final NetworkScoreManager mNetworkScoreManager; private final ConnectivityManager mConnectivityManager; private final WifiNetworkScoreCache.CacheListener mCacheListener = new WifiNetworkScoreCache.CacheListener(new Handler(Looper.getMainLooper())) { @Override public void networkCacheUpdated(List<ScoredNetwork> updatedNetworks) { updateStatusLabel(); mCallback.run(); } }; private final NetworkRequest mNetworkRequest = new NetworkRequest.Builder() .clearCapabilities().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(); private final ConnectivityManager.NetworkCallback mNetworkCallback = new ConnectivityManager .NetworkCallback() { @Override public void onCapabilitiesChanged( Network network, NetworkCapabilities networkCapabilities) { updateStatusLabel(); mCallback.run(); } }; private final Runnable mCallback; private WifiInfo mWifiInfo; public boolean enabled; public int state; public boolean connected; public boolean connecting; public String ssid; public int rssi; public int level; public String statusLabel; public WifiStatusTracker(WifiManager wifiManager) { public WifiStatusTracker(Context context, WifiManager wifiManager, NetworkScoreManager networkScoreManager, ConnectivityManager connectivityManager, Runnable callback) { mContext = context; mWifiManager = wifiManager; mWifiNetworkScoreCache = new WifiNetworkScoreCache(context); mNetworkScoreManager = networkScoreManager; mConnectivityManager = connectivityManager; mCallback = callback; } public void setListening(boolean listening) { if (listening) { mNetworkScoreManager.registerNetworkScoreCache(NetworkKey.TYPE_WIFI, mWifiNetworkScoreCache, NetworkScoreManager.CACHE_FILTER_CURRENT_NETWORK); mWifiNetworkScoreCache.registerListener(mCacheListener); mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback); } else { mNetworkScoreManager.unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, mWifiNetworkScoreCache); mWifiNetworkScoreCache.unregisterListener(); mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); } } public void handleBroadcast(Intent intent) { Loading @@ -40,32 +102,57 @@ public class WifiStatusTracker { state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN); enabled = state == WifiManager.WIFI_STATE_ENABLED; enabled = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN) == WifiManager.WIFI_STATE_ENABLED; } else if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { final NetworkInfo networkInfo = (NetworkInfo) final NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); connecting = networkInfo != null && !networkInfo.isConnected() && networkInfo.isConnectedOrConnecting(); connected = networkInfo != null && networkInfo.isConnected(); // If Connected grab the signal strength and ssid. if (connected) { WifiInfo info = mWifiManager.getConnectionInfo(); if (info != null) { ssid = getValidSsid(info); } else { mWifiInfo = null; ssid = null; if (connected) { mWifiInfo = mWifiManager.getConnectionInfo(); if (mWifiInfo != null) { ssid = getValidSsid(mWifiInfo); updateRssi(mWifiInfo.getRssi()); maybeRequestNetworkScore(); } } else if (!connected) { ssid = null; } updateStatusLabel(); } else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) { // Default to -200 as its below WifiManager.MIN_RSSI. rssi = intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200); level = WifiManager.calculateSignalLevel(rssi, 5); updateRssi(intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200)); updateStatusLabel(); } } private void updateRssi(int newRssi) { rssi = newRssi; level = WifiManager.calculateSignalLevel(rssi, WifiManager.RSSI_LEVELS); } private void maybeRequestNetworkScore() { NetworkKey networkKey = NetworkKey.createFromWifiInfo(mWifiInfo); if (mWifiNetworkScoreCache.getScoredNetwork(networkKey) == null) { mNetworkScoreManager.requestScores(new NetworkKey[]{ networkKey }); } } private void updateStatusLabel() { final NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(mWifiManager.getCurrentNetwork()); if (networkCapabilities != null) { if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) { statusLabel = mContext.getString(R.string.wifi_status_sign_in_required); return; } else if (!networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED)) { statusLabel = mContext.getString(R.string.wifi_status_no_internet); return; } } ScoredNetwork scoredNetwork = mWifiNetworkScoreCache.getScoredNetwork(NetworkKey.createFromWifiInfo(mWifiInfo)); statusLabel = scoredNetwork == null ? null : AccessPoint.getSpeedLabel(mContext, scoredNetwork, rssi); } private String getValidSsid(WifiInfo info) { Loading packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java +14 −11 Original line number Diff line number Diff line Loading @@ -150,8 +150,8 @@ public class WifiTile extends QSTileImpl<SignalState> { cb = mSignalCallback.mInfo; } boolean transientEnabling = arg == ARG_SHOW_TRANSIENT_ENABLING; boolean wifiConnected = cb.enabled && (cb.wifiSignalIconId > 0) && (cb.enabledDesc != null); boolean wifiNotConnected = (cb.wifiSignalIconId > 0) && (cb.enabledDesc == null); boolean wifiConnected = cb.enabled && (cb.wifiSignalIconId > 0) && (cb.ssid != null); boolean wifiNotConnected = (cb.wifiSignalIconId > 0) && (cb.ssid == null); boolean enabledChanging = state.value != cb.enabled; if (enabledChanging) { mDetailAdapter.setItemsVisible(cb.enabled); Loading @@ -163,7 +163,7 @@ public class WifiTile extends QSTileImpl<SignalState> { } state.slash.isSlashed = false; boolean isTransient = transientEnabling || cb.isTransient; state.secondaryLabel = getSecondaryLabel(isTransient); state.secondaryLabel = getSecondaryLabel(isTransient, cb.statusLabel); state.state = Tile.STATE_ACTIVE; state.dualTarget = true; state.value = transientEnabling || cb.enabled; Loading @@ -181,7 +181,7 @@ public class WifiTile extends QSTileImpl<SignalState> { state.label = r.getString(R.string.quick_settings_wifi_label); } else if (wifiConnected) { state.icon = ResourceIcon.get(cb.wifiSignalIconId); state.label = removeDoubleQuotes(cb.enabledDesc); state.label = removeDoubleQuotes(cb.ssid); } else if (wifiNotConnected) { state.icon = ResourceIcon.get(R.drawable.ic_qs_wifi_disconnected); state.label = r.getString(R.string.quick_settings_wifi_label); Loading @@ -194,7 +194,7 @@ public class WifiTile extends QSTileImpl<SignalState> { if (state.value) { if (wifiConnected) { minimalContentDescription.append(cb.wifiSignalContentDescription).append(","); minimalContentDescription.append(removeDoubleQuotes(cb.enabledDesc)); minimalContentDescription.append(removeDoubleQuotes(cb.ssid)); } } state.contentDescription = minimalContentDescription.toString(); Loading @@ -203,10 +203,10 @@ public class WifiTile extends QSTileImpl<SignalState> { state.expandedAccessibilityClassName = Switch.class.getName(); } private CharSequence getSecondaryLabel(boolean isTransient) { private CharSequence getSecondaryLabel(boolean isTransient, String statusLabel) { return isTransient ? mContext.getString(R.string.quick_settings_wifi_secondary_label_transient) : null; : statusLabel; } @Override Loading Loading @@ -246,11 +246,12 @@ public class WifiTile extends QSTileImpl<SignalState> { boolean enabled; boolean connected; int wifiSignalIconId; String enabledDesc; String ssid; boolean activityIn; boolean activityOut; String wifiSignalContentDescription; boolean isTransient; public String statusLabel; @Override public String toString() { Loading @@ -258,7 +259,7 @@ public class WifiTile extends QSTileImpl<SignalState> { .append("enabled=").append(enabled) .append(",connected=").append(connected) .append(",wifiSignalIconId=").append(wifiSignalIconId) .append(",enabledDesc=").append(enabledDesc) .append(",ssid=").append(ssid) .append(",activityIn=").append(activityIn) .append(",activityOut=").append(activityOut) .append(",wifiSignalContentDescription=").append(wifiSignalContentDescription) Loading @@ -272,16 +273,18 @@ public class WifiTile extends QSTileImpl<SignalState> { @Override public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, boolean activityIn, boolean activityOut, String description, boolean isTransient) { boolean activityIn, boolean activityOut, String description, boolean isTransient, String statusLabel) { if (DEBUG) Log.d(TAG, "onWifiSignalChanged enabled=" + enabled); mInfo.enabled = enabled; mInfo.connected = qsIcon.visible; mInfo.wifiSignalIconId = qsIcon.icon; mInfo.enabledDesc = description; mInfo.ssid = description; mInfo.activityIn = activityIn; mInfo.activityOut = activityOut; mInfo.wifiSignalContentDescription = qsIcon.contentDescription; mInfo.isTransient = isTransient; mInfo.statusLabel = statusLabel; if (isShowingDetail()) { mDetailAdapter.updateItems(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +2 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,6 @@ import com.android.systemui.util.Utils.DisableStateTracker; import java.util.ArrayList; import java.util.List; import java.util.Objects; // Intimately tied to the design of res/layout/signal_cluster_view.xml public class SignalClusterView extends LinearLayout implements NetworkControllerImpl.SignalCallback, Loading Loading @@ -277,7 +276,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController @Override public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, boolean activityIn, boolean activityOut, String description, boolean isTransient) { boolean activityIn, boolean activityOut, String description, boolean isTransient, String secondaryLabel) { mWifiVisible = statusIcon.visible && !mBlockWifi; mWifiStrengthId = statusIcon.icon; mWifiDescription = statusIcon.contentDescription; Loading Loading
packages/SettingsLib/res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,12 @@ <!-- Summary for Connected wifi network without internet --> <string name="wifi_connected_no_internet">Connected, no internet</string> <!-- Wi-Fi status indicating that the current network is connected, but has no internet access. --> <string name="wifi_status_no_internet">No internet</string> <!-- Wi-Fi status indicating that the current network is connected requires sign in to access the internet. --> <string name="wifi_status_sign_in_required">Sign in required</string> <!-- Summary for networks failing to connect due to association rejection status 17, AP full --> <string name="wifi_ap_unable_to_handle_new_sta">Access point temporarily full</string> Loading
packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +15 −5 Original line number Diff line number Diff line Loading @@ -1154,7 +1154,7 @@ public class AccessPoint implements Comparable<AccessPoint> { @Nullable @Speed private int roundToClosestSpeedEnum(int speed) { private static int roundToClosestSpeedEnum(int speed) { if (speed < Speed.SLOW) { return Speed.NONE; } else if (speed < (Speed.SLOW + Speed.MODERATE) / 2) { Loading @@ -1170,21 +1170,31 @@ public class AccessPoint implements Comparable<AccessPoint> { @Nullable String getSpeedLabel(@Speed int speed) { return getSpeedLabel(mContext, speed); } private static String getSpeedLabel(Context context, int speed) { switch (speed) { case Speed.VERY_FAST: return mContext.getString(R.string.speed_label_very_fast); return context.getString(R.string.speed_label_very_fast); case Speed.FAST: return mContext.getString(R.string.speed_label_fast); return context.getString(R.string.speed_label_fast); case Speed.MODERATE: return mContext.getString(R.string.speed_label_okay); return context.getString(R.string.speed_label_okay); case Speed.SLOW: return mContext.getString(R.string.speed_label_slow); return context.getString(R.string.speed_label_slow); case Speed.NONE: default: return null; } } /** Return the speed label for a {@link ScoredNetwork} at the specified {@code rssi} level. */ @Nullable public static String getSpeedLabel(Context context, ScoredNetwork scoredNetwork, int rssi) { return getSpeedLabel(context, roundToClosestSpeedEnum(scoredNetwork.calculateBadge(rssi))); } /** Return true if the current RSSI is reachable, and false otherwise. */ public boolean isReachable() { return mRssi != UNREACHABLE_RSSI; Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +108 −21 Original line number Diff line number Diff line Loading @@ -10,28 +10,90 @@ package com.android.settingslib.wifi; import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkKey; import android.net.NetworkRequest; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; import android.net.wifi.WifiSsid; import android.os.Handler; import android.os.Looper; import java.util.List; import com.android.settingslib.R; public class WifiStatusTracker { import java.util.List; public class WifiStatusTracker extends ConnectivityManager.NetworkCallback { private final Context mContext; private final WifiNetworkScoreCache mWifiNetworkScoreCache; private final WifiManager mWifiManager; private final NetworkScoreManager mNetworkScoreManager; private final ConnectivityManager mConnectivityManager; private final WifiNetworkScoreCache.CacheListener mCacheListener = new WifiNetworkScoreCache.CacheListener(new Handler(Looper.getMainLooper())) { @Override public void networkCacheUpdated(List<ScoredNetwork> updatedNetworks) { updateStatusLabel(); mCallback.run(); } }; private final NetworkRequest mNetworkRequest = new NetworkRequest.Builder() .clearCapabilities().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(); private final ConnectivityManager.NetworkCallback mNetworkCallback = new ConnectivityManager .NetworkCallback() { @Override public void onCapabilitiesChanged( Network network, NetworkCapabilities networkCapabilities) { updateStatusLabel(); mCallback.run(); } }; private final Runnable mCallback; private WifiInfo mWifiInfo; public boolean enabled; public int state; public boolean connected; public boolean connecting; public String ssid; public int rssi; public int level; public String statusLabel; public WifiStatusTracker(WifiManager wifiManager) { public WifiStatusTracker(Context context, WifiManager wifiManager, NetworkScoreManager networkScoreManager, ConnectivityManager connectivityManager, Runnable callback) { mContext = context; mWifiManager = wifiManager; mWifiNetworkScoreCache = new WifiNetworkScoreCache(context); mNetworkScoreManager = networkScoreManager; mConnectivityManager = connectivityManager; mCallback = callback; } public void setListening(boolean listening) { if (listening) { mNetworkScoreManager.registerNetworkScoreCache(NetworkKey.TYPE_WIFI, mWifiNetworkScoreCache, NetworkScoreManager.CACHE_FILTER_CURRENT_NETWORK); mWifiNetworkScoreCache.registerListener(mCacheListener); mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback); } else { mNetworkScoreManager.unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, mWifiNetworkScoreCache); mWifiNetworkScoreCache.unregisterListener(); mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); } } public void handleBroadcast(Intent intent) { Loading @@ -40,32 +102,57 @@ public class WifiStatusTracker { state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN); enabled = state == WifiManager.WIFI_STATE_ENABLED; enabled = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN) == WifiManager.WIFI_STATE_ENABLED; } else if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { final NetworkInfo networkInfo = (NetworkInfo) final NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); connecting = networkInfo != null && !networkInfo.isConnected() && networkInfo.isConnectedOrConnecting(); connected = networkInfo != null && networkInfo.isConnected(); // If Connected grab the signal strength and ssid. if (connected) { WifiInfo info = mWifiManager.getConnectionInfo(); if (info != null) { ssid = getValidSsid(info); } else { mWifiInfo = null; ssid = null; if (connected) { mWifiInfo = mWifiManager.getConnectionInfo(); if (mWifiInfo != null) { ssid = getValidSsid(mWifiInfo); updateRssi(mWifiInfo.getRssi()); maybeRequestNetworkScore(); } } else if (!connected) { ssid = null; } updateStatusLabel(); } else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) { // Default to -200 as its below WifiManager.MIN_RSSI. rssi = intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200); level = WifiManager.calculateSignalLevel(rssi, 5); updateRssi(intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -200)); updateStatusLabel(); } } private void updateRssi(int newRssi) { rssi = newRssi; level = WifiManager.calculateSignalLevel(rssi, WifiManager.RSSI_LEVELS); } private void maybeRequestNetworkScore() { NetworkKey networkKey = NetworkKey.createFromWifiInfo(mWifiInfo); if (mWifiNetworkScoreCache.getScoredNetwork(networkKey) == null) { mNetworkScoreManager.requestScores(new NetworkKey[]{ networkKey }); } } private void updateStatusLabel() { final NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(mWifiManager.getCurrentNetwork()); if (networkCapabilities != null) { if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) { statusLabel = mContext.getString(R.string.wifi_status_sign_in_required); return; } else if (!networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED)) { statusLabel = mContext.getString(R.string.wifi_status_no_internet); return; } } ScoredNetwork scoredNetwork = mWifiNetworkScoreCache.getScoredNetwork(NetworkKey.createFromWifiInfo(mWifiInfo)); statusLabel = scoredNetwork == null ? null : AccessPoint.getSpeedLabel(mContext, scoredNetwork, rssi); } private String getValidSsid(WifiInfo info) { Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java +14 −11 Original line number Diff line number Diff line Loading @@ -150,8 +150,8 @@ public class WifiTile extends QSTileImpl<SignalState> { cb = mSignalCallback.mInfo; } boolean transientEnabling = arg == ARG_SHOW_TRANSIENT_ENABLING; boolean wifiConnected = cb.enabled && (cb.wifiSignalIconId > 0) && (cb.enabledDesc != null); boolean wifiNotConnected = (cb.wifiSignalIconId > 0) && (cb.enabledDesc == null); boolean wifiConnected = cb.enabled && (cb.wifiSignalIconId > 0) && (cb.ssid != null); boolean wifiNotConnected = (cb.wifiSignalIconId > 0) && (cb.ssid == null); boolean enabledChanging = state.value != cb.enabled; if (enabledChanging) { mDetailAdapter.setItemsVisible(cb.enabled); Loading @@ -163,7 +163,7 @@ public class WifiTile extends QSTileImpl<SignalState> { } state.slash.isSlashed = false; boolean isTransient = transientEnabling || cb.isTransient; state.secondaryLabel = getSecondaryLabel(isTransient); state.secondaryLabel = getSecondaryLabel(isTransient, cb.statusLabel); state.state = Tile.STATE_ACTIVE; state.dualTarget = true; state.value = transientEnabling || cb.enabled; Loading @@ -181,7 +181,7 @@ public class WifiTile extends QSTileImpl<SignalState> { state.label = r.getString(R.string.quick_settings_wifi_label); } else if (wifiConnected) { state.icon = ResourceIcon.get(cb.wifiSignalIconId); state.label = removeDoubleQuotes(cb.enabledDesc); state.label = removeDoubleQuotes(cb.ssid); } else if (wifiNotConnected) { state.icon = ResourceIcon.get(R.drawable.ic_qs_wifi_disconnected); state.label = r.getString(R.string.quick_settings_wifi_label); Loading @@ -194,7 +194,7 @@ public class WifiTile extends QSTileImpl<SignalState> { if (state.value) { if (wifiConnected) { minimalContentDescription.append(cb.wifiSignalContentDescription).append(","); minimalContentDescription.append(removeDoubleQuotes(cb.enabledDesc)); minimalContentDescription.append(removeDoubleQuotes(cb.ssid)); } } state.contentDescription = minimalContentDescription.toString(); Loading @@ -203,10 +203,10 @@ public class WifiTile extends QSTileImpl<SignalState> { state.expandedAccessibilityClassName = Switch.class.getName(); } private CharSequence getSecondaryLabel(boolean isTransient) { private CharSequence getSecondaryLabel(boolean isTransient, String statusLabel) { return isTransient ? mContext.getString(R.string.quick_settings_wifi_secondary_label_transient) : null; : statusLabel; } @Override Loading Loading @@ -246,11 +246,12 @@ public class WifiTile extends QSTileImpl<SignalState> { boolean enabled; boolean connected; int wifiSignalIconId; String enabledDesc; String ssid; boolean activityIn; boolean activityOut; String wifiSignalContentDescription; boolean isTransient; public String statusLabel; @Override public String toString() { Loading @@ -258,7 +259,7 @@ public class WifiTile extends QSTileImpl<SignalState> { .append("enabled=").append(enabled) .append(",connected=").append(connected) .append(",wifiSignalIconId=").append(wifiSignalIconId) .append(",enabledDesc=").append(enabledDesc) .append(",ssid=").append(ssid) .append(",activityIn=").append(activityIn) .append(",activityOut=").append(activityOut) .append(",wifiSignalContentDescription=").append(wifiSignalContentDescription) Loading @@ -272,16 +273,18 @@ public class WifiTile extends QSTileImpl<SignalState> { @Override public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, boolean activityIn, boolean activityOut, String description, boolean isTransient) { boolean activityIn, boolean activityOut, String description, boolean isTransient, String statusLabel) { if (DEBUG) Log.d(TAG, "onWifiSignalChanged enabled=" + enabled); mInfo.enabled = enabled; mInfo.connected = qsIcon.visible; mInfo.wifiSignalIconId = qsIcon.icon; mInfo.enabledDesc = description; mInfo.ssid = description; mInfo.activityIn = activityIn; mInfo.activityOut = activityOut; mInfo.wifiSignalContentDescription = qsIcon.contentDescription; mInfo.isTransient = isTransient; mInfo.statusLabel = statusLabel; if (isShowingDetail()) { mDetailAdapter.updateItems(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +2 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,6 @@ import com.android.systemui.util.Utils.DisableStateTracker; import java.util.ArrayList; import java.util.List; import java.util.Objects; // Intimately tied to the design of res/layout/signal_cluster_view.xml public class SignalClusterView extends LinearLayout implements NetworkControllerImpl.SignalCallback, Loading Loading @@ -277,7 +276,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController @Override public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, boolean activityIn, boolean activityOut, String description, boolean isTransient) { boolean activityIn, boolean activityOut, String description, boolean isTransient, String secondaryLabel) { mWifiVisible = statusIcon.visible && !mBlockWifi; mWifiStrengthId = statusIcon.icon; mWifiDescription = statusIcon.contentDescription; Loading