OSDN Git Service

Modify SettingsLib for partial connectivity
authorlucaslin <lucaslin@google.com>
Tue, 12 Mar 2019 09:52:15 +0000 (17:52 +0800)
committerLucas Lin <lucaslin@google.com>
Mon, 18 Mar 2019 08:20:44 +0000 (08:20 +0000)
Add partial connectivity related settings in SettingsLib.

Bug: 113450764
Bug: 128489091
Test: 1. Build pass.
      2. Fake partial connectivity case for testing.

Change-Id: I4791abe9351c62d9549ada383aa4cc8aa34ddaf2

packages/SettingsLib/res/values/strings.xml
packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java

index bf97d77..1fbd36c 100644 (file)
     <!-- Summary for Connected wifi network without internet -->
     <string name="wifi_connected_no_internet">Connected, no internet</string>
 
+    <!-- Summary for connected wifi network with partial internet connectivity [CHAR LIMIT=50] -->
+    <string name="wifi_limited_connection">Limited connection</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>
 
index 800c401..3acbcd3 100644 (file)
@@ -1424,6 +1424,9 @@ public class AccessPoint implements Comparable<AccessPoint> {
                     int id = context.getResources()
                             .getIdentifier("network_available_sign_in", "string", "android");
                     return context.getString(id);
+                } else if (nc.hasCapability(
+                        NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
+                    return context.getString(R.string.wifi_limited_connection);
                 } else if (!nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
                     return context.getString(R.string.wifi_connected_no_internet);
                 }
index 2ab369c..5352936 100644 (file)
@@ -11,6 +11,7 @@
 package com.android.settingslib.wifi;
 
 import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
 
 import android.content.Context;
@@ -158,6 +159,9 @@ public class WifiStatusTracker extends ConnectivityManager.NetworkCallback {
             if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) {
                 statusLabel = mContext.getString(R.string.wifi_status_sign_in_required);
                 return;
+            } else if (networkCapabilities.hasCapability(NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
+                statusLabel = mContext.getString(R.string.wifi_limited_connection);
+                return;
             } else if (!networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED)) {
                 statusLabel = mContext.getString(R.string.wifi_status_no_internet);
                 return;