Add subtext for Wi-Fi items on Wi-Fi slice

- Sync the Wi-Fi slice items subtexts with Wi-Fi page, and add
  "Not connected" when the returned subtext is empty
- Wi-Fi slice header subtext just simply reveals on/off state
- Add a placeholder to the loading row to sync its height with other
  rows
- Show contextual Wi-Fi slice when the connected network is captive
  portal, is invalidated, or has limited connectivity

Bug: 130751985
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: I0b2715295f00edc8dd7d6d75b7fdc18263675797
This commit is contained in:
Jason Chiu
2019-05-02 12:22:22 +08:00
parent 0ea58e740d
commit 6a6787cdc0
7 changed files with 146 additions and 180 deletions

View File

@@ -17,7 +17,10 @@
package com.android.settings.wifi.slice;
import android.content.Context;
import android.net.NetworkCapabilities;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiSsid;
import android.text.TextUtils;
import android.util.Log;
@@ -69,6 +72,22 @@ public class ContextualWifiSlice extends WifiSlice {
}
private boolean hasWorkingNetwork() {
return !TextUtils.equals(getActiveSSID(), WifiSsid.NONE) && !isCaptivePortal();
return !TextUtils.equals(getActiveSSID(), WifiSsid.NONE) && hasInternetAccess();
}
private String getActiveSSID() {
if (mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
return WifiSsid.NONE;
}
return WifiInfo.removeDoubleQuotes(mWifiManager.getConnectionInfo().getSSID());
}
private boolean hasInternetAccess() {
final NetworkCapabilities nc = mConnectivityManager.getNetworkCapabilities(
mWifiManager.getCurrentNetwork());
return nc != null
&& !nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)
&& !nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)
&& nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
}
}