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

Commit 38a8ec0d authored by Ye Wen's avatar Ye Wen Committed by Android Git Automerger
Browse files

am a7d1baac: Merge "Infer legacy network type for ConnectivityManager.requestNetwork" into lmp-dev

* commit 'a7d1baac96f73a64aa6e76a494724c2ed29a5456':
  Infer legacy network type for ConnectivityManager.requestNetwork
parents a6de6777 e5ebd4bc
Loading
Loading
Loading
Loading
+62 −3
Original line number Diff line number Diff line
@@ -1084,6 +1084,65 @@ public class ConnectivityManager {
        return null;
    }

    private int inferLegacyTypeForNetworkCapabilities(NetworkCapabilities netCap) {
        if (netCap == null) {
            return TYPE_NONE;
        }
        if (!netCap.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
            return TYPE_NONE;
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_CBS)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableCBS"))) {
                return TYPE_MOBILE_CBS;
            } else {
                return TYPE_NONE;
            }
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableIMS"))) {
                return TYPE_MOBILE_IMS;
            } else {
                return TYPE_NONE;
            }
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableFOTA"))) {
                return TYPE_MOBILE_FOTA;
            } else {
                return TYPE_NONE;
            }
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_DUN)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableDUN"))) {
                return TYPE_MOBILE_DUN;
            } else {
                return TYPE_NONE;
            }
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableSUPL"))) {
                return TYPE_MOBILE_SUPL;
            } else {
                return TYPE_NONE;
            }
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableMMS"))) {
                return TYPE_MOBILE_MMS;
            } else {
                return TYPE_NONE;
            }
        }
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
            if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableHIPRI"))) {
                return TYPE_MOBILE_HIPRI;
            } else {
                return TYPE_NONE;
            }
        }
        return TYPE_NONE;
    }

    private int legacyTypeForNetworkCapabilities(NetworkCapabilities netCap) {
        if (netCap == null) return TYPE_NONE;
        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_CBS)) {
@@ -2344,7 +2403,7 @@ public class ConnectivityManager {
     */
    public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback) {
        sendRequestForNetwork(request.networkCapabilities, networkCallback, 0,
                REQUEST, TYPE_NONE);
                REQUEST, inferLegacyTypeForNetworkCapabilities(request.networkCapabilities));
    }

    /**
@@ -2366,7 +2425,7 @@ public class ConnectivityManager {
    public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback,
            int timeoutMs) {
        sendRequestForNetwork(request.networkCapabilities, networkCallback, timeoutMs,
                REQUEST, TYPE_NONE);
                REQUEST, inferLegacyTypeForNetworkCapabilities(request.networkCapabilities));
    }

    /**