Display "Sign into network" in settings when on a captive portal.
Test: Manually observed UI when connected to captive portal.
Bug: 33532675
Change-Id: I3906cd7c13f7bb14242d8a4ec1ca37febccee8c6
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index 234ae71..28575a9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -790,16 +790,19 @@
if (state == DetailedState.CONNECTED) {
IWifiManager wifiManager = IWifiManager.Stub.asInterface(
ServiceManager.getService(Context.WIFI_SERVICE));
- Network nw;
+ NetworkCapabilities nc = null;
try {
- nw = wifiManager.getCurrentNetwork();
- } catch (RemoteException e) {
- nw = null;
- }
- NetworkCapabilities nc = cm.getNetworkCapabilities(nw);
- if (nc != null && !nc.hasCapability(nc.NET_CAPABILITY_VALIDATED)) {
- return context.getString(R.string.wifi_connected_no_internet);
+ nc = cm.getNetworkCapabilities(wifiManager.getCurrentNetwork());
+ } catch (RemoteException e) {}
+
+ if (nc != null) {
+ if (nc.hasCapability(nc.NET_CAPABILITY_CAPTIVE_PORTAL)) {
+ return context.getString(
+ com.android.internal.R.string.network_available_sign_in);
+ } else if (!nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
+ return context.getString(R.string.wifi_connected_no_internet);
+ }
}
}
if (state == null) {