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

Commit 938180e2 authored by paulhu's avatar paulhu
Browse files

Support radio HAL V1.4 SetupDataCallResult and DataCallFailCause

For exposing more data call failed cause from modem, add more
cause definitions in radio HAL V1.4 and adjust some related
parameters in SetupDataCallResult. Update frameworks related
files to fulfill V1.4 modification.

Bug: 113505704
Test: 1. atest FrameworksTelephonyTests
      2. Manually test data call functions

Change-Id: I1e8b867b7d13f0e0b96b28d94169ea27bf97764d
parent be2a0894
Loading
Loading
Loading
Loading
+528 −0
Original line number Diff line number Diff line
@@ -599,6 +599,10 @@ enum PdpType {
  PDP_TYPE_IPV4V6 = 3;

  PDP_TYPE_PPP = 4;

  PDP_TYPE_NON_IP = 5;

  PDP_TYPE_UNSTRUCTURED = 6;
}

// The information about packet data connection
@@ -764,6 +768,8 @@ message TelephonyEvent {

      PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 46;

      PDP_FAIL_ACTIVATION_REJECTED_BCM_VIOLATION = 48;

      PDP_FAIL_ONLY_IPV4_ALLOWED = 50;

      PDP_FAIL_ONLY_IPV6_ALLOWED = 51;
@@ -776,6 +782,16 @@ message TelephonyEvent {

      PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55;

      PDP_FAIL_COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56;

      PDP_FAIL_ONLY_IPV4V6_ALLOWED = 57;

      PDP_FAIL_ONLY_NON_IP_ALLOWED = 58;

      PDP_FAIL_UNSUPPORTED_QCI_VALUE = 59;

      PDP_FAIL_BEARER_HANDLING_NOT_SUPPORTED = 60;

      PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 65;

      PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 66;
@@ -820,6 +836,518 @@ message TelephonyEvent {

      PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 122;

      PDP_FAIL_INVALID_DNS_ADDR = 123;

      PDP_FAIL_INVALID_PCSCF_OR_DNS_ADDRESS = 124;

      PDP_FAIL_CALL_PREEMPT_BY_EMERGENCY_APN = 127;

      PDP_FAIL_UE_INITIATED_DETACH_OR_DISCONNECT = 128;

      PDP_FAIL_MIP_FA_REASON_UNSPECIFIED = 2000;

      PDP_FAIL_MIP_FA_ADMIN_PROHIBITED = 2001;

      PDP_FAIL_MIP_FA_INSUFFICIENT_RESOURCES = 2002;

      PDP_FAIL_MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2003;

      PDP_FAIL_MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 2004;

      PDP_FAIL_MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 2005;

      PDP_FAIL_MIP_FA_MALFORMED_REQUEST = 2006;

      PDP_FAIL_MIP_FA_MALFORMED_REPLY = 2007;

      PDP_FAIL_MIP_FA_ENCAPSULATION_UNAVAILABLE = 2008;

      PDP_FAIL_MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 2009;

      PDP_FAIL_MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 2010;

      PDP_FAIL_MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 2011;

      PDP_FAIL_MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 2012;

      PDP_FAIL_MIP_FA_MISSING_NAI = 2013;

      PDP_FAIL_MIP_FA_MISSING_HOME_AGENT = 2014;

      PDP_FAIL_MIP_FA_MISSING_HOME_ADDRESS = 2015;

      PDP_FAIL_MIP_FA_UNKNOWN_CHALLENGE = 2016;

      PDP_FAIL_MIP_FA_MISSING_CHALLENGE = 2017;

      PDP_FAIL_MIP_FA_STALE_CHALLENGE = 2018;

      PDP_FAIL_MIP_HA_REASON_UNSPECIFIED = 2019;

      PDP_FAIL_MIP_HA_ADMIN_PROHIBITED = 2020;

      PDP_FAIL_MIP_HA_INSUFFICIENT_RESOURCES = 2021;

      PDP_FAIL_MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2022;

      PDP_FAIL_MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 2023;

      PDP_FAIL_MIP_HA_REGISTRATION_ID_MISMATCH = 2024;

      PDP_FAIL_MIP_HA_MALFORMED_REQUEST = 2025;

      PDP_FAIL_MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 2026;

      PDP_FAIL_MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 2027;

      PDP_FAIL_MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 2028;

      PDP_FAIL_MIP_HA_ENCAPSULATION_UNAVAILABLE = 2029;

      PDP_FAIL_CLOSE_IN_PROGRESS = 2030;

      PDP_FAIL_NETWORK_INITIATED_TERMINATION = 2031;

      PDP_FAIL_MODEM_APP_PREEMPTED = 2032;

      PDP_FAIL_PDN_IPV4_CALL_DISALLOWED = 2033;

      PDP_FAIL_PDN_IPV4_CALL_THROTTLED = 2034;

      PDP_FAIL_PDN_IPV6_CALL_DISALLOWED = 2035;

      PDP_FAIL_PDN_IPV6_CALL_THROTTLED = 2036;

      PDP_FAIL_MODEM_RESTART = 2037;

      PDP_FAIL_PDP_PPP_NOT_SUPPORTED = 2038;

      PDP_FAIL_UNPREFERRED_RAT = 2039;

      PDP_FAIL_PHYSICAL_LINK_CLOSE_IN_PROGRESS = 2040;

      PDP_FAIL_APN_PENDING_HANDOVER = 2041;

      PDP_FAIL_PROFILE_BEARER_INCOMPATIBLE = 2042;

      PDP_FAIL_SIM_CARD_CHANGED = 2043;

      PDP_FAIL_LOW_POWER_MODE_OR_POWERING_DOWN = 2044;

      PDP_FAIL_APN_DISABLED = 2045;

      PDP_FAIL_MAX_PPP_INACTIVITY_TIMER_EXPIRED = 2046;

      PDP_FAIL_IPV6_ADDRESS_TRANSFER_FAILED = 2047;

      PDP_FAIL_TRAT_SWAP_FAILED = 2048;

      PDP_FAIL_EHRPD_TO_HRPD_FALLBACK = 2049;

      PDP_FAIL_MIP_CONFIG_FAILURE = 2050;

      PDP_FAIL_PDN_INACTIVITY_TIMER_EXPIRED = 2051;

      PDP_FAIL_MAX_IPV4_CONNECTIONS = 2052;

      PDP_FAIL_MAX_IPV6_CONNECTIONS = 2053;

      PDP_FAIL_APN_MISMATCH = 2054;

      PDP_FAIL_IP_VERSION_MISMATCH = 2055;

      PDP_FAIL_DUN_CALL_DISALLOWED = 2056;

      PDP_FAIL_INTERNAL_EPC_NONEPC_TRANSITION = 2057;

      PDP_FAIL_INTERFACE_IN_USE = 2058;

      PDP_FAIL_APN_DISALLOWED_ON_ROAMING = 2059;

      PDP_FAIL_APN_PARAMETERS_CHANGED = 2060;

      PDP_FAIL_NULL_APN_DISALLOWED = 2061;

      PDP_FAIL_THERMAL_MITIGATION = 2062;

      PDP_FAIL_DATA_SETTINGS_DISABLED = 2063;

      PDP_FAIL_DATA_ROAMING_SETTINGS_DISABLED = 2064;

      PDP_FAIL_DDS_SWITCHED = 2065;

      PDP_FAIL_FORBIDDEN_APN_NAME = 2066;

      PDP_FAIL_DDS_SWITCH_IN_PROGRESS = 2067;

      PDP_FAIL_CALL_DISALLOWED_IN_ROAMING = 2068;

      PDP_FAIL_NON_IP_NOT_SUPPORTED = 2069;

      PDP_FAIL_PDN_NON_IP_CALL_THROTTLED = 2070;

      PDP_FAIL_PDN_NON_IP_CALL_DISALLOWED = 2071;

      PDP_FAIL_CDMA_LOCK = 2072;

      PDP_FAIL_CDMA_INTERCEPT = 2073;

      PDP_FAIL_CDMA_REORDER = 2074;

      PDP_FAIL_CDMA_RELEASE_DUE_TO_SO_REJECTION = 2075;

      PDP_FAIL_CDMA_INCOMING_CALL = 2076;

      PDP_FAIL_CDMA_ALERT_STOP = 2077;

      PDP_FAIL_CHANNEL_ACQUISITION_FAILURE = 2078;

      PDP_FAIL_MAX_ACCESS_PROBE = 2079;

      PDP_FAIL_CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 2080;

      PDP_FAIL_NO_RESPONSE_FROM_BASE_STATION = 2081;

      PDP_FAIL_REJECTED_BY_BASE_STATION = 2082;

      PDP_FAIL_CONCURRENT_SERVICES_INCOMPATIBLE = 2083;

      PDP_FAIL_NO_CDMA_SERVICE = 2084;

      PDP_FAIL_RUIM_NOT_PRESENT = 2085;

      PDP_FAIL_CDMA_RETRY_ORDER = 2086;

      PDP_FAIL_ACCESS_BLOCK = 2087;

      PDP_FAIL_ACCESS_BLOCK_ALL = 2088;

      PDP_FAIL_IS707B_MAX_ACCESS_PROBES = 2089;

      PDP_FAIL_THERMAL_EMERGENCY = 2090;

      PDP_FAIL_CONCURRENT_SERVICES_NOT_ALLOWED = 2091;

      PDP_FAIL_INCOMING_CALL_REJECTED = 2092;

      PDP_FAIL_NO_SERVICE_ON_GATEWAY = 2093;

      PDP_FAIL_NO_GPRS_CONTEXT = 2094;

      PDP_FAIL_ILLEGAL_MS = 2095;

      PDP_FAIL_ILLEGAL_ME = 2096;

      PDP_FAIL_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 2097;

      PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED = 2098;

      PDP_FAIL_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 2099;

      PDP_FAIL_IMPLICITLY_DETACHED = 2100;

      PDP_FAIL_PLMN_NOT_ALLOWED = 2101;

      PDP_FAIL_LOCATION_AREA_NOT_ALLOWED = 2102;

      PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 2103;

      PDP_FAIL_PDP_DUPLICATE = 2104;

      PDP_FAIL_UE_RAT_CHANGE = 2105;

      PDP_FAIL_CONGESTION = 2106;

      PDP_FAIL_NO_PDP_CONTEXT_ACTIVATED = 2107;

      PDP_FAIL_ACCESS_CLASS_DSAC_REJECTION = 2108;

      PDP_FAIL_PDP_ACTIVATE_MAX_RETRY_FAILED = 2109;

      PDP_FAIL_RADIO_ACCESS_BEARER_FAILURE = 2110;

      PDP_FAIL_ESM_UNKNOWN_EPS_BEARER_CONTEXT = 2111;

      PDP_FAIL_DRB_RELEASED_BY_RRC = 2112;

      PDP_FAIL_CONNECTION_RELEASED = 2113;

      PDP_FAIL_EMM_DETACHED = 2114;

      PDP_FAIL_EMM_ATTACH_FAILED = 2115;

      PDP_FAIL_EMM_ATTACH_STARTED = 2116;

      PDP_FAIL_LTE_NAS_SERVICE_REQUEST_FAILED = 2117;

      PDP_FAIL_DUPLICATE_BEARER_ID = 2118;

      PDP_FAIL_ESM_COLLISION_SCENARIOS = 2119;

      PDP_FAIL_ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 2120;

      PDP_FAIL_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 2121;

      PDP_FAIL_ESM_BAD_OTA_MESSAGE = 2122;

      PDP_FAIL_ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 2123;

      PDP_FAIL_ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 2124;

      PDP_FAIL_DS_EXPLICIT_DEACTIVATION = 2125;

      PDP_FAIL_ESM_LOCAL_CAUSE_NONE = 2126;

      PDP_FAIL_LTE_THROTTLING_NOT_REQUIRED = 2127;

      PDP_FAIL_ACCESS_CONTROL_LIST_CHECK_FAILURE = 2128;

      PDP_FAIL_SERVICE_NOT_ALLOWED_ON_PLMN = 2129;

      PDP_FAIL_EMM_T3417_EXPIRED = 2130;

      PDP_FAIL_EMM_T3417_EXT_EXPIRED = 2131;

      PDP_FAIL_RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 2132;

      PDP_FAIL_RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 2133;

      PDP_FAIL_RRC_UPLINK_CONNECTION_RELEASE = 2134;

      PDP_FAIL_RRC_UPLINK_RADIO_LINK_FAILURE = 2135;

      PDP_FAIL_RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 2136;

      PDP_FAIL_RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 2137;

      PDP_FAIL_RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 2138;

      PDP_FAIL_RRC_CONNECTION_ACCESS_BARRED = 2139;

      PDP_FAIL_RRC_CONNECTION_CELL_RESELECTION = 2140;

      PDP_FAIL_RRC_CONNECTION_CONFIG_FAILURE = 2141;

      PDP_FAIL_RRC_CONNECTION_TIMER_EXPIRED = 2142;

      PDP_FAIL_RRC_CONNECTION_LINK_FAILURE = 2143;

      PDP_FAIL_RRC_CONNECTION_CELL_NOT_CAMPED = 2144;

      PDP_FAIL_RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 2145;

      PDP_FAIL_RRC_CONNECTION_REJECT_BY_NETWORK = 2146;

      PDP_FAIL_RRC_CONNECTION_NORMAL_RELEASE = 2147;

      PDP_FAIL_RRC_CONNECTION_RADIO_LINK_FAILURE = 2148;

      PDP_FAIL_RRC_CONNECTION_REESTABLISHMENT_FAILURE = 2149;

      PDP_FAIL_RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 2150;

      PDP_FAIL_RRC_CONNECTION_ABORT_REQUEST = 2151;

      PDP_FAIL_RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 2152;

      PDP_FAIL_NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 2153;

      PDP_FAIL_NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 2154;

      PDP_FAIL_ESM_PROCEDURE_TIME_OUT = 2155;

      PDP_FAIL_INVALID_CONNECTION_ID = 2156;

      PDP_FAIL_MAXIMIUM_NSAPIS_EXCEEDED = 2157;

      PDP_FAIL_INVALID_PRIMARY_NSAPI = 2158;

      PDP_FAIL_CANNOT_ENCODE_OTA_MESSAGE = 2159;

      PDP_FAIL_RADIO_ACCESS_BEARER_SETUP_FAILURE = 2160;

      PDP_FAIL_PDP_ESTABLISH_TIMEOUT_EXPIRED = 2161;

      PDP_FAIL_PDP_MODIFY_TIMEOUT_EXPIRED = 2162;

      PDP_FAIL_PDP_INACTIVE_TIMEOUT_EXPIRED = 2163;

      PDP_FAIL_PDP_LOWERLAYER_ERROR = 2164;

      PDP_FAIL_PDP_MODIFY_COLLISION = 2165;

      PDP_FAIL_MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166;

      PDP_FAIL_NAS_REQUEST_REJECTED_BY_NETWORK = 2167;

      PDP_FAIL_RRC_CONNECTION_INVALID_REQUEST = 2168;

      PDP_FAIL_RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 2169;

      PDP_FAIL_RRC_CONNECTION_RF_UNAVAILABLE = 2170;

      PDP_FAIL_RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 2171;

      PDP_FAIL_RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 2172;

      PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 2173;

      PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 2174;

      PDP_FAIL_RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 2175;

      PDP_FAIL_IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 2176;

      PDP_FAIL_IMEI_NOT_ACCEPTED = 2177;

      PDP_FAIL_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 2178;

      PDP_FAIL_EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 2179;

      PDP_FAIL_MSC_TEMPORARILY_NOT_REACHABLE = 2180;

      PDP_FAIL_CS_DOMAIN_NOT_AVAILABLE = 2181;

      PDP_FAIL_ESM_FAILURE = 2182;

      PDP_FAIL_MAC_FAILURE = 2183;

      PDP_FAIL_SYNCHRONIZATION_FAILURE = 2184;

      PDP_FAIL_UE_SECURITY_CAPABILITIES_MISMATCH = 2185;

      PDP_FAIL_SECURITY_MODE_REJECTED = 2186;

      PDP_FAIL_UNACCEPTABLE_NON_EPS_AUTHENTICATION = 2187;

      PDP_FAIL_CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 2188;

      PDP_FAIL_NO_EPS_BEARER_CONTEXT_ACTIVATED = 2189;

      PDP_FAIL_INVALID_EMM_STATE = 2190;

      PDP_FAIL_NAS_LAYER_FAILURE = 2191;

      PDP_FAIL_MULTIPLE_PDP_CALL_NOT_ALLOWED = 2192;

      PDP_FAIL_EMBMS_NOT_ENABLED = 2193;

      PDP_FAIL_IRAT_HANDOVER_FAILED = 2194;

      PDP_FAIL_EMBMS_REGULAR_DEACTIVATION = 2195;

      PDP_FAIL_TEST_LOOPBACK_REGULAR_DEACTIVATION = 2196;

      PDP_FAIL_LOWER_LAYER_REGISTRATION_FAILURE = 2197;

      PDP_FAIL_DATA_PLAN_EXPIRED = 2198;

      PDP_FAIL_UMTS_HANDOVER_TO_IWLAN = 2199;

      PDP_FAIL_EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 2200;

      PDP_FAIL_EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 2201;

      PDP_FAIL_EVDO_HDR_CHANGED = 2202;

      PDP_FAIL_EVDO_HDR_EXITED = 2203;

      PDP_FAIL_EVDO_HDR_NO_SESSION = 2204;

      PDP_FAIL_EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 2205;

      PDP_FAIL_EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 2206;

      PDP_FAIL_FAILED_TO_ACQUIRE_COLOCATED_HDR = 2207;

      PDP_FAIL_OTASP_COMMIT_IN_PROGRESS = 2208;

      PDP_FAIL_NO_HYBRID_HDR_SERVICE = 2209;

      PDP_FAIL_HDR_NO_LOCK_GRANTED = 2210;

      PDP_FAIL_DBM_OR_SMS_IN_PROGRESS = 2211;

      PDP_FAIL_HDR_FADE = 2212;

      PDP_FAIL_HDR_ACCESS_FAILURE = 2213;

      PDP_FAIL_UNSUPPORTED_1X_PREV = 2214;

      PDP_FAIL_LOCAL_END = 2215;

      PDP_FAIL_NO_SERVICE = 2216;

      PDP_FAIL_FADE = 2217;

      PDP_FAIL_NORMAL_RELEASE = 2218;

      PDP_FAIL_ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 2219;

      PDP_FAIL_REDIRECTION_OR_HANDOFF_IN_PROGRESS = 2220;

      PDP_FAIL_EMERGENCY_MODE = 2221;

      PDP_FAIL_PHONE_IN_USE = 2222;

      PDP_FAIL_INVALID_MODE = 2223;

      PDP_FAIL_INVALID_SIM_STATE = 2224;

      PDP_FAIL_NO_COLLOCATED_HDR = 2225;

      PDP_FAIL_UE_IS_ENTERING_POWERSAVE_MODE = 2226;

      PDP_FAIL_DUAL_SWITCH = 2227;

      PDP_FAIL_PPP_TIMEOUT = 2228;

      PDP_FAIL_PPP_AUTH_FAILURE = 2229;

      PDP_FAIL_PPP_OPTION_MISMATCH = 2230;

      PDP_FAIL_PPP_PAP_FAILURE = 2231;

      PDP_FAIL_PPP_CHAP_FAILURE = 2232;

      PDP_FAIL_PPP_CLOSE_IN_PROGRESS = 2233;

      PDP_FAIL_LIMITED_TO_IPV4 = 2234;

      PDP_FAIL_LIMITED_TO_IPV6 = 2235;

      PDP_FAIL_VSNCP_TIMEOUT = 2236;

      PDP_FAIL_VSNCP_GEN_ERROR = 2237;

      PDP_FAIL_VSNCP_APN_UNATHORIZED = 2238;

      PDP_FAIL_VSNCP_PDN_LIMIT_EXCEEDED = 2239;

      PDP_FAIL_VSNCP_NO_PDN_GATEWAY_ADDRESS = 2240;

      PDP_FAIL_VSNCP_PDN_GATEWAY_UNREACHABLE = 2241;

      PDP_FAIL_VSNCP_PDN_GATEWAY_REJECT = 2242;

      PDP_FAIL_VSNCP_INSUFFICIENT_PARAMETERS = 2243;

      PDP_FAIL_VSNCP_RESOURCE_UNAVAILABLE = 2244;

      PDP_FAIL_VSNCP_ADMINISTRATIVELY_PROHIBITED = 2245;

      PDP_FAIL_VSNCP_PDN_ID_IN_USE = 2246;

      PDP_FAIL_VSNCP_SUBSCRIBER_LIMITATION = 2247;

      PDP_FAIL_VSNCP_PDN_EXISTS_FOR_THIS_APN = 2248;

      PDP_FAIL_VSNCP_RECONNECT_NOT_ALLOWED = 2249;

      PDP_FAIL_IPV6_PREFIX_UNAVAILABLE = 2250;

      PDP_FAIL_HANDOFF_PREFERENCE_CHANGED = 2251;

      // Not mentioned in the specification
      PDP_FAIL_VOICE_REGISTRATION_FAIL = -1;

+134 −1
Original line number Diff line number Diff line
@@ -53,7 +53,9 @@ import android.hardware.radio.V1_4.SimLockMultiSimPolicy;
import android.hardware.radio.deprecated.V1_0.IOemHook;
import android.net.ConnectivityManager;
import android.net.KeepalivePacketData;
import android.net.LinkAddress;
import android.net.LinkProperties;
import android.net.NetworkUtils;
import android.os.AsyncResult;
import android.os.Build;
import android.os.Handler;
@@ -83,6 +85,7 @@ import android.telephony.SmsManager;
import android.telephony.TelephonyHistogram;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;
import android.telephony.data.DataCallResponse;
import android.telephony.data.DataProfile;
import android.telephony.data.DataService;
import android.telephony.emergency.EmergencyNumber;
@@ -1402,7 +1405,7 @@ public class RIL extends BaseCommands implements CommandsInterface {
                    radioProxy12.setupDataCall_1_2(rr.mSerial, accessNetworkType, dpi,
                            dataProfile.isPersistent(), allowRoaming, isRoaming, reason,
                            addresses, dnses);
                } else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_0)) {
                } else {
                    // IRadio V1.0 and IRadio V1.1

                    // Convert to HAL data profile
@@ -5588,6 +5591,136 @@ public class RIL extends BaseCommands implements CommandsInterface {
        return response;
    }

    /**
     * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse
     * @param dcResult setup data call result
     * @return converted DataCallResponse object
     */
    @VisibleForTesting
    public static DataCallResponse convertDataCallResult(Object dcResult) {
        if (dcResult == null) return null;

        int status, suggestedRetryTime, cid, active, mtu;
        String type, ifname;
        String[] addresses = null;
        String[] dnses = null;
        String[] gateways = null;
        List<String> pcscfs;
        if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) {
            final android.hardware.radio.V1_0.SetupDataCallResult result =
                    (android.hardware.radio.V1_0.SetupDataCallResult) dcResult;
            status = result.status;
            suggestedRetryTime = result.suggestedRetryTime;
            cid = result.cid;
            active = result.active;
            type = result.type;
            ifname = result.ifname;
            if (!TextUtils.isEmpty(result.addresses)) {
                addresses = result.addresses.split("\\s+");
            }
            if (!TextUtils.isEmpty(result.dnses)) {
                dnses = result.dnses.split("\\s+");
            }
            if (!TextUtils.isEmpty(result.gateways)) {
                gateways = result.gateways.split("\\s+");
            }
            pcscfs = new ArrayList<>(Arrays.asList(result.pcscf.trim().split("\\s+")));
            mtu = result.mtu;
        } else if (dcResult instanceof android.hardware.radio.V1_4.SetupDataCallResult) {
            final android.hardware.radio.V1_4.SetupDataCallResult result =
                    (android.hardware.radio.V1_4.SetupDataCallResult) dcResult;
            status = result.cause;
            suggestedRetryTime = result.suggestedRetryTime;
            cid = result.cid;
            active = result.active;
            type = ApnSetting.getProtocolStringFromInt(result.type);
            ifname = result.ifname;
            addresses = result.addresses.stream().toArray(String[]::new);
            dnses = result.dnses.stream().toArray(String[]::new);
            gateways = result.gateways.stream().toArray(String[]::new);
            pcscfs = result.pcscf;
            mtu = result.mtu;
        } else {
            Rlog.e(RILJ_LOG_TAG, "Unsupported SetupDataCallResult " + dcResult);
            return null;
        }

        // Process address
        List<LinkAddress> laList = new ArrayList<>();
        if (addresses != null) {
            for (String address : addresses) {
                address = address.trim();
                if (address.isEmpty()) continue;

                try {
                    LinkAddress la;
                    // Check if the address contains prefix length. If yes, LinkAddress
                    // can parse that.
                    if (address.split("/").length == 2) {
                        la = new LinkAddress(address);
                    } else {
                        InetAddress ia = NetworkUtils.numericToInetAddress(address);
                        la = new LinkAddress(ia, (ia instanceof Inet4Address) ? 32 : 128);
                    }

                    laList.add(la);
                } catch (IllegalArgumentException e) {
                    Rlog.e(RILJ_LOG_TAG, "Unknown address: " + address, e);
                }
            }
        }

        // Process dns
        List<InetAddress> dnsList = new ArrayList<>();
        if (dnses != null) {
            for (String dns : dnses) {
                dns = dns.trim();
                InetAddress ia;
                try {
                    ia = NetworkUtils.numericToInetAddress(dns);
                    dnsList.add(ia);
                } catch (IllegalArgumentException e) {
                    Rlog.e(RILJ_LOG_TAG, "Unknown dns: " + dns, e);
                }
            }
        }

        // Process gateway
        List<InetAddress> gatewayList = new ArrayList<>();
        if (gateways != null) {
            for (String gateway : gateways) {
                gateway = gateway.trim();
                InetAddress ia;
                try {
                    ia = NetworkUtils.numericToInetAddress(gateway);
                    gatewayList.add(ia);
                } catch (IllegalArgumentException e) {
                    Rlog.e(RILJ_LOG_TAG, "Unknown gateway: " + gateway, e);
                }
            }
        }

        return new DataCallResponse(status, suggestedRetryTime, cid, active, type, ifname, laList,
                dnsList, gatewayList, pcscfs, mtu);
    }

    /**
     * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse
     * @param dataCallResultList List of SetupDataCallResult defined in 1.0 or 1.4/types.hal
     * @return List of converted DataCallResponse object
     */
    @VisibleForTesting
    public static ArrayList<DataCallResponse> convertDataCallResultList(
            List<? extends Object> dataCallResultList) {
        ArrayList<DataCallResponse> response =
                new ArrayList<DataCallResponse>(dataCallResultList.size());

        for (Object obj : dataCallResultList) {
            response.add(convertDataCallResult(obj));
        }
        return response;
    }

    /**
     * @return The {@link IwlanOperationMode IWLAN operation mode}
     */
+18 −3
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ import android.hardware.radio.V1_0.CdmaT53AudioControlInfoRecord;
import android.hardware.radio.V1_0.CfData;
import android.hardware.radio.V1_0.LceDataInfo;
import android.hardware.radio.V1_0.PcoDataInfo;
import android.hardware.radio.V1_0.SetupDataCallResult;
import android.hardware.radio.V1_0.SimRefreshResult;
import android.hardware.radio.V1_0.SsInfoData;
import android.hardware.radio.V1_0.StkCcUnsolSsResult;
@@ -93,6 +92,7 @@ import android.telephony.PhysicalChannelConfig;
import android.telephony.SignalStrength;
import android.telephony.SmsMessage;
import android.telephony.TelephonyManager;
import android.telephony.data.DataCallResponse;
import android.telephony.emergency.EmergencyNumber;

import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
@@ -330,13 +330,28 @@ public class RadioIndication extends IRadioIndication.Stub {
                new AsyncResult(null, response, null));
    }

    public void dataCallListChanged(int indicationType, ArrayList<SetupDataCallResult> dcList) {
    /** Indicates current data call list. */
    public void dataCallListChanged(int indicationType,
            ArrayList<android.hardware.radio.V1_0.SetupDataCallResult> dcList) {
        mRil.processIndication(indicationType);

        if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList);

        ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList);
        mRil.mDataCallListChangedRegistrants.notifyRegistrants(
                new AsyncResult(null, dcList, null));
                new AsyncResult(null, response, null));
    }

    /** Indicates current data call list with radio HAL 1.4. */
    public void dataCallListChanged_1_4(int indicationType,
            ArrayList<android.hardware.radio.V1_4.SetupDataCallResult> dcList) {
        mRil.processIndication(indicationType);

        if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList);

        ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList);
        mRil.mDataCallListChangedRegistrants.notifyRegistrants(
                new AsyncResult(null, response, null));
    }

    public void suppSvcNotify(int indicationType, SuppSvcNotification suppSvcNotification) {
+32 −9

File changed.

Preview size limit exceeded, changes collapsed.

+4 −116

File changed.

Preview size limit exceeded, changes collapsed.

Loading