From 1317e049f5657177f3ed1af8a7dbe815c47e1a81 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 13 Dec 2016 13:30:07 +0900 Subject: [PATCH] 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 --- .../android/settingslib/wifi/AccessPoint.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index 234ae712c49e0..28575a9c6decb 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 @@ public class AccessPoint implements Comparable { 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) {