Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7094d220 authored by Sanket Padawe's avatar Sanket Padawe
Browse files

Adding "Connected, no Internet" string in Wifi nw summary.

Bug: 17380953
Change-Id: I9664bcbf33832fe722e7d2b3125939287ee98098
parent 24ea865f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -72,6 +72,9 @@
    <!-- Status message of Wi-Fi when network has matching passpoint credentials. [CHAR LIMIT=NONE] -->
    <string name="available_via_passpoint">Available via %1$s</string>

    <!-- Summary for Connected wifi network without internet -->
    <string name="wifi_connected_no_internet">Connected, no Internet</string>

    <!-- Bluetooth settings.  Message when a device is disconnected -->
    <string name="bluetooth_disconnected">Disconnected</string>
    <!-- Bluetooth settings.  Message when disconnecting from a device -->
+25 −0
Original line number Diff line number Diff line
@@ -17,9 +17,13 @@
package com.android.settingslib.wifi;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
import android.net.NetworkInfo.State;
import android.net.wifi.IWifiManager;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration.KeyMgmt;
@@ -27,6 +31,8 @@ import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;
import android.util.LruCache;

@@ -700,6 +706,25 @@ public class AccessPoint implements Comparable<AccessPoint> {
            }
        }

        // Case when there is wifi connected without internet connectivity.
        final ConnectivityManager cm = (ConnectivityManager)
                context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (state == DetailedState.CONNECTED) {
            IWifiManager wifiManager = IWifiManager.Stub.asInterface(
                    ServiceManager.getService(Context.WIFI_SERVICE));
            Network nw;

            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);
            }
        }

        String[] formats = context.getResources().getStringArray((ssid == null)
                ? R.array.wifi_status : R.array.wifi_status_with_ssid);
        int index = state.ordinal();
+7 −1
Original line number Diff line number Diff line
@@ -1141,7 +1141,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
        NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
        if (nai != null) {
            synchronized (nai) {
                return new NetworkCapabilities(nai.networkCapabilities);
                NetworkCapabilities nc = new NetworkCapabilities(nai.networkCapabilities);
                if (nai.lastValidated) {
                    nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
                } else {
                    nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
                }
                return nc;
            }
        }
        return null;
+3 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.net.wifi.WifiChannel;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConnectionStatistics;
import android.net.wifi.WifiActivityEnergyInfo;
import android.net.Network;

import android.net.DhcpInfo;

@@ -168,5 +169,7 @@ interface IWifiManager
    void disableEphemeralNetwork(String SSID);

    void factoryReset();

    Network getCurrentNetwork();
}
+13 −0
Original line number Diff line number Diff line
@@ -2804,4 +2804,17 @@ public class WifiManager {
        } catch (RemoteException e) {
        }
    }

    /**
     * Get Network object of current wifi network
     * @return Get Network object of current wifi network
     * @hide
     */
    public Network getCurrentNetwork() {
        try {
            return mService.getCurrentNetwork();
        } catch (RemoteException e) {
            return null;
        }
    }
}