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

Commit e5ebd4bc authored by Ye Wen's avatar Ye Wen Committed by Android (Google) Code Review
Browse files

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

parents 8ed4d5ac b87875eb
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));
    }

    /**