Create IRadioDataResponse and IRadioDataIndication
Move all RIL conversion methods into RILUtils
Test: atest RILTest
Bug: 198331673
Change-Id: Ieca47cf2b300af11593a76ed5f178893ca09583e
Merged-In: Ieca47cf2b300af11593a76ed5f178893ca09583e
diff --git a/Android.bp b/Android.bp
index 9aa92f9..bf70772 100644
--- a/Android.bp
+++ b/Android.bp
@@ -105,6 +105,12 @@
"android.hardware.radio-V1.4-java",
"android.hardware.radio-V1.5-java",
"android.hardware.radio-V1.6-java",
+ "android.hardware.radio.data-V1-java",
+ "android.hardware.radio.messaging-V1-java",
+ "android.hardware.radio.modem-V1-java",
+ "android.hardware.radio.network-V1-java",
+ "android.hardware.radio.sim-V1-java",
+ "android.hardware.radio.voice-V1-java",
"voip-common",
"ims-common",
"unsupportedappusage",
diff --git a/src/java/com/android/internal/telephony/DataIndication.java b/src/java/com/android/internal/telephony/DataIndication.java
new file mode 100644
index 0000000..9da1e7c
--- /dev/null
+++ b/src/java/com/android/internal/telephony/DataIndication.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.telephony;
+
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_DATA_CALL_LIST_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_KEEPALIVE_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_PCO_DATA;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_UNTHROTTLE_APN;
+
+import android.hardware.radio.data.IRadioDataIndication;
+import android.os.AsyncResult;
+import android.os.RemoteException;
+import android.telephony.PcoData;
+import android.telephony.data.DataCallResponse;
+
+import com.android.internal.telephony.dataconnection.KeepaliveStatus;
+
+import java.util.ArrayList;
+
+/**
+ * Interface declaring unsolicited radio indications for data APIs.
+ */
+public class DataIndication extends IRadioDataIndication.Stub {
+ RIL mRil;
+
+ DataIndication(RIL ril) {
+ mRil = ril;
+ }
+
+ /**
+ * Indicates data call contexts have changed.
+ * @param indicationType RadioIndicationType
+ * @param dcList List of SetupDataCallResult identical to that returned by getDataCallList.
+ * It is the complete list of current data contexts including new contexts that
+ * have been activated.
+ */
+ public void dataCallListChanged(int indicationType,
+ android.hardware.radio.data.SetupDataCallResult[] dcList) {
+ mRil.processIndication(indicationType);
+
+ if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList);
+ ArrayList<DataCallResponse> response = RILUtils.convertHalDataCallResultList(dcList);
+ mRil.mDataCallListChangedRegistrants.notifyRegistrants(
+ new AsyncResult(null, response, null));
+ }
+
+ /**
+ * Indicates a status update for an ongoing Keepalive session.
+ * @param indicationType RadioIndicationType
+ * @param halStatus Status of the ongoing Keepalive session
+ */
+ public void keepaliveStatus(int indicationType,
+ android.hardware.radio.data.KeepaliveStatus halStatus) {
+ mRil.processIndication(indicationType);
+
+ if (RIL.RILJ_LOGD) {
+ mRil.unsljLogRet(RIL_UNSOL_KEEPALIVE_STATUS,
+ "handle=" + halStatus.sessionHandle + " code=" + halStatus.code);
+ }
+
+ KeepaliveStatus ks = new KeepaliveStatus(halStatus.sessionHandle, halStatus.code);
+ mRil.mNattKeepaliveStatusRegistrants.notifyRegistrants(new AsyncResult(null, ks, null));
+ }
+
+ /**
+ * Indicates when there is new Carrier PCO data received for a data call.
+ * @param indicationType RadioIndicationType
+ * @param pco New PcoData
+ */
+ public void pcoData(int indicationType, android.hardware.radio.data.PcoDataInfo pco) {
+ mRil.processIndication(indicationType);
+
+ PcoData response = new PcoData(pco.cid, pco.bearerProto, pco.pcoId, pco.contents);
+
+ if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_PCO_DATA, response);
+
+ mRil.mPcoDataRegistrants.notifyRegistrants(new AsyncResult(null, response, null));
+ }
+
+ /**
+ * Stop throttling calls to setupDataCall for the given APN.
+ * @param indicationType RadioIndicationType
+ * @param apn APN to unthrottle
+ * @throws RemoteException
+ */
+ public void unthrottleApn(int indicationType, String apn) throws RemoteException {
+ mRil.processIndication(indicationType);
+
+ if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_UNTHROTTLE_APN, apn);
+
+ mRil.mApnUnthrottledRegistrants.notifyRegistrants(
+ new AsyncResult(null, apn, null));
+ }
+}
diff --git a/src/java/com/android/internal/telephony/DataResponse.java b/src/java/com/android/internal/telephony/DataResponse.java
new file mode 100644
index 0000000..1688513
--- /dev/null
+++ b/src/java/com/android/internal/telephony/DataResponse.java
@@ -0,0 +1,256 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.telephony;
+
+import android.hardware.radio.RadioError;
+import android.hardware.radio.RadioResponseInfo;
+import android.hardware.radio.data.IRadioDataResponse;
+import android.os.AsyncResult;
+import android.os.Message;
+import android.telephony.data.DataCallResponse;
+import android.telephony.data.SlicingConfig;
+
+import com.android.internal.telephony.dataconnection.KeepaliveStatus;
+
+import java.util.ArrayList;
+
+/**
+ * Interface declaring response functions to solicited radio requests for data APIs.
+ */
+public class DataResponse extends IRadioDataResponse.Stub {
+ private final RIL mRil;
+
+ public DataResponse(RIL ril) {
+ mRil = ril;
+ }
+
+ /**
+ * Helper function to send response msg
+ * @param msg Response message to be sent
+ * @param ret Return object to be included in the response message
+ */
+ private static void sendMessageResponse(Message msg, Object ret) {
+ if (msg != null) {
+ AsyncResult.forMessage(msg, ret, null);
+ msg.sendToTarget();
+ }
+ }
+
+ private void responseVoid(RadioResponseInfo responseInfo) {
+ RILRequest rr = mRil.processResponse(responseInfo);
+
+ if (rr != null) {
+ Object ret = null;
+ if (responseInfo.error == RadioError.NONE) {
+ sendMessageResponse(rr.mResult, ret);
+ }
+ mRil.processResponseDone(rr, responseInfo, ret);
+ }
+ }
+
+ /**
+ * Acknowledge the receipt of radio request sent to the vendor. This must be sent only for
+ * radio request which take long time to respond.
+ * For more details, refer https://source.android.com/devices/tech/connect/ril.html
+ * @param serial Serial no. of the request whose acknowledgement is sent.
+ */
+ public void acknowledgeRequest(int serial) {
+ mRil.processRequestAck(serial);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ * @param id The pdu session id allocated
+ */
+ public void allocatePduSessionIdResponse(RadioResponseInfo responseInfo, int id) {
+ RILRequest rr = mRil.processResponse(responseInfo);
+ if (rr != null) {
+ if (responseInfo.error == RadioError.NONE) {
+ sendMessageResponse(rr.mResult, id);
+ }
+ mRil.processResponseDone(rr, responseInfo, id);
+ }
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void cancelHandoverResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void deactivateDataCallResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ * @param dataCallResultList Response to get data call list as defined by setupDataCallResult in
+ * types.hal
+ */
+ public void getDataCallListResponse(RadioResponseInfo responseInfo,
+ android.hardware.radio.data.SetupDataCallResult[] dataCallResultList) {
+ RILRequest rr = mRil.processResponse(responseInfo);
+
+ if (rr != null) {
+ ArrayList<DataCallResponse> response =
+ RILUtils.convertHalDataCallResultList(dataCallResultList);
+ if (responseInfo.error == RadioError.NONE) {
+ sendMessageResponse(rr.mResult, response);
+ }
+ mRil.processResponseDone(rr, responseInfo, response);
+ }
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ * @param slicingConfig Current slicing configuration
+ */
+ public void getSlicingConfigResponse(RadioResponseInfo responseInfo,
+ android.hardware.radio.data.SlicingConfig slicingConfig) {
+ RILRequest rr = mRil.processResponse(responseInfo);
+
+ if (rr != null) {
+ SlicingConfig ret = RILUtils.convertHalSlicingConfig(slicingConfig);
+ if (responseInfo.error == RadioError.NONE) {
+ sendMessageResponse(rr.mResult, ret);
+ }
+ mRil.processResponseDone(rr, responseInfo, ret);
+ }
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void releasePduSessionIdResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void setDataAllowedResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void setDataProfileResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void setDataThrottlingResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void setInitialAttachApnResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ * @param setupDataCallResult Response to data call setup as defined by SetupDataCallResult
+ */
+ public void setupDataCallResponse(RadioResponseInfo responseInfo,
+ android.hardware.radio.data.SetupDataCallResult setupDataCallResult) {
+ RILRequest rr = mRil.processResponse(responseInfo);
+
+ if (rr != null) {
+ DataCallResponse response = RILUtils.convertHalDataCallResult(setupDataCallResult);
+ if (responseInfo.error == RadioError.NONE) {
+ sendMessageResponse(rr.mResult, response);
+ }
+ mRil.processResponseDone(rr, responseInfo, response);
+ }
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void startHandoverResponse(RadioResponseInfo responseInfo) {
+ responseVoid(responseInfo);
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ * @param keepaliveStatus status of the keepalive with a handle for the session
+ */
+ public void startKeepaliveResponse(RadioResponseInfo responseInfo,
+ android.hardware.radio.data.KeepaliveStatus keepaliveStatus) {
+
+ RILRequest rr = mRil.processResponse(responseInfo);
+ if (rr == null) return;
+
+ KeepaliveStatus ret = null;
+ try {
+ switch(responseInfo.error) {
+ case RadioError.NONE:
+ int convertedStatus = RILUtils.convertHalKeepaliveStatusCode(
+ keepaliveStatus.code);
+ if (convertedStatus < 0) {
+ ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNSUPPORTED);
+ } else {
+ ret = new KeepaliveStatus(keepaliveStatus.sessionHandle, convertedStatus);
+ }
+ // If responseInfo.error is NONE, response function sends the response message
+ // even if result is actually an error.
+ sendMessageResponse(rr.mResult, ret);
+ break;
+ case RadioError.REQUEST_NOT_SUPPORTED:
+ ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNSUPPORTED);
+ break;
+ case RadioError.NO_RESOURCES:
+ ret = new KeepaliveStatus(KeepaliveStatus.ERROR_NO_RESOURCES);
+ break;
+ default:
+ ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNKNOWN);
+ break;
+ }
+ } finally {
+ // If responseInfo.error != NONE, the processResponseDone sends the response message.
+ mRil.processResponseDone(rr, responseInfo, ret);
+ }
+ }
+
+ /**
+ * @param responseInfo Response info struct containing response type, serial no. and error
+ */
+ public void stopKeepaliveResponse(RadioResponseInfo responseInfo) {
+ RILRequest rr = mRil.processResponse(responseInfo);
+ if (rr == null) return;
+
+ try {
+ if (responseInfo.error == RadioError.NONE) {
+ sendMessageResponse(rr.mResult, null);
+ } else {
+ //TODO: Error code translation
+ }
+ } finally {
+ mRil.processResponseDone(rr, responseInfo, null);
+ }
+ }
+}
diff --git a/src/java/com/android/internal/telephony/OemHookIndication.java b/src/java/com/android/internal/telephony/OemHookIndication.java
index 122a70e..82648e1 100644
--- a/src/java/com/android/internal/telephony/OemHookIndication.java
+++ b/src/java/com/android/internal/telephony/OemHookIndication.java
@@ -16,13 +16,13 @@
package com.android.internal.telephony;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_OEM_HOOK_RAW;
+
import android.hardware.radio.deprecated.V1_0.IOemHookIndication;
import android.os.AsyncResult;
import java.util.ArrayList;
-import static com.android.internal.telephony.RILConstants.RIL_UNSOL_OEM_HOOK_RAW;
-
/**
* Class containing oem hook indication callbacks
*/
@@ -40,7 +40,7 @@
public void oemHookRaw(int indicationType, ArrayList<Byte> data) {
mRil.processIndication(indicationType);
- byte[] response = RIL.arrayListToPrimitiveArray(data);
+ byte[] response = RILUtils.arrayListToPrimitiveArray(data);
if (RIL.RILJ_LOGD) {
mRil.unsljLogvRet(RIL_UNSOL_OEM_HOOK_RAW,
com.android.internal.telephony.uicc.IccUtils.bytesToHexString(response));
diff --git a/src/java/com/android/internal/telephony/OemHookResponse.java b/src/java/com/android/internal/telephony/OemHookResponse.java
index 0afeac8..32e7dfb 100644
--- a/src/java/com/android/internal/telephony/OemHookResponse.java
+++ b/src/java/com/android/internal/telephony/OemHookResponse.java
@@ -16,9 +16,9 @@
package com.android.internal.telephony;
-import android.hardware.radio.deprecated.V1_0.IOemHookResponse;
import android.hardware.radio.V1_0.RadioError;
import android.hardware.radio.V1_0.RadioResponseInfo;
+import android.hardware.radio.deprecated.V1_0.IOemHookResponse;
import java.util.ArrayList;
@@ -42,7 +42,7 @@
if (rr != null) {
byte[] ret = null;
if (responseInfo.error == RadioError.NONE) {
- ret = RIL.arrayListToPrimitiveArray(data);
+ ret = RILUtils.arrayListToPrimitiveArray(data);
RadioResponse.sendMessageResponse(rr.mResult, ret);
}
mRil.processResponseDone(rr, responseInfo, ret);
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index 71a751c..af54eac 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -23,47 +23,38 @@
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
-import android.hardware.radio.V1_0.Carrier;
import android.hardware.radio.V1_0.CarrierRestrictions;
import android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo;
import android.hardware.radio.V1_0.CdmaSmsAck;
import android.hardware.radio.V1_0.CdmaSmsMessage;
import android.hardware.radio.V1_0.CdmaSmsWriteArgs;
-import android.hardware.radio.V1_0.DataProfileId;
import android.hardware.radio.V1_0.Dial;
import android.hardware.radio.V1_0.GsmBroadcastSmsConfigInfo;
import android.hardware.radio.V1_0.GsmSmsMessage;
-import android.hardware.radio.V1_0.HardwareConfigModem;
import android.hardware.radio.V1_0.IRadio;
import android.hardware.radio.V1_0.IccIo;
import android.hardware.radio.V1_0.ImsSmsMessage;
-import android.hardware.radio.V1_0.LceDataInfo;
-import android.hardware.radio.V1_0.MvnoType;
import android.hardware.radio.V1_0.NvWriteItem;
import android.hardware.radio.V1_0.RadioError;
import android.hardware.radio.V1_0.RadioIndicationType;
import android.hardware.radio.V1_0.RadioResponseInfo;
import android.hardware.radio.V1_0.RadioResponseType;
import android.hardware.radio.V1_0.RadioTechnologyFamily;
-import android.hardware.radio.V1_0.ResetNvType;
import android.hardware.radio.V1_0.SelectUiccSub;
import android.hardware.radio.V1_0.SimApdu;
import android.hardware.radio.V1_0.SmsWriteArgs;
import android.hardware.radio.V1_0.UusInfo;
import android.hardware.radio.V1_4.CarrierRestrictionsWithPriority;
import android.hardware.radio.V1_4.SimLockMultiSimPolicy;
-import android.hardware.radio.V1_5.AccessNetwork;
import android.hardware.radio.V1_5.IndicationFilter;
-import android.hardware.radio.V1_5.PersoSubstate;
-import android.hardware.radio.V1_5.RadioAccessNetworks;
-import android.hardware.radio.V1_6.OptionalDnn;
-import android.hardware.radio.V1_6.OptionalOsAppId;
-import android.hardware.radio.V1_6.OptionalSliceInfo;
-import android.hardware.radio.V1_6.OptionalTrafficDescriptor;
+import android.hardware.radio.data.IRadioData;
import android.hardware.radio.deprecated.V1_0.IOemHook;
-import android.net.InetAddresses;
+import android.hardware.radio.messaging.IRadioMessaging;
+import android.hardware.radio.modem.IRadioModem;
+import android.hardware.radio.network.IRadioNetwork;
+import android.hardware.radio.sim.IRadioSim;
+import android.hardware.radio.voice.IRadioVoice;
import android.net.KeepalivePacketData;
-import android.net.LinkAddress;
import android.net.LinkProperties;
import android.os.AsyncResult;
import android.os.Build;
@@ -76,7 +67,6 @@
import android.os.SystemClock;
import android.os.WorkSource;
import android.provider.Settings;
-import android.service.carrier.CarrierIdentifier;
import android.sysprop.TelephonyProperties;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CarrierRestrictionRules;
@@ -89,7 +79,6 @@
import android.telephony.CellSignalStrengthWcdma;
import android.telephony.ClientRequestStats;
import android.telephony.ImsiEncryptionInfo;
-import android.telephony.LinkCapacityEstimate;
import android.telephony.ModemActivityInfo;
import android.telephony.NeighboringCellInfo;
import android.telephony.NetworkScanRequest;
@@ -99,28 +88,19 @@
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SignalThresholdInfo;
-import android.telephony.SmsManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyHistogram;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.PrefNetworkMode;
-import android.telephony.data.ApnSetting;
-import android.telephony.data.DataCallResponse;
-import android.telephony.data.DataCallResponse.HandoverFailureMode;
import android.telephony.data.DataProfile;
import android.telephony.data.DataService;
import android.telephony.data.NetworkSliceInfo;
-import android.telephony.data.Qos;
-import android.telephony.data.QosBearerSession;
import android.telephony.data.TrafficDescriptor;
import android.telephony.emergency.EmergencyNumber;
import android.text.TextUtils;
-import android.util.Log;
import android.util.SparseArray;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.cat.ComprehensionTlv;
-import com.android.internal.telephony.cat.ComprehensionTlvTag;
import com.android.internal.telephony.cdma.CdmaInformationRecords;
import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
@@ -133,10 +113,7 @@
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.telephony.Rlog;
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
import java.io.FileDescriptor;
-import java.io.IOException;
import java.io.PrintWriter;
import java.net.Inet4Address;
import java.net.Inet6Address;
@@ -283,6 +260,24 @@
RadioResponse mRadioResponse;
RadioIndication mRadioIndication;
volatile IRadio mRadioProxy = null;
+ DataResponse mDataResponse;
+ DataIndication mDataIndication;
+ volatile IRadioData mDataProxy = null;
+ //MessagingResponse mMessagingResponse;
+ //MessagingIndication mMessagingIndication;
+ volatile IRadioMessaging mMessagingProxy = null;
+ //ModemResponse mModemResponse;
+ //ModemIndication mModemIndication;
+ volatile IRadioModem mModemProxy = null;
+ //NetworkResponse mNetworkResponse;
+ //NetworkIndication mNetworkIndication;
+ volatile IRadioNetwork mNetworkProxy = null;
+ //SimResponse mSimResponse;
+ //SimIndication mSimIndication;
+ volatile IRadioSim mSimProxy = null;
+ //VoiceResponse mVoiceResponse;
+ //VoiceIndication mVoiceIndication;
+ volatile IRadioVoice mVoiceProxy = null;
OemHookResponse mOemHookResponse;
OemHookIndication mOemHookIndication;
volatile IOemHook mOemHookProxy = null;
@@ -358,7 +353,7 @@
for (int i = 0; i < count; i++) {
rr = mRequestList.valueAt(i);
Rlog.d(RILJ_LOG_TAG, i + ": [" + rr.mSerial + "] "
- + requestToString(rr.mRequest));
+ + RILUtils.requestToString(rr.mRequest));
}
}
}
@@ -689,6 +684,8 @@
mRadioResponse = new RadioResponse(this);
mRadioIndication = new RadioIndication(this);
+ mDataResponse = new DataResponse(this);
+ mDataIndication = new DataIndication(this);
mOemHookResponse = new OemHookResponse(this);
mOemHookIndication = new OemHookIndication(this);
mRilHandler = new RilHandler();
@@ -766,10 +763,6 @@
resetProxyAndRequestList();
}
- private static String convertNullToEmptyString(String string) {
- return string != null ? string : "";
- }
-
@Override
public void getIccCardStatus(Message result) {
IRadio radioProxy = getRadioProxy(result);
@@ -777,7 +770,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_SIM_STATUS, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getIccCardStatus(rr.mSerial);
@@ -818,14 +813,14 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " aid = " + aid);
}
try {
radioProxy.supplyIccPinForApp(rr.mSerial,
- convertNullToEmptyString(pin),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(pin),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "supplyIccPinForApp", e);
}
@@ -844,18 +839,17 @@
RILRequest rr = obtainRequest(RIL_REQUEST_ENTER_SIM_PUK, result,
mRILDefaultWorkSource);
- String pukStr = convertNullToEmptyString(puk);
+ String pukStr = RILUtils.convertNullToEmptyString(puk);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
- + " isPukEmpty = " + pukStr.isEmpty()
- + " aid = " + aid);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " isPukEmpty = " + pukStr.isEmpty() + " aid = " + aid);
}
try {
radioProxy.supplyIccPukForApp(rr.mSerial,
pukStr,
- convertNullToEmptyString(newPin),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(newPin),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "supplyIccPukForApp", e);
}
@@ -875,14 +869,14 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " aid = " + aid);
}
try {
radioProxy.supplyIccPin2ForApp(rr.mSerial,
- convertNullToEmptyString(pin),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(pin),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "supplyIccPin2ForApp", e);
}
@@ -902,15 +896,15 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " aid = " + aid);
}
try {
radioProxy.supplyIccPuk2ForApp(rr.mSerial,
- convertNullToEmptyString(puk),
- convertNullToEmptyString(newPin2),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(puk),
+ RILUtils.convertNullToEmptyString(newPin2),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "supplyIccPuk2ForApp", e);
}
@@ -930,15 +924,15 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " oldPin = "
- + oldPin + " newPin = " + newPin + " aid = " + aid);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " oldPin = " + oldPin + " newPin = " + newPin + " aid = " + aid);
}
try {
radioProxy.changeIccPinForApp(rr.mSerial,
- convertNullToEmptyString(oldPin),
- convertNullToEmptyString(newPin),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(oldPin),
+ RILUtils.convertNullToEmptyString(newPin),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "changeIccPinForApp", e);
}
@@ -958,15 +952,15 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " oldPin = "
- + oldPin2 + " newPin = " + newPin2 + " aid = " + aid);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " oldPin = " + oldPin2 + " newPin = " + newPin2 + " aid = " + aid);
}
try {
radioProxy.changeIccPin2ForApp(rr.mSerial,
- convertNullToEmptyString(oldPin2),
- convertNullToEmptyString(newPin2),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(oldPin2),
+ RILUtils.convertNullToEmptyString(newPin2),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "changeIccPin2ForApp", e);
}
@@ -981,13 +975,13 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " netpin = "
- + netpin);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " netpin = " + netpin);
}
try {
radioProxy.supplyNetworkDepersonalization(rr.mSerial,
- convertNullToEmptyString(netpin));
+ RILUtils.convertNullToEmptyString(netpin));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "supplyNetworkDepersonalization", e);
}
@@ -1006,13 +1000,13 @@
RILRequest rr = obtainRequest(RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION, result,
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " controlKey = "
- + controlKey + " persoType" + persoType);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " controlKey = " + controlKey + " persoType" + persoType);
}
try {
radioProxy15.supplySimDepersonalization(rr.mSerial,
- convertPersoTypeToHalPersoType(persoType),
- convertNullToEmptyString(controlKey));
+ RILUtils.convertToHalPersoType(persoType),
+ RILUtils.convertNullToEmptyString(controlKey));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "supplySimDepersonalization", e);
}
@@ -1026,83 +1020,6 @@
}
}
- private static int convertPersoTypeToHalPersoType(PersoSubState persoType) {
-
- switch(persoType) {
-
- case PERSOSUBSTATE_IN_PROGRESS:
- return PersoSubstate.IN_PROGRESS;
- case PERSOSUBSTATE_READY:
- return PersoSubstate.READY;
- case PERSOSUBSTATE_SIM_NETWORK:
- return PersoSubstate.SIM_NETWORK;
- case PERSOSUBSTATE_SIM_NETWORK_SUBSET:
- return PersoSubstate.SIM_NETWORK_SUBSET;
- case PERSOSUBSTATE_SIM_CORPORATE:
- return PersoSubstate.SIM_CORPORATE;
- case PERSOSUBSTATE_SIM_SERVICE_PROVIDER:
- return PersoSubstate.SIM_SERVICE_PROVIDER;
- case PERSOSUBSTATE_SIM_SIM:
- return PersoSubstate.SIM_SIM;
- case PERSOSUBSTATE_SIM_NETWORK_PUK:
- return PersoSubstate.SIM_NETWORK_PUK;
- case PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK:
- return PersoSubstate.SIM_NETWORK_SUBSET_PUK;
- case PERSOSUBSTATE_SIM_CORPORATE_PUK:
- return PersoSubstate.SIM_CORPORATE_PUK;
- case PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK:
- return PersoSubstate.SIM_SERVICE_PROVIDER_PUK;
- case PERSOSUBSTATE_SIM_SIM_PUK:
- return PersoSubstate.SIM_SIM_PUK;
- case PERSOSUBSTATE_RUIM_NETWORK1:
- return PersoSubstate.RUIM_NETWORK1;
- case PERSOSUBSTATE_RUIM_NETWORK2:
- return PersoSubstate.RUIM_NETWORK2;
- case PERSOSUBSTATE_RUIM_HRPD:
- return PersoSubstate.RUIM_HRPD;
- case PERSOSUBSTATE_RUIM_CORPORATE:
- return PersoSubstate.RUIM_CORPORATE;
- case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER:
- return PersoSubstate.RUIM_SERVICE_PROVIDER;
- case PERSOSUBSTATE_RUIM_RUIM:
- return PersoSubstate.RUIM_RUIM;
- case PERSOSUBSTATE_RUIM_NETWORK1_PUK:
- return PersoSubstate.RUIM_NETWORK1_PUK;
- case PERSOSUBSTATE_RUIM_NETWORK2_PUK:
- return PersoSubstate.RUIM_NETWORK2_PUK;
- case PERSOSUBSTATE_RUIM_HRPD_PUK:
- return PersoSubstate.RUIM_HRPD_PUK;
- case PERSOSUBSTATE_RUIM_CORPORATE_PUK:
- return PersoSubstate.RUIM_CORPORATE_PUK;
- case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK:
- return PersoSubstate.RUIM_SERVICE_PROVIDER_PUK;
- case PERSOSUBSTATE_RUIM_RUIM_PUK:
- return PersoSubstate.RUIM_RUIM_PUK;
- case PERSOSUBSTATE_SIM_SPN:
- return PersoSubstate.SIM_SPN;
- case PERSOSUBSTATE_SIM_SPN_PUK:
- return PersoSubstate.SIM_SPN_PUK;
- case PERSOSUBSTATE_SIM_SP_EHPLMN:
- return PersoSubstate.SIM_SP_EHPLMN;
- case PERSOSUBSTATE_SIM_SP_EHPLMN_PUK:
- return PersoSubstate.SIM_SP_EHPLMN_PUK;
- case PERSOSUBSTATE_SIM_ICCID:
- return PersoSubstate.SIM_ICCID;
- case PERSOSUBSTATE_SIM_ICCID_PUK:
- return PersoSubstate.SIM_ICCID_PUK;
- case PERSOSUBSTATE_SIM_IMPI:
- return PersoSubstate.SIM_IMPI;
- case PERSOSUBSTATE_SIM_IMPI_PUK:
- return PersoSubstate.SIM_IMPI_PUK;
- case PERSOSUBSTATE_SIM_NS_SP:
- return PersoSubstate.SIM_NS_SP;
- case PERSOSUBSTATE_SIM_NS_SP_PUK:
- return PersoSubstate.SIM_NS_SP_PUK;
- default:
- return PersoSubstate.UNKNOWN;
- }
- }
-
@Override
public void getCurrentCalls(Message result) {
IRadio radioProxy = getRadioProxy(result);
@@ -1111,7 +1028,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -1156,8 +1073,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " enable = "
- + enable);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " enable = " + enable);
}
try {
@@ -1190,14 +1107,13 @@
(android.hardware.radio.V1_3.IRadio) radioProxy;
if (radioProxy13 != null) {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
- + " setSystemSelectionChannels_1.3= "
- + specifiers);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " setSystemSelectionChannels_1.3= " + specifiers);
}
ArrayList<android.hardware.radio.V1_1.RadioAccessSpecifier> halSpecifiers =
specifiers.stream()
- .map(this::convertRadioAccessSpecifierToRadioHAL)
+ .map(RILUtils::convertToHalRadioAccessSpecifier11)
.collect(Collectors.toCollection(ArrayList::new));
try {
@@ -1216,14 +1132,13 @@
if (radioProxy15 != null) {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
- + " setSystemSelectionChannels_1.5= "
- + specifiers);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " setSystemSelectionChannels_1.5= " + specifiers);
}
ArrayList<android.hardware.radio.V1_5.RadioAccessSpecifier> halSpecifiers =
specifiers.stream()
- .map(this::convertRadioAccessSpecifierToRadioHAL_1_5)
+ .map(RILUtils::convertToHalRadioAccessSpecifier15)
.collect(Collectors.toCollection(ArrayList::new));
try {
@@ -1258,7 +1173,7 @@
if (radioProxy16 != null) {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " getSystemSelectionChannels");
}
@@ -1290,7 +1205,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -1317,7 +1232,7 @@
mRILDefaultWorkSource);
Dial dialInfo = new Dial();
- dialInfo.address = convertNullToEmptyString(address);
+ dialInfo.address = RILUtils.convertNullToEmptyString(address);
dialInfo.clir = clirMode;
if (uusInfo != null) {
UusInfo info = new UusInfo();
@@ -1329,7 +1244,7 @@
if (RILJ_LOGD) {
// Do not log function arg for privacy
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -1347,7 +1262,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_EMERGENCY_DIAL, result,
mRILDefaultWorkSource);
Dial dialInfo = new Dial();
- dialInfo.address = convertNullToEmptyString(address);
+ dialInfo.address = RILUtils.convertNullToEmptyString(address);
dialInfo.clir = clirMode;
if (uusInfo != null) {
UusInfo info = new UusInfo();
@@ -1359,7 +1274,7 @@
if (RILJ_LOGD) {
// Do not log function arg for privacy
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
@@ -1413,11 +1328,11 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString()
- + "> " + requestToString(rr.mRequest) + " aid = " + aid);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " aid = " + aid);
}
try {
- radioProxy.getImsiForApp(rr.mSerial, convertNullToEmptyString(aid));
+ radioProxy.getImsiForApp(rr.mSerial, RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "getIMSIForApp", e);
}
@@ -1432,8 +1347,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " gsmIndex = "
- + gsmIndex);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " gsmIndex = " + gsmIndex);
}
try {
@@ -1452,7 +1367,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.hangupWaitingOrBackground(rr.mSerial);
@@ -1470,7 +1387,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.hangupForegroundResumeBackground(rr.mSerial);
@@ -1487,7 +1406,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.switchWaitingOrHoldingAndActive(rr.mSerial);
@@ -1504,7 +1425,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_CONFERENCE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.conference(rr.mSerial);
@@ -1521,7 +1444,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_UDUB, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.rejectCall(rr.mSerial);
@@ -1538,7 +1463,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_LAST_CALL_FAIL_CAUSE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getLastCallFailCause(rr.mSerial);
@@ -1555,7 +1482,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SIGNAL_STRENGTH, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
android.hardware.radio.V1_6.IRadio radioProxy16 =
@@ -1590,7 +1519,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_VOICE_REGISTRATION_STATE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
HalVersion overrideHalVersion = getCompatVersion(RIL_REQUEST_VOICE_REGISTRATION_STATE);
if (RILJ_LOGD) {
@@ -1634,7 +1565,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_DATA_REGISTRATION_STATE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
HalVersion overrideHalVersion = getCompatVersion(RIL_REQUEST_DATA_REGISTRATION_STATE);
if (RILJ_LOGD) {
@@ -1678,7 +1611,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_OPERATOR, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getOperator(rr.mSerial);
@@ -1698,7 +1633,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " on = " + on + " forEmergencyCall= " + forEmergencyCall
+ " preferredForEmergencyCall=" + preferredForEmergencyCall);
}
@@ -1740,7 +1675,7 @@
if (RILJ_LOGD) {
// Do not log function arg for privacy
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -1751,13 +1686,6 @@
}
}
- private GsmSmsMessage constructGsmSendSmsRilRequest(String smscPdu, String pdu) {
- GsmSmsMessage msg = new GsmSmsMessage();
- msg.smscPdu = smscPdu == null ? "" : smscPdu;
- msg.pdu = pdu == null ? "" : pdu;
- return msg;
- }
-
@Override
public void sendSMS(String smscPdu, String pdu, Message result) {
IRadio radioProxy = getRadioProxy(result);
@@ -1766,9 +1694,11 @@
mRILDefaultWorkSource);
// Do not log function args for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
- GsmSmsMessage msg = constructGsmSendSmsRilRequest(smscPdu, pdu);
+ GsmSmsMessage msg = RILUtils.convertToHalGsmSmsMessage(smscPdu, pdu);
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
try {
android.hardware.radio.V1_6.IRadio radioProxy16 =
@@ -1818,9 +1748,11 @@
mRILDefaultWorkSource);
// Do not log function arg for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
- GsmSmsMessage msg = constructGsmSendSmsRilRequest(smscPdu, pdu);
+ GsmSmsMessage msg = RILUtils.convertToHalGsmSmsMessage(smscPdu, pdu);
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
try {
android.hardware.radio.V1_6.IRadio radioProxy16 =
@@ -1845,210 +1777,6 @@
}
}
- /**
- * Convert MVNO type string into MvnoType defined in types.hal.
- * @param mvnoType MVNO type
- * @return MVNO type in integer
- */
- private static int convertToHalMvnoType(String mvnoType) {
- switch (mvnoType) {
- case "imsi" : return MvnoType.IMSI;
- case "gid" : return MvnoType.GID;
- case "spn" : return MvnoType.SPN;
- default: return MvnoType.NONE;
- }
- }
-
- /**
- * Convert to DataProfileInfo defined in radio/1.0/types.hal
- * @param dp Data profile
- * @return A converted data profile
- */
- private static android.hardware.radio.V1_0.DataProfileInfo convertToHalDataProfile10(
- DataProfile dp) {
- android.hardware.radio.V1_0.DataProfileInfo dpi =
- new android.hardware.radio.V1_0.DataProfileInfo();
-
- dpi.profileId = dp.getProfileId();
- dpi.apn = dp.getApn();
- dpi.protocol = ApnSetting.getProtocolStringFromInt(dp.getProtocolType());
- dpi.roamingProtocol = ApnSetting.getProtocolStringFromInt(dp.getRoamingProtocolType());
- dpi.authType = dp.getAuthType();
- dpi.user = dp.getUserName();
- dpi.password = dp.getPassword();
- dpi.type = dp.getType();
- dpi.maxConnsTime = dp.getMaxConnectionsTime();
- dpi.maxConns = dp.getMaxConnections();
- dpi.waitTime = dp.getWaitTime();
- dpi.enabled = dp.isEnabled();
- dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask();
- // Shift by 1 bit due to the discrepancy between
- // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of
- // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX.
- dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask(
- dp.getBearerBitmask()) << 1;
- dpi.mtu = dp.getMtuV4();
- dpi.mvnoType = MvnoType.NONE;
- dpi.mvnoMatchData = "";
-
- return dpi;
- }
-
- /**
- * Convert to DataProfileInfo defined in radio/1.4/types.hal
- * @param dp Data profile
- * @return A converted data profile
- */
- private static android.hardware.radio.V1_4.DataProfileInfo convertToHalDataProfile14(
- DataProfile dp) {
- android.hardware.radio.V1_4.DataProfileInfo dpi =
- new android.hardware.radio.V1_4.DataProfileInfo();
-
- dpi.apn = dp.getApn();
- dpi.protocol = dp.getProtocolType();
- dpi.roamingProtocol = dp.getRoamingProtocolType();
- dpi.authType = dp.getAuthType();
- dpi.user = dp.getUserName();
- dpi.password = dp.getPassword();
- dpi.type = dp.getType();
- dpi.maxConnsTime = dp.getMaxConnectionsTime();
- dpi.maxConns = dp.getMaxConnections();
- dpi.waitTime = dp.getWaitTime();
- dpi.enabled = dp.isEnabled();
- dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask();
- // Shift by 1 bit due to the discrepancy between
- // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of
- // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX.
- dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask(
- dp.getBearerBitmask()) << 1;
- dpi.mtu = dp.getMtuV4();
- dpi.persistent = dp.isPersistent();
- dpi.preferred = dp.isPreferred();
-
- // profile id is only meaningful when it's persistent on the modem.
- dpi.profileId = (dpi.persistent) ? dp.getProfileId() : DataProfileId.INVALID;
-
- return dpi;
- }
-
- private static OptionalSliceInfo convertToHalSliceInfo(@Nullable NetworkSliceInfo sliceInfo) {
- OptionalSliceInfo optionalSliceInfo = new OptionalSliceInfo();
- if (sliceInfo == null) {
- return optionalSliceInfo;
- }
-
- android.hardware.radio.V1_6.SliceInfo si = new android.hardware.radio.V1_6.SliceInfo();
- si.sst = (byte) sliceInfo.getSliceServiceType();
- si.mappedHplmnSst = (byte) sliceInfo.getMappedHplmnSliceServiceType();
- si.sliceDifferentiator = sliceInfo.getSliceDifferentiator();
- si.mappedHplmnSD = sliceInfo.getMappedHplmnSliceDifferentiator();
- optionalSliceInfo.value(si);
- return optionalSliceInfo;
- }
-
- private static OptionalTrafficDescriptor convertToHalTrafficDescriptor(
- @Nullable TrafficDescriptor trafficDescriptor) {
- OptionalTrafficDescriptor optionalTrafficDescriptor = new OptionalTrafficDescriptor();
- if (trafficDescriptor == null) {
- return optionalTrafficDescriptor;
- }
-
- android.hardware.radio.V1_6.TrafficDescriptor td =
- new android.hardware.radio.V1_6.TrafficDescriptor();
-
- OptionalDnn optionalDnn = new OptionalDnn();
- if (trafficDescriptor.getDataNetworkName() != null) {
- optionalDnn.value(trafficDescriptor.getDataNetworkName());
- }
- td.dnn = optionalDnn;
-
- OptionalOsAppId optionalOsAppId = new OptionalOsAppId();
- if (trafficDescriptor.getOsAppId() != null) {
- android.hardware.radio.V1_6.OsAppId osAppId = new android.hardware.radio.V1_6.OsAppId();
- osAppId.osAppId = primitiveArrayToArrayList(trafficDescriptor.getOsAppId().getBytes());
- optionalOsAppId.value(osAppId);
- }
- td.osAppId = optionalOsAppId;
-
- optionalTrafficDescriptor.value(td);
- return optionalTrafficDescriptor;
- }
-
- private static ArrayList<android.hardware.radio.V1_5.LinkAddress> convertToHalLinkProperties15(
- LinkProperties linkProperties) {
- ArrayList<android.hardware.radio.V1_5.LinkAddress> addresses15 = new ArrayList<>();
- if (linkProperties != null) {
- for (LinkAddress la : linkProperties.getAllLinkAddresses()) {
- android.hardware.radio.V1_5.LinkAddress linkAddress =
- new android.hardware.radio.V1_5.LinkAddress();
- linkAddress.address = la.getAddress().getHostAddress();
- linkAddress.properties = la.getFlags();
- linkAddress.deprecationTime = la.getDeprecationTime();
- linkAddress.expirationTime = la.getExpirationTime();
- addresses15.add(linkAddress);
- }
- }
- return addresses15;
- }
-
- /**
- * Convert to DataProfileInfo defined in radio/1.5/types.hal
- * @param dp Data profile
- * @return A converted data profile
- */
- private static android.hardware.radio.V1_5.DataProfileInfo convertToHalDataProfile15(
- DataProfile dp) {
- android.hardware.radio.V1_5.DataProfileInfo dpi =
- new android.hardware.radio.V1_5.DataProfileInfo();
-
- dpi.apn = dp.getApn();
- dpi.protocol = dp.getProtocolType();
- dpi.roamingProtocol = dp.getRoamingProtocolType();
- dpi.authType = dp.getAuthType();
- dpi.user = dp.getUserName();
- dpi.password = dp.getPassword();
- dpi.type = dp.getType();
- dpi.maxConnsTime = dp.getMaxConnectionsTime();
- dpi.maxConns = dp.getMaxConnections();
- dpi.waitTime = dp.getWaitTime();
- dpi.enabled = dp.isEnabled();
- dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask();
- // Shift by 1 bit due to the discrepancy between
- // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of
- // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX.
- dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask(
- dp.getBearerBitmask()) << 1;
- dpi.mtuV4 = dp.getMtuV4();
- dpi.mtuV6 = dp.getMtuV6();
- dpi.persistent = dp.isPersistent();
- dpi.preferred = dp.isPreferred();
-
- // profile id is only meaningful when it's persistent on the modem.
- dpi.profileId = (dpi.persistent) ? dp.getProfileId() : DataProfileId.INVALID;
-
- return dpi;
- }
-
- /**
- * Convert NV reset type into ResetNvType defined in types.hal.
- * @param resetType NV reset type.
- * @return Converted reset type in integer or -1 if param is invalid.
- */
- private static int convertToHalResetNvType(int resetType) {
- /**
- * resetType values
- * 1 - reload all NV items
- * 2 - erase NV reset (SCRTN)
- * 3 - factory reset (RTN)
- */
- switch (resetType) {
- case 1: return ResetNvType.RELOAD;
- case 2: return ResetNvType.ERASE;
- case 3: return ResetNvType.FACTORY_RESET;
- }
- return -1;
- }
-
@Override
public void setupDataCall(int accessNetworkType, DataProfile dataProfile, boolean isRoaming,
boolean allowRoaming, int reason, LinkProperties linkProperties, int pduSessionId,
@@ -2080,17 +1808,19 @@
// Convert to HAL data profile
android.hardware.radio.V1_5.DataProfileInfo dpi =
- convertToHalDataProfile15(dataProfile);
+ RILUtils.convertToHalDataProfile15(dataProfile);
- OptionalSliceInfo si = convertToHalSliceInfo(sliceInfo);
+ android.hardware.radio.V1_6.OptionalSliceInfo si =
+ RILUtils.convertToHalSliceInfo(sliceInfo);
ArrayList<android.hardware.radio.V1_5.LinkAddress> addresses15 =
- convertToHalLinkProperties15(linkProperties);
+ RILUtils.convertToHalLinkProperties15(linkProperties);
- OptionalTrafficDescriptor td = convertToHalTrafficDescriptor(trafficDescriptor);
+ android.hardware.radio.V1_6.OptionalTrafficDescriptor td =
+ RILUtils.convertToHalTrafficDescriptor(trafficDescriptor);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ ",accessNetworkType="
+ AccessNetworkType.toString(accessNetworkType) + ",isRoaming="
+ isRoaming + ",allowRoaming=" + allowRoaming + "," + dataProfile
@@ -2109,13 +1839,13 @@
// Convert to HAL data profile
android.hardware.radio.V1_5.DataProfileInfo dpi =
- convertToHalDataProfile15(dataProfile);
+ RILUtils.convertToHalDataProfile15(dataProfile);
ArrayList<android.hardware.radio.V1_5.LinkAddress> addresses15 =
- convertToHalLinkProperties15(linkProperties);
+ RILUtils.convertToHalLinkProperties15(linkProperties);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ ",accessNetworkType="
+ AccessNetworkType.toString(accessNetworkType) + ",isRoaming="
+ isRoaming + ",allowRoaming=" + allowRoaming + "," + dataProfile
@@ -2131,10 +1861,10 @@
// Convert to HAL data profile
android.hardware.radio.V1_4.DataProfileInfo dpi =
- convertToHalDataProfile14(dataProfile);
+ RILUtils.convertToHalDataProfile14(dataProfile);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ ",accessNetworkType="
+ AccessNetworkType.toString(accessNetworkType) + ",isRoaming="
+ isRoaming + ",allowRoaming=" + allowRoaming + "," + dataProfile
@@ -2150,10 +1880,10 @@
// Convert to HAL data profile
android.hardware.radio.V1_0.DataProfileInfo dpi =
- convertToHalDataProfile10(dataProfile);
+ RILUtils.convertToHalDataProfile10(dataProfile);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ ",accessNetworkType="
+ AccessNetworkType.toString(accessNetworkType) + ",isRoaming="
+ isRoaming + ",allowRoaming=" + allowRoaming + ","
@@ -2168,7 +1898,7 @@
// Convert to HAL data profile
android.hardware.radio.V1_0.DataProfileInfo dpi =
- convertToHalDataProfile10(dataProfile);
+ RILUtils.convertToHalDataProfile10(dataProfile);
// Getting data RAT here is just a workaround to support the older 1.0
// vendor RIL. The new data service interface passes access network type
@@ -2184,7 +1914,7 @@
}
}
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ ",dataRat=" + dataRat + ",isRoaming=" + isRoaming
+ ",allowRoaming=" + allowRoaming + "," + dataProfile);
}
@@ -2214,27 +1944,26 @@
if (RILJ_LOGD) {
if (TelephonyUtils.IS_DEBUGGABLE) {
- riljLog(rr.serialString() + "> iccIO: "
- + requestToString(rr.mRequest) + " command = 0x"
- + Integer.toHexString(command) + " fileId = 0x"
- + Integer.toHexString(fileId) + " path = " + path + " p1 = "
- + p1 + " p2 = " + p2 + " p3 = " + " data = " + data
- + " aid = " + aid);
+ riljLog(rr.serialString() + "> iccIO: " + RILUtils.requestToString(rr.mRequest)
+ + " command = 0x" + Integer.toHexString(command) + " fileId = 0x"
+ + Integer.toHexString(fileId) + " path = " + path + " p1 = " + p1
+ + " p2 = " + p2 + " p3 = " + " data = " + data + " aid = " + aid);
} else {
- riljLog(rr.serialString() + "> iccIO: " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> iccIO: "
+ + RILUtils.requestToString(rr.mRequest));
}
}
IccIo iccIo = new IccIo();
iccIo.command = command;
iccIo.fileId = fileId;
- iccIo.path = convertNullToEmptyString(path);
+ iccIo.path = RILUtils.convertNullToEmptyString(path);
iccIo.p1 = p1;
iccIo.p2 = p2;
iccIo.p3 = p3;
- iccIo.data = convertNullToEmptyString(data);
- iccIo.pin2 = convertNullToEmptyString(pin2);
- iccIo.aid = convertNullToEmptyString(aid);
+ iccIo.data = RILUtils.convertNullToEmptyString(data);
+ iccIo.pin2 = RILUtils.convertNullToEmptyString(pin2);
+ iccIo.aid = RILUtils.convertNullToEmptyString(aid);
try {
radioProxy.iccIOForApp(rr.mSerial, iccIo);
@@ -2254,12 +1983,12 @@
if (RILJ_LOGD) {
String logUssd = "*******";
if (RILJ_LOGV) logUssd = ussd;
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " ussd = " + logUssd);
}
try {
- radioProxy.sendUssd(rr.mSerial, convertNullToEmptyString(ussd));
+ radioProxy.sendUssd(rr.mSerial, RILUtils.convertNullToEmptyString(ussd));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "sendUSSD", e);
}
@@ -2274,8 +2003,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString()
- + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -2293,7 +2021,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_CLIR, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getClir(rr.mSerial);
@@ -2310,7 +2040,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_CLIR, result, mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " clirMode = " + clirMode);
}
@@ -2331,7 +2061,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " cfreason = " + cfReason + " serviceClass = " + serviceClass);
}
@@ -2340,7 +2070,7 @@
cfInfo.reason = cfReason;
cfInfo.serviceClass = serviceClass;
cfInfo.toa = PhoneNumberUtils.toaFromString(number);
- cfInfo.number = convertNullToEmptyString(number);
+ cfInfo.number = RILUtils.convertNullToEmptyString(number);
cfInfo.timeSeconds = 0;
try {
@@ -2360,7 +2090,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " action = " + action + " cfReason = " + cfReason + " serviceClass = "
+ serviceClass + " timeSeconds = " + timeSeconds);
}
@@ -2371,7 +2101,7 @@
cfInfo.reason = cfReason;
cfInfo.serviceClass = serviceClass;
cfInfo.toa = PhoneNumberUtils.toaFromString(number);
- cfInfo.number = convertNullToEmptyString(number);
+ cfInfo.number = RILUtils.convertNullToEmptyString(number);
cfInfo.timeSeconds = timeSeconds;
try {
@@ -2391,7 +2121,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " serviceClass = " + serviceClass);
}
@@ -2411,7 +2141,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " enable = " + enable + " serviceClass = " + serviceClass);
}
@@ -2431,7 +2161,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " success = " + success + " cause = " + cause);
}
@@ -2451,7 +2181,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -2471,8 +2201,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest) + " cid = " + cid + " reason = " + reason);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " cid = " + cid + " reason = " + reason);
}
try {
@@ -2507,17 +2237,17 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " facility = " + facility + " serviceClass = " + serviceClass
+ " appId = " + appId);
}
try {
radioProxy.getFacilityLockForApp(rr.mSerial,
- convertNullToEmptyString(facility),
- convertNullToEmptyString(password),
+ RILUtils.convertNullToEmptyString(facility),
+ RILUtils.convertNullToEmptyString(password),
serviceClass,
- convertNullToEmptyString(appId));
+ RILUtils.convertNullToEmptyString(appId));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "getFacilityLockForApp", e);
}
@@ -2539,18 +2269,18 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " facility = " + facility + " lockstate = " + lockState
+ " serviceClass = " + serviceClass + " appId = " + appId);
}
try {
radioProxy.setFacilityLockForApp(rr.mSerial,
- convertNullToEmptyString(facility),
+ RILUtils.convertNullToEmptyString(facility),
lockState,
- convertNullToEmptyString(password),
+ RILUtils.convertNullToEmptyString(password),
serviceClass,
- convertNullToEmptyString(appId));
+ RILUtils.convertNullToEmptyString(appId));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setFacilityLockForApp", e);
}
@@ -2567,15 +2297,15 @@
// Do not log all function args for privacy
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ "facility = " + facility);
}
try {
radioProxy.setBarringPassword(rr.mSerial,
- convertNullToEmptyString(facility),
- convertNullToEmptyString(oldPwd),
- convertNullToEmptyString(newPwd));
+ RILUtils.convertNullToEmptyString(facility),
+ RILUtils.convertNullToEmptyString(oldPwd),
+ RILUtils.convertNullToEmptyString(newPwd));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "changeBarringPassword", e);
}
@@ -2589,7 +2319,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getNetworkSelectionMode(rr.mSerial);
@@ -2606,7 +2338,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.setNetworkSelectionModeAutomatic(rr.mSerial);
@@ -2623,24 +2357,23 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL, result,
mRILDefaultWorkSource);
try {
- int halRan = convertAntToRan(ran);
+ int halRan = RILUtils.convertToHalRadioAccessNetworks(ran);
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) {
android.hardware.radio.V1_5.IRadio radioProxy15 =
(android.hardware.radio.V1_5.IRadio) radioProxy;
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
- + " operatorNumeric = " + operatorNumeric
- + ", ran = " + halRan);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " operatorNumeric = " + operatorNumeric + ", ran = " + halRan);
}
radioProxy15.setNetworkSelectionModeManual_1_5(rr.mSerial,
- convertNullToEmptyString(operatorNumeric), halRan);
+ RILUtils.convertNullToEmptyString(operatorNumeric), halRan);
} else {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " operatorNumeric = " + operatorNumeric);
}
radioProxy.setNetworkSelectionModeManual(rr.mSerial,
- convertNullToEmptyString(operatorNumeric));
+ RILUtils.convertNullToEmptyString(operatorNumeric));
}
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setNetworkSelectionModeManual", e);
@@ -2655,7 +2388,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_QUERY_AVAILABLE_NETWORKS, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getAvailableNetworks(rr.mSerial);
@@ -2665,84 +2400,6 @@
}
}
- private android.hardware.radio.V1_1.RadioAccessSpecifier convertRadioAccessSpecifierToRadioHAL(
- RadioAccessSpecifier ras) {
- android.hardware.radio.V1_1.RadioAccessSpecifier rasInHalFormat =
- new android.hardware.radio.V1_1.RadioAccessSpecifier();
- rasInHalFormat.radioAccessNetwork = ras.getRadioAccessNetwork();
- ArrayList<Integer> bands = new ArrayList<>();
- if (ras.getBands() != null) {
- for (int band : ras.getBands()) {
- bands.add(band);
- }
- }
- switch (ras.getRadioAccessNetwork()) {
- case AccessNetworkType.GERAN:
- rasInHalFormat.geranBands = bands;
- break;
- case AccessNetworkType.UTRAN:
- rasInHalFormat.utranBands = bands;
- break;
- case AccessNetworkType.EUTRAN:
- rasInHalFormat.eutranBands = bands;
- break;
- default:
- Log.wtf(RILJ_LOG_TAG, "radioAccessNetwork " + ras.getRadioAccessNetwork()
- + " not supported on IRadio < 1.5!");
- return null;
- }
-
- if (ras.getChannels() != null) {
- for (int channel : ras.getChannels()) {
- rasInHalFormat.channels.add(channel);
- }
- }
-
- return rasInHalFormat;
- }
-
- private android.hardware.radio.V1_5.RadioAccessSpecifier
- convertRadioAccessSpecifierToRadioHAL_1_5(RadioAccessSpecifier ras) {
- android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat =
- new android.hardware.radio.V1_5.RadioAccessSpecifier();
- android.hardware.radio.V1_5.RadioAccessSpecifier.Bands bandsInHalFormat =
- new android.hardware.radio.V1_5.RadioAccessSpecifier.Bands();
- rasInHalFormat.radioAccessNetwork = convertAntToRan(ras.getRadioAccessNetwork());
- ArrayList<Integer> bands = new ArrayList<>();
- if (ras.getBands() != null) {
- for (int band : ras.getBands()) {
- bands.add(band);
- }
- }
- switch (ras.getRadioAccessNetwork()) {
- case AccessNetworkType.GERAN:
- bandsInHalFormat.geranBands(bands);
- break;
- case AccessNetworkType.UTRAN:
- bandsInHalFormat.utranBands(bands);
- break;
- case AccessNetworkType.EUTRAN:
- bandsInHalFormat.eutranBands(bands);
- break;
- case AccessNetworkType.NGRAN:
- bandsInHalFormat.ngranBands(bands);
- break;
- default:
- Log.wtf(RILJ_LOG_TAG, "radioAccessNetwork " + ras.getRadioAccessNetwork()
- + " not supported on IRadio 1.5!");
- return null;
- }
- rasInHalFormat.bands = bandsInHalFormat;
-
- if (ras.getChannels() != null) {
- for (int channel : ras.getChannels()) {
- rasInHalFormat.channels.add(channel);
- }
- }
-
- return rasInHalFormat;
- }
-
/**
* Radio HAL fallback compatibility feature (b/151106728) assumes that the input parameter
* networkScanRequest is immutable (read-only) here. Once the caller invokes the method, the
@@ -2772,7 +2429,7 @@
for (RadioAccessSpecifier ras : nsr.getSpecifiers()) {
android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat =
- convertRadioAccessSpecifierToRadioHAL_1_5(ras);
+ RILUtils.convertToHalRadioAccessSpecifier15(ras);
if (rasInHalFormat == null) {
AsyncResult.forMessage(result, null,
CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -2787,7 +2444,7 @@
mRILDefaultWorkSource, nsr);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -2809,7 +2466,7 @@
for (RadioAccessSpecifier ras : nsr.getSpecifiers()) {
android.hardware.radio.V1_1.RadioAccessSpecifier rasInHalFormat =
- convertRadioAccessSpecifierToRadioHAL(ras);
+ RILUtils.convertToHalRadioAccessSpecifier11(ras);
if (rasInHalFormat == null) {
AsyncResult.forMessage(result, null,
CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -2825,7 +2482,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -2851,7 +2508,7 @@
request.interval = nsr.getSearchPeriodicity();
for (RadioAccessSpecifier ras : nsr.getSpecifiers()) {
android.hardware.radio.V1_1.RadioAccessSpecifier rasInHalFormat =
- convertRadioAccessSpecifierToRadioHAL(ras);
+ RILUtils.convertToHalRadioAccessSpecifier11(ras);
if (rasInHalFormat == null) {
AsyncResult.forMessage(result, null,
CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -2866,7 +2523,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -2894,7 +2551,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -2918,7 +2575,9 @@
mRILDefaultWorkSource);
// Do not log function arg for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.startDtmf(rr.mSerial, c + "");
@@ -2935,7 +2594,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_DTMF_STOP, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.stopDtmf(rr.mSerial);
@@ -2953,7 +2614,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " gsmIndex = " + gsmIndex);
}
@@ -2972,7 +2633,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_BASEBAND_VERSION, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getBasebandVersion(rr.mSerial);
@@ -2990,7 +2653,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " enableMute = " + enableMute);
}
@@ -3009,7 +2672,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_MUTE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getMute(rr.mSerial);
@@ -3026,7 +2691,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_QUERY_CLIP, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getClip(rr.mSerial);
@@ -3052,7 +2719,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_DATA_CALL_LIST, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
@@ -3077,12 +2746,12 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ "[" + IccUtils.bytesToHexString(data) + "]");
}
try {
- oemHookProxy.sendRequestRaw(rr.mSerial, primitiveArrayToArrayList(data));
+ oemHookProxy.sendRequestRaw(rr.mSerial, RILUtils.primitiveArrayToArrayList(data));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "invokeOemRilRequestRaw", e);
}
@@ -3105,8 +2774,8 @@
logStr = logStr + strings[i] + " ";
}
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " strings = "
- + logStr);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " strings = " + logStr);
}
try {
@@ -3130,8 +2799,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " enable = "
- + enable);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " enable = " + enable);
}
try {
@@ -3144,7 +2813,7 @@
@Override
public void writeSmsToSim(int status, String smsc, String pdu, Message result) {
- status = translateStatus(status);
+ status = RILUtils.convertToHalSmsWriteArgsStatus(status);
IRadio radioProxy = getRadioProxy(result);
if (radioProxy != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_WRITE_SMS_TO_SIM, result,
@@ -3152,14 +2821,14 @@
if (RILJ_LOGV) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest)
+ + RILUtils.requestToString(rr.mRequest)
+ " " + status);
}
SmsWriteArgs args = new SmsWriteArgs();
args.status = status;
- args.smsc = convertNullToEmptyString(smsc);
- args.pdu = convertNullToEmptyString(pdu);
+ args.smsc = RILUtils.convertNullToEmptyString(smsc);
+ args.pdu = RILUtils.convertNullToEmptyString(pdu);
try {
radioProxy.writeSmsToSim(rr.mSerial, args);
@@ -3178,7 +2847,7 @@
if (RILJ_LOGV) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest) + " index = " + index);
+ + RILUtils.requestToString(rr.mRequest) + " index = " + index);
}
try {
@@ -3197,7 +2866,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " bandMode = " + bandMode);
}
@@ -3216,7 +2885,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getAvailableBandModes(rr.mSerial);
@@ -3234,12 +2905,12 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " contents = "
- + contents);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " contents = " + contents);
}
try {
- radioProxy.sendEnvelope(rr.mSerial, convertNullToEmptyString(contents));
+ radioProxy.sendEnvelope(rr.mSerial, RILUtils.convertNullToEmptyString(contents));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "sendEnvelope", e);
}
@@ -3254,47 +2925,20 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " contents = "
- + (TelephonyUtils.IS_DEBUGGABLE
- ? contents : censoredTerminalResponse(contents)));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " contents = " + (TelephonyUtils.IS_DEBUGGABLE
+ ? contents : RILUtils.convertToCensoredTerminalResponse(contents)));
}
try {
radioProxy.sendTerminalResponseToSim(rr.mSerial,
- convertNullToEmptyString(contents));
+ RILUtils.convertNullToEmptyString(contents));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "sendTerminalResponse", e);
}
}
}
- private String censoredTerminalResponse(String terminalResponse) {
- try {
- byte[] bytes = IccUtils.hexStringToBytes(terminalResponse);
- if (bytes != null) {
- List<ComprehensionTlv> ctlvs = ComprehensionTlv.decodeMany(bytes, 0);
- int from = 0;
- for (ComprehensionTlv ctlv : ctlvs) {
- // Find text strings which might be personal information input by user,
- // then replace it with "********".
- if (ComprehensionTlvTag.TEXT_STRING.value() == ctlv.getTag()) {
- byte[] target = Arrays.copyOfRange(ctlv.getRawValue(), from,
- ctlv.getValueIndex() + ctlv.getLength());
- terminalResponse = terminalResponse.toLowerCase().replace(
- IccUtils.bytesToHexString(target).toLowerCase(), "********");
- }
- // The text string tag and the length field should also be hidden.
- from = ctlv.getValueIndex() + ctlv.getLength();
- }
- }
- } catch (Exception e) {
- Rlog.e(RILJ_LOG_TAG, "Could not censor the terminal response: " + e);
- terminalResponse = null;
- }
-
- return terminalResponse;
- }
-
@Override
public void sendEnvelopeWithStatus(String contents, Message result) {
IRadio radioProxy = getRadioProxy(result);
@@ -3303,12 +2947,13 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " contents = "
- + contents);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " contents = " + contents);
}
try {
- radioProxy.sendEnvelopeWithStatus(rr.mSerial, convertNullToEmptyString(contents));
+ radioProxy.sendEnvelopeWithStatus(rr.mSerial,
+ RILUtils.convertNullToEmptyString(contents));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "sendEnvelopeWithStatus", e);
}
@@ -3322,7 +2967,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_EXPLICIT_CALL_TRANSFER, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.explicitCallTransfer(rr.mSerial);
@@ -3340,7 +2987,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " networkType = " + networkType);
}
mAllowedNetworkTypesBitmask = RadioAccessFamily.getRafFromNetworkType(networkType);
@@ -3350,8 +2997,8 @@
android.hardware.radio.V1_4.IRadio radioProxy14 =
(android.hardware.radio.V1_4.IRadio) radioProxy;
try {
- radioProxy14.setPreferredNetworkTypeBitmap(
- rr.mSerial, convertToHalRadioAccessFamily(mAllowedNetworkTypesBitmask));
+ radioProxy14.setPreferredNetworkTypeBitmap(rr.mSerial,
+ RILUtils.convertToHalRadioAccessFamily(mAllowedNetworkTypesBitmask));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setPreferredNetworkTypeBitmap", e);
}
@@ -3365,154 +3012,15 @@
}
}
- /**
- * convert RAF from {@link android.hardware.radio.V1_0.RadioAccessFamily} to
- * {@link TelephonyManager.NetworkTypeBitMask}, the bitmask represented by
- * {@link android.telephony.Annotation.NetworkType}.
- *
- * @param raf {@link android.hardware.radio.V1_0.RadioAccessFamily}
- * @return {@link TelephonyManager.NetworkTypeBitMask}
- */
- @TelephonyManager.NetworkTypeBitMask
- public static int convertToNetworkTypeBitMask(int raf) {
- int networkTypeRaf = 0;
-
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.GSM) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GSM;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.GPRS) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GPRS;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EDGE) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EDGE;
- }
- // convert both IS95A/IS95B to CDMA as network mode doesn't support CDMA
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.IS95A) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.IS95B) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.ONE_X_RTT) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_0) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_A) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_B) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EHRPD) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSUPA) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSDPA) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSPA) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPA;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSPAP) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.UMTS) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_UMTS;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.TD_SCDMA) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.LTE) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
- }
- if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.LTE_CA) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;
- }
- if ((raf & android.hardware.radio.V1_4.RadioAccessFamily.NR) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_NR;
- }
- // TODO: need hal definition
- if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN)) != 0) {
- networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_IWLAN;
- }
- return (networkTypeRaf == 0) ? TelephonyManager.NETWORK_TYPE_UNKNOWN : networkTypeRaf;
- }
-
- // convert to android.hardware.radio.V1_0.RadioAccessFamily
- private static int convertToHalRadioAccessFamily(
- @TelephonyManager.NetworkTypeBitMask int networkTypeBitmask) {
- int raf = 0;
-
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_GSM) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.GSM;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_GPRS) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.GPRS;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EDGE) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.EDGE;
- }
- // convert CDMA to IS95A, consistent with ServiceState.networkTypeToRilRadioTechnology
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_CDMA) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.IS95A;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.ONE_X_RTT;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.EVDO_0;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.EVDO_A;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.EVDO_B;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.EHRPD;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSUPA;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSDPA;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSPA) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSPA;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSPAP;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_UMTS) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.UMTS;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.TD_SCDMA;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_LTE) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.LTE;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA) != 0) {
- raf |= android.hardware.radio.V1_0.RadioAccessFamily.LTE_CA;
- }
- if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_NR) != 0) {
- raf |= android.hardware.radio.V1_4.RadioAccessFamily.NR;
- }
- // TODO: need hal definition for IWLAN
- return (raf == 0) ? android.hardware.radio.V1_4.RadioAccessFamily.UNKNOWN : raf;
- }
-
@Override
public void getPreferredNetworkType(Message result) {
IRadio radioProxy = getRadioProxy(result);
if (radioProxy != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_4)) {
android.hardware.radio.V1_4.IRadio radioProxy14 =
(android.hardware.radio.V1_4.IRadio) radioProxy;
@@ -3549,12 +3057,12 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
mAllowedNetworkTypesBitmask = networkTypeBitmask;
try {
radioProxy16.setAllowedNetworkTypesBitmap(rr.mSerial,
- convertToHalRadioAccessFamily(mAllowedNetworkTypesBitmask));
+ RILUtils.convertToHalRadioAccessFamily(mAllowedNetworkTypesBitmask));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setAllowedNetworkTypeBitmask", e);
}
@@ -3577,7 +3085,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -3597,7 +3105,7 @@
if (RILJ_LOGD) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest) + " enable = " + enable);
+ + RILUtils.requestToString(rr.mRequest) + " enable = " + enable);
}
try {
@@ -3631,8 +3139,7 @@
workSource == null ? mRILDefaultWorkSource : workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -3674,8 +3181,8 @@
workSource == null ? mRILDefaultWorkSource : workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest) + " enable = " + nrDualConnectivityState);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " enable = " + nrDualConnectivityState);
}
try {
@@ -3695,7 +3202,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " cdmaSubscription = " + cdmaSubscription);
}
@@ -3714,7 +3221,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getCdmaRoamingPreference(rr.mSerial);
@@ -3732,7 +3241,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " cdmaRoamingType = " + cdmaRoamingType);
}
@@ -3751,7 +3260,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_QUERY_TTY_MODE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getTTYMode(rr.mSerial);
@@ -3769,7 +3280,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " ttyMode = " + ttyMode);
}
@@ -3789,7 +3300,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " enable = " + enable);
}
@@ -3808,7 +3319,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE,
result, mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getPreferredVoicePrivacy(rr.mSerial);
@@ -3826,12 +3339,13 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " featureCode = " + featureCode);
}
try {
- radioProxy.sendCDMAFeatureCode(rr.mSerial, convertNullToEmptyString(featureCode));
+ radioProxy.sendCDMAFeatureCode(rr.mSerial,
+ RILUtils.convertNullToEmptyString(featureCode));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "sendCDMAFeatureCode", e);
}
@@ -3846,56 +3360,19 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " dtmfString = " + dtmfString + " on = " + on + " off = " + off);
}
try {
- radioProxy.sendBurstDtmf(rr.mSerial, convertNullToEmptyString(dtmfString), on, off);
+ radioProxy.sendBurstDtmf(rr.mSerial, RILUtils.convertNullToEmptyString(dtmfString),
+ on, off);
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "sendBurstDtmf", e);
}
}
}
- private void constructCdmaSendSmsRilRequest(CdmaSmsMessage msg, byte[] pdu) {
- int addrNbrOfDigits;
- int subaddrNbrOfDigits;
- int bearerDataLength;
- ByteArrayInputStream bais = new ByteArrayInputStream(pdu);
- DataInputStream dis = new DataInputStream(bais);
-
- try {
- msg.teleserviceId = dis.readInt(); // teleServiceId
- msg.isServicePresent = (byte) dis.readInt() == 1 ? true : false; // servicePresent
- msg.serviceCategory = dis.readInt(); // serviceCategory
- msg.address.digitMode = dis.read(); // address digit mode
- msg.address.numberMode = dis.read(); // address number mode
- msg.address.numberType = dis.read(); // address number type
- msg.address.numberPlan = dis.read(); // address number plan
- addrNbrOfDigits = (byte) dis.read();
- for (int i = 0; i < addrNbrOfDigits; i++) {
- msg.address.digits.add(dis.readByte()); // address_orig_bytes[i]
- }
- msg.subAddress.subaddressType = dis.read(); //subaddressType
- msg.subAddress.odd = (byte) dis.read() == 1 ? true : false; //subaddr odd
- subaddrNbrOfDigits = (byte) dis.read();
- for (int i = 0; i < subaddrNbrOfDigits; i++) {
- msg.subAddress.digits.add(dis.readByte()); //subaddr_orig_bytes[i]
- }
-
- bearerDataLength = dis.read();
- for (int i = 0; i < bearerDataLength; i++) {
- msg.bearerData.add(dis.readByte()); //bearerData[i]
- }
- } catch (IOException ex) {
- if (RILJ_LOGD) {
- riljLog("sendSmsCdma: conversion from input stream to object failed: "
- + ex);
- }
- }
- }
-
@Override
public void sendCdmaSMSExpectMore(byte[] pdu, Message result) {
IRadio radioProxy = getRadioProxy(result);
@@ -3904,10 +3381,11 @@
mRILDefaultWorkSource);
// Do not log function arg for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
- CdmaSmsMessage msg = new CdmaSmsMessage();
- constructCdmaSendSmsRilRequest(msg, pdu);
+ CdmaSmsMessage msg = RILUtils.convertToHalCdmaSmsMessage(pdu);
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
android.hardware.radio.V1_6.IRadio radioProxy16 =
(android.hardware.radio.V1_6.IRadio) radioProxy;
@@ -3944,10 +3422,11 @@
mRILDefaultWorkSource);
// Do not log function arg for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
- CdmaSmsMessage msg = new CdmaSmsMessage();
- constructCdmaSendSmsRilRequest(msg, pdu);
+ CdmaSmsMessage msg = RILUtils.convertToHalCdmaSmsMessage(pdu);
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
try {
android.hardware.radio.V1_6.IRadio radioProxy16 =
@@ -3980,7 +3459,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " success = " + success + " cause = " + cause);
}
@@ -4003,7 +3482,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GSM_GET_BROADCAST_CONFIG, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getGsmBroadcastConfig(rr.mSerial);
@@ -4021,7 +3502,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " with " + config.length + " configs : ");
for (int i = 0; i < config.length; i++) {
riljLog(config[i].toString());
@@ -4059,7 +3540,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " activate = " + activate);
}
@@ -4078,7 +3559,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getCdmaBroadcastConfig(rr.mSerial);
@@ -4110,7 +3593,7 @@
}
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " with " + halConfigs.size() + " configs : ");
for (CdmaBroadcastSmsConfigInfo config : halConfigs) {
riljLog(config.toString());
@@ -4133,7 +3616,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " activate = " + activate);
}
@@ -4152,7 +3635,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_CDMA_SUBSCRIPTION, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getCDMASubscription(rr.mSerial);
@@ -4164,7 +3649,7 @@
@Override
public void writeSmsToRuim(int status, byte[] pdu, Message result) {
- status = translateStatus(status);
+ status = RILUtils.convertToHalSmsWriteArgsStatus(status);
IRadio radioProxy = getRadioProxy(result);
if (radioProxy != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM, result,
@@ -4172,13 +3657,13 @@
if (RILJ_LOGV) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest)
+ + RILUtils.requestToString(rr.mRequest)
+ " status = " + status);
}
CdmaSmsWriteArgs args = new CdmaSmsWriteArgs();
args.status = status;
- constructCdmaSendSmsRilRequest(args.message, pdu);
+ args.message = RILUtils.convertToHalCdmaSmsMessage(pdu);
try {
radioProxy.writeSmsToRuim(rr.mSerial, args);
@@ -4197,7 +3682,7 @@
if (RILJ_LOGV) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest)
+ + RILUtils.requestToString(rr.mRequest)
+ " index = " + index);
}
@@ -4216,7 +3701,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_DEVICE_IDENTITY, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getDeviceIdentity(rr.mSerial);
@@ -4233,7 +3720,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.exitEmergencyCallbackMode(rr.mSerial);
@@ -4250,7 +3739,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_SMSC_ADDRESS, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getSmscAddress(rr.mSerial);
@@ -4268,12 +3759,12 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " address = " + address);
}
try {
- radioProxy.setSmscAddress(rr.mSerial, convertNullToEmptyString(address));
+ radioProxy.setSmscAddress(rr.mSerial, RILUtils.convertNullToEmptyString(address));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setSmscAddress", e);
}
@@ -4289,7 +3780,7 @@
if (RILJ_LOGD) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest) + " available = " + available);
+ + RILUtils.requestToString(rr.mRequest) + " available = " + available);
}
try {
@@ -4307,7 +3798,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.reportStkServiceIsRunning(rr.mSerial);
@@ -4324,7 +3817,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getCdmaSubscriptionSource(rr.mSerial);
@@ -4342,13 +3837,13 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " success = " + success);
}
try {
radioProxy.acknowledgeIncomingGsmSmsWithPdu(rr.mSerial, success,
- convertNullToEmptyString(ackPdu));
+ RILUtils.convertNullToEmptyString(ackPdu));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "acknowledgeIncomingGsmSmsWithPdu", e);
}
@@ -4362,7 +3857,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_VOICE_RADIO_TECH, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getVoiceRadioTechnology(rr.mSerial);
@@ -4381,7 +3878,7 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -4408,7 +3905,7 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " rateInMillis = " + rateInMillis);
}
@@ -4428,7 +3925,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + dataProfile);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + dataProfile);
}
try {
@@ -4437,18 +3935,18 @@
android.hardware.radio.V1_5.IRadio radioProxy15 =
(android.hardware.radio.V1_5.IRadio) radioProxy;
radioProxy15.setInitialAttachApn_1_5(rr.mSerial,
- convertToHalDataProfile15(dataProfile));
+ RILUtils.convertToHalDataProfile15(dataProfile));
} else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_4)) {
// v1.4
android.hardware.radio.V1_4.IRadio radioProxy14 =
(android.hardware.radio.V1_4.IRadio) radioProxy;
radioProxy14.setInitialAttachApn_1_4(rr.mSerial,
- convertToHalDataProfile14(dataProfile));
+ RILUtils.convertToHalDataProfile14(dataProfile));
} else {
// v1.3, v1.2, v1.1, and v1.0
radioProxy.setInitialAttachApn(rr.mSerial,
- convertToHalDataProfile10(dataProfile), dataProfile.isPersistent(),
- isRoaming);
+ RILUtils.convertToHalDataProfile10(dataProfile),
+ dataProfile.isPersistent(), isRoaming);
}
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setInitialAttachApn", e);
@@ -4464,7 +3962,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -4484,14 +3982,16 @@
mRILDefaultWorkSource);
// Do not log function args for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
ImsSmsMessage msg = new ImsSmsMessage();
msg.tech = RadioTechnologyFamily.THREE_GPP;
msg.retry = (byte) retry >= 1 ? true : false;
msg.messageRef = messageRef;
- GsmSmsMessage gsmMsg = constructGsmSendSmsRilRequest(smscPdu, pdu);
+ GsmSmsMessage gsmMsg = RILUtils.convertToHalGsmSmsMessage(smscPdu, pdu);
msg.gsmMessage.add(gsmMsg);
try {
radioProxy.sendImsSms(rr.mSerial, msg);
@@ -4511,16 +4011,15 @@
mRILDefaultWorkSource);
// Do not log function args for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
ImsSmsMessage msg = new ImsSmsMessage();
msg.tech = RadioTechnologyFamily.THREE_GPP2;
msg.retry = (byte) retry >= 1 ? true : false;
msg.messageRef = messageRef;
-
- CdmaSmsMessage cdmaMsg = new CdmaSmsMessage();
- constructCdmaSendSmsRilRequest(cdmaMsg, pdu);
- msg.cdmaMessage.add(cdmaMsg);
+ msg.cdmaMessage.add(RILUtils.convertToHalCdmaSmsMessage(pdu));
try {
radioProxy.sendImsSms(rr.mSerial, msg);
@@ -4532,19 +4031,6 @@
}
}
- private SimApdu createSimApdu(int channel, int cla, int instruction, int p1, int p2, int p3,
- String data) {
- SimApdu msg = new SimApdu();
- msg.sessionId = channel;
- msg.cla = cla;
- msg.instruction = instruction;
- msg.p1 = p1;
- msg.p2 = p2;
- msg.p3 = p3;
- msg.data = convertNullToEmptyString(data);
- return msg;
- }
-
@Override
public void iccTransmitApduBasicChannel(int cla, int instruction, int p1, int p2,
int p3, String data, Message result) {
@@ -4555,16 +4041,16 @@
if (RILJ_LOGD) {
if (TelephonyUtils.IS_DEBUGGABLE) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ String.format(" cla = 0x%02X ins = 0x%02X", cla, instruction)
+ String.format(" p1 = 0x%02X p2 = 0x%02X p3 = 0x%02X", p1, p2, p3)
+ " data = " + data);
} else {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
}
- SimApdu msg = createSimApdu(0, cla, instruction, p1, p2, p3, data);
+ SimApdu msg = RILUtils.convertToHalSimApdu(0, cla, instruction, p1, p2, p3, data);
try {
radioProxy.iccTransmitApduBasicChannel(rr.mSerial, msg);
} catch (RemoteException | RuntimeException e) {
@@ -4582,15 +4068,16 @@
if (RILJ_LOGD) {
if (TelephonyUtils.IS_DEBUGGABLE) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " aid = " + aid
- + " p2 = " + p2);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " aid = " + aid + " p2 = " + p2);
} else {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
}
try {
- radioProxy.iccOpenLogicalChannel(rr.mSerial, convertNullToEmptyString(aid), p2);
+ radioProxy.iccOpenLogicalChannel(rr.mSerial, RILUtils.convertNullToEmptyString(aid),
+ p2);
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "iccOpenLogicalChannel", e);
}
@@ -4605,8 +4092,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " channel = "
- + channel);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " channel = " + channel);
}
try {
@@ -4633,17 +4120,17 @@
if (RILJ_LOGD) {
if (TelephonyUtils.IS_DEBUGGABLE) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ String.format(" channel = %d", channel)
+ String.format(" cla = 0x%02X ins = 0x%02X", cla, instruction)
+ String.format(" p1 = 0x%02X p2 = 0x%02X p3 = 0x%02X", p1, p2, p3)
+ " data = " + data);
} else {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
}
- SimApdu msg = createSimApdu(channel, cla, instruction, p1, p2, p3, data);
+ SimApdu msg = RILUtils.convertToHalSimApdu(channel, cla, instruction, p1, p2, p3, data);
try {
radioProxy.iccTransmitApduLogicalChannel(rr.mSerial, msg);
@@ -4662,7 +4149,7 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " itemId = " + itemID);
}
@@ -4683,13 +4170,13 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " itemId = " + itemId + " itemValue = " + itemValue);
}
NvWriteItem item = new NvWriteItem();
item.itemId = itemId;
- item.value = convertNullToEmptyString(itemValue);
+ item.value = RILUtils.convertNullToEmptyString(itemValue);
try {
radioProxy.nvWriteItem(rr.mSerial, item);
@@ -4707,7 +4194,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " PreferredRoamingList = 0x"
+ IccUtils.bytesToHexString(preferredRoamingList));
}
@@ -4733,12 +4220,12 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " resetType = " + resetType);
}
try {
- radioProxy.nvResetConfig(rr.mSerial, convertToHalResetNvType(resetType));
+ radioProxy.nvResetConfig(rr.mSerial, RILUtils.convertToHalResetNvType(resetType));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "nvResetConfig", e);
}
@@ -4754,7 +4241,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " slot = " + slotId + " appIndex = " + appIndex
+ " subId = " + subId + " subStatus = " + subStatus);
}
@@ -4781,7 +4268,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " allowed = " + allowed);
}
@@ -4801,7 +4288,9 @@
mRILDefaultWorkSource);
// Do not log function args for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.getHardwareConfig(rr.mSerial);
@@ -4820,13 +4309,15 @@
mRILDefaultWorkSource);
// Do not log function args for privacy
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy.requestIccSimAuthentication(rr.mSerial,
authContext,
- convertNullToEmptyString(data),
- convertNullToEmptyString(aid));
+ RILUtils.convertNullToEmptyString(data),
+ RILUtils.convertNullToEmptyString(aid));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "requestIccSimAuthentication", e);
}
@@ -4847,11 +4338,11 @@
ArrayList<android.hardware.radio.V1_5.DataProfileInfo> dpis = new ArrayList<>();
for (DataProfile dp : dps) {
- dpis.add(convertToHalDataProfile15(dp));
+ dpis.add(RILUtils.convertToHalDataProfile15(dp));
}
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " with data profiles : ");
for (DataProfile profile : dps) {
riljLog(profile.toString());
@@ -4866,11 +4357,11 @@
ArrayList<android.hardware.radio.V1_4.DataProfileInfo> dpis = new ArrayList<>();
for (DataProfile dp : dps) {
- dpis.add(convertToHalDataProfile14(dp));
+ dpis.add(RILUtils.convertToHalDataProfile14(dp));
}
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " with data profiles : ");
for (DataProfile profile : dps) {
riljLog(profile.toString());
@@ -4885,13 +4376,13 @@
// For v1.0 to v1.2, we only send data profiles that has the persistent
// (a.k.a modem cognitive) bit set to true.
if (dp.isPersistent()) {
- dpis.add(convertToHalDataProfile10(dp));
+ dpis.add(RILUtils.convertToHalDataProfile10(dp));
}
}
if (!dpis.isEmpty()) {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " with data profiles : ");
for (DataProfile profile : dps) {
riljLog(profile.toString());
@@ -4915,7 +4406,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -4934,7 +4425,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -4953,7 +4444,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " RadioCapability = " + rc.toString());
}
@@ -4963,7 +4454,7 @@
halRc.session = rc.getSession();
halRc.phase = rc.getPhase();
halRc.raf = rc.getRadioAccessFamily();
- halRc.logicalModemUuid = convertNullToEmptyString(rc.getLogicalModemUuid());
+ halRc.logicalModemUuid = RILUtils.convertNullToEmptyString(rc.getLogicalModemUuid());
halRc.status = rc.getStatus();
try {
@@ -4989,7 +4480,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " reportIntervalMs = " + reportIntervalMs + " pullMode = " + pullMode);
}
@@ -5015,7 +4506,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -5056,7 +4547,7 @@
if (RILJ_LOGD) {
riljLog(rr.serialString() + "> "
- + requestToString(rr.mRequest)
+ + RILUtils.requestToString(rr.mRequest)
+ " dataThrottlingAction = " + dataThrottlingAction
+ " completionWindowMillis " + completionWindowMillis);
}
@@ -5089,7 +4580,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -5109,7 +4600,7 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -5127,41 +4618,6 @@
}
- /**
- * Convert a list of CarrierIdentifier into a list of Carrier defined in 1.0/types.hal.
- * @param carriers List of CarrierIdentifier
- * @return List of converted objects
- */
- @VisibleForTesting
- public static ArrayList<Carrier> createCarrierRestrictionList(
- List<CarrierIdentifier> carriers) {
- ArrayList<Carrier> result = new ArrayList<>();
- for (CarrierIdentifier ci : carriers) {
- Carrier c = new Carrier();
- c.mcc = convertNullToEmptyString(ci.getMcc());
- c.mnc = convertNullToEmptyString(ci.getMnc());
- int matchType = CarrierIdentifier.MatchType.ALL;
- String matchData = null;
- if (!TextUtils.isEmpty(ci.getSpn())) {
- matchType = CarrierIdentifier.MatchType.SPN;
- matchData = ci.getSpn();
- } else if (!TextUtils.isEmpty(ci.getImsi())) {
- matchType = CarrierIdentifier.MatchType.IMSI_PREFIX;
- matchData = ci.getImsi();
- } else if (!TextUtils.isEmpty(ci.getGid1())) {
- matchType = CarrierIdentifier.MatchType.GID1;
- matchData = ci.getGid1();
- } else if (!TextUtils.isEmpty(ci.getGid2())) {
- matchType = CarrierIdentifier.MatchType.GID2;
- matchData = ci.getGid2();
- }
- c.matchType = matchType;
- c.matchData = convertNullToEmptyString(matchData);
- result.add(c);
- }
- return result;
- }
-
@Override
public void setAllowedCarriers(CarrierRestrictionRules carrierRestrictionRules,
Message result, WorkSource workSource) {
@@ -5176,7 +4632,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_ALLOWED_CARRIERS, result, workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " params: "
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest) + " params: "
+ carrierRestrictionRules);
}
@@ -5197,10 +4653,10 @@
// Prepare structure with allowed list, excluded list and priority
CarrierRestrictionsWithPriority carrierRestrictions =
new CarrierRestrictionsWithPriority();
- carrierRestrictions.allowedCarriers =
- createCarrierRestrictionList(carrierRestrictionRules.getAllowedCarriers());
- carrierRestrictions.excludedCarriers =
- createCarrierRestrictionList(carrierRestrictionRules.getExcludedCarriers());
+ carrierRestrictions.allowedCarriers = RILUtils.convertToHalCarrierRestrictionList(
+ carrierRestrictionRules.getAllowedCarriers());
+ carrierRestrictions.excludedCarriers = RILUtils.convertToHalCarrierRestrictionList(
+ carrierRestrictionRules.getExcludedCarriers());
carrierRestrictions.allowedCarriersPrioritized =
(carrierRestrictionRules.getDefaultCarrierRestriction()
== CarrierRestrictionRules.CARRIER_RESTRICTION_DEFAULT_NOT_ALLOWED);
@@ -5234,8 +4690,8 @@
// Prepare structure with allowed list
CarrierRestrictions carrierRestrictions = new CarrierRestrictions();
- carrierRestrictions.allowedCarriers =
- createCarrierRestrictionList(carrierRestrictionRules.getAllowedCarriers());
+ carrierRestrictions.allowedCarriers = RILUtils.convertToHalCarrierRestrictionList(
+ carrierRestrictionRules.getAllowedCarriers());
try {
radioProxy.setAllowedCarriers(rr.mSerial, isAllCarriersAllowed,
@@ -5257,7 +4713,7 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_4)) {
@@ -5291,7 +4747,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " "
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest) + " "
+ stateType + ":" + state);
}
@@ -5311,7 +4767,8 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " " + filter);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " " + filter);
}
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) {
@@ -5360,7 +4817,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA,
result, mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
android.hardware.radio.V1_2.IRadio radioProxy12 =
@@ -5368,8 +4825,8 @@
radioProxy12.setSignalStrengthReportingCriteria(rr.mSerial,
signalThresholdInfo.getHysteresisMs(),
signalThresholdInfo.getHysteresisDb(),
- primitiveArrayToArrayList(signalThresholdInfo.getThresholds()),
- convertAntToHalAnt(ran));
+ RILUtils.primitiveArrayToArrayList(signalThresholdInfo.getThresholds()),
+ RILUtils.convertToHalAccessNetwork(ran));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(rr, "setSignalStrengthReportingCriteria", e);
}
@@ -5378,14 +4835,14 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA,
result, mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
android.hardware.radio.V1_5.IRadio radioProxy15 =
(android.hardware.radio.V1_5.IRadio) radioProxy;
radioProxy15.setSignalStrengthReportingCriteria_1_5(rr.mSerial,
- convertToHalSignalThresholdInfo(signalThresholdInfo),
- convertAntToHalAnt(ran));
+ RILUtils.convertToHalSignalThresholdInfo(signalThresholdInfo),
+ RILUtils.convertToHalAccessNetwork(ran));
} catch (RemoteException | RuntimeException e) {
handleRadioProxyExceptionForRR(
rr, "setSignalStrengthReportingCriteria_1_5", e);
@@ -5394,19 +4851,6 @@
}
}
- private static android.hardware.radio.V1_5.SignalThresholdInfo convertToHalSignalThresholdInfo(
- SignalThresholdInfo signalThresholdInfo) {
- android.hardware.radio.V1_5.SignalThresholdInfo signalThresholdInfoHal =
- new android.hardware.radio.V1_5.SignalThresholdInfo();
- signalThresholdInfoHal.signalMeasurement = signalThresholdInfo.getSignalMeasurementType();
- signalThresholdInfoHal.hysteresisMs = signalThresholdInfo.getHysteresisMs();
- signalThresholdInfoHal.hysteresisDb = signalThresholdInfo.getHysteresisDb();
- signalThresholdInfoHal.thresholds = primitiveArrayToArrayList(
- signalThresholdInfo.getThresholds());
- signalThresholdInfoHal.isEnabled = signalThresholdInfo.isEnabled();
- return signalThresholdInfoHal;
- }
-
@Override
public void setLinkCapacityReportingCriteria(int hysteresisMs, int hysteresisDlKbps,
int hysteresisUlKbps, int[] thresholdsDlKbps, int[] thresholdsUlKbps, int ran,
@@ -5416,7 +4860,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA, result,
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) {
@@ -5424,8 +4868,9 @@
(android.hardware.radio.V1_5.IRadio) radioProxy;
radioProxy15.setLinkCapacityReportingCriteria_1_5(rr.mSerial, hysteresisMs,
hysteresisDlKbps, hysteresisUlKbps,
- primitiveArrayToArrayList(thresholdsDlKbps),
- primitiveArrayToArrayList(thresholdsUlKbps), convertAntToHalAnt(ran));
+ RILUtils.primitiveArrayToArrayList(thresholdsDlKbps),
+ RILUtils.primitiveArrayToArrayList(thresholdsUlKbps),
+ RILUtils.convertToHalAccessNetwork(ran));
} else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_2)) {
android.hardware.radio.V1_2.IRadio radioProxy12 =
(android.hardware.radio.V1_2.IRadio) radioProxy;
@@ -5434,8 +4879,9 @@
}
radioProxy12.setLinkCapacityReportingCriteria(rr.mSerial, hysteresisMs,
hysteresisDlKbps, hysteresisUlKbps,
- primitiveArrayToArrayList(thresholdsDlKbps),
- primitiveArrayToArrayList(thresholdsUlKbps), convertAntToHalAnt(ran));
+ RILUtils.primitiveArrayToArrayList(thresholdsDlKbps),
+ RILUtils.primitiveArrayToArrayList(thresholdsUlKbps),
+ RILUtils.convertToHalAccessNetwork(ran));
} else {
riljLoge("setLinkCapacityReportingCriteria ignored on IRadio version less "
+ "than 1.2");
@@ -5446,46 +4892,6 @@
}
}
- /** Converts from AccessNetworkType in frameworks to AccessNetwork in HAL. */
- private static int convertAntToHalAnt(int radioAccessNetwork) {
- switch (radioAccessNetwork) {
- case AccessNetworkType.GERAN:
- return AccessNetwork.GERAN;
- case AccessNetworkType.UTRAN:
- return AccessNetwork.UTRAN;
- case AccessNetworkType.EUTRAN:
- return AccessNetwork.EUTRAN;
- case AccessNetworkType.CDMA2000:
- return AccessNetwork.CDMA2000;
- case AccessNetworkType.IWLAN:
- return AccessNetwork.IWLAN;
- case AccessNetworkType.NGRAN:
- return AccessNetwork.NGRAN;
- case AccessNetworkType.UNKNOWN:
- default:
- return AccessNetwork.UNKNOWN;
- }
- }
-
- /** Converts from AccessNetworkType in frameworks to RadioAccessNetworks in HAL. */
- private static int convertAntToRan(int accessNetworkType) {
- switch (accessNetworkType) {
- case AccessNetworkType.GERAN:
- return RadioAccessNetworks.GERAN;
- case AccessNetworkType.UTRAN:
- return RadioAccessNetworks.UTRAN;
- case AccessNetworkType.EUTRAN:
- return RadioAccessNetworks.EUTRAN;
- case AccessNetworkType.NGRAN:
- return RadioAccessNetworks.NGRAN;
- case AccessNetworkType.CDMA2000:
- return RadioAccessNetworks.CDMA2000;
- case AccessNetworkType.UNKNOWN:
- default:
- return RadioAccessNetworks.UNKNOWN;
- }
- }
-
@Override
public void setSimCardPower(int state, Message result, WorkSource workSource) {
workSource = getDefaultWorkSourceIfInvalid(workSource);
@@ -5495,7 +4901,8 @@
workSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " " + state);
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ + " " + state);
}
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
@@ -5552,7 +4959,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_CARRIER_INFO_IMSI_ENCRYPTION, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
android.hardware.radio.V1_6.ImsiEncryptionInfo halImsiInfo =
@@ -5581,7 +4990,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_SET_CARRIER_INFO_IMSI_ENCRYPTION, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
android.hardware.radio.V1_1.ImsiEncryptionInfo halImsiInfo =
@@ -5632,7 +5043,7 @@
RILRequest rr = obtainRequest(
RIL_REQUEST_START_KEEPALIVE, result, mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
try {
android.hardware.radio.V1_1.KeepaliveRequest req =
@@ -5653,10 +5064,10 @@
final InetAddress srcAddress = packetData.getSrcAddress();
final InetAddress dstAddress = packetData.getDstAddress();
- appendPrimitiveArrayToArrayList(
+ RILUtils.appendPrimitiveArrayToArrayList(
srcAddress.getAddress(), req.sourceAddress);
req.sourcePort = packetData.getSrcPort();
- appendPrimitiveArrayToArrayList(
+ RILUtils.appendPrimitiveArrayToArrayList(
dstAddress.getAddress(), req.destinationAddress);
req.destinationPort = packetData.getDstPort();
req.maxKeepaliveIntervalMillis = intervalMillis;
@@ -5687,7 +5098,7 @@
RILRequest rr = obtainRequest(
RIL_REQUEST_STOP_KEEPALIVE, result, mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
try {
radioProxy11.stopKeepalive(rr.mSerial, sessionHandle);
@@ -5749,7 +5160,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_ENABLE_UICC_APPLICATIONS,
onCompleteMessage, mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
try {
radioProxy15.enableUiccApplications(rr.mSerial, enable);
@@ -5783,7 +5194,7 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT,
onCompleteMessage, mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
try {
radioProxy15.areUiccApplicationsEnabled(rr.mSerial);
@@ -5801,26 +5212,6 @@
.greaterOrEqual(RADIO_HAL_VERSION_1_5);
}
- /**
- * Translates EF_SMS status bits to a status value compatible with
- * SMS AT commands. See TS 27.005 3.1.
- */
- private int translateStatus(int status) {
- switch(status & 0x7) {
- case SmsManager.STATUS_ON_ICC_READ:
- return 1;
- case SmsManager.STATUS_ON_ICC_UNREAD:
- return 0;
- case SmsManager.STATUS_ON_ICC_SENT:
- return 3;
- case SmsManager.STATUS_ON_ICC_UNSENT:
- return 2;
- }
-
- // Default to READ.
- return 1;
- }
-
@Override
public void resetRadio(Message result) {
throw new RuntimeException("resetRadio not expected to be called");
@@ -5837,7 +5228,7 @@
result, mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
try {
@@ -5871,7 +5262,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_BARRING_INFO, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy15.getBarringInfo(rr.mSerial);
@@ -5891,7 +5284,9 @@
if (radioProxy16 != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_ALLOCATE_PDU_SESSION_ID, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy16.allocatePduSessionId(rr.mSerial);
@@ -5915,7 +5310,9 @@
if (radioProxy16 != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_RELEASE_PDU_SESSION_ID, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy16.releasePduSessionId(rr.mSerial, pduSessionId);
@@ -5939,7 +5336,9 @@
if (radioProxy16 != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_START_HANDOVER, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy16.startHandover(rr.mSerial, callId);
@@ -5964,7 +5363,9 @@
if (radioProxy16 != null) {
RILRequest rr = obtainRequest(RIL_REQUEST_CANCEL_HANDOVER, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy16.cancelHandover(rr.mSerial, callId);
@@ -5987,7 +5388,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
@@ -6017,7 +5418,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
}
if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_6)) {
@@ -6047,7 +5448,7 @@
mRILDefaultWorkSource);
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)
+ " with " + phonebookRecord.toString());
}
@@ -6084,7 +5485,9 @@
RILRequest rr = obtainRequest(RIL_REQUEST_GET_SLICING_CONFIG, result,
mRILDefaultWorkSource);
- if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
+ if (RILJ_LOGD) {
+ riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest));
+ }
try {
radioProxy16.getSlicingConfig(rr.mSerial);
@@ -6136,7 +5539,7 @@
} else {
decrementWakeLock(rr);
if (RIL.RILJ_LOGD) {
- riljLog(rr.serialString() + " Ack < " + RIL.requestToString(rr.mRequest));
+ riljLog(rr.serialString() + " Ack < " + RILUtils.requestToString(rr.mRequest));
}
}
}
@@ -6167,6 +5570,19 @@
return processResponseInternal(responseInfo.serial, responseInfo.error, responseInfo.type);
}
+ /**
+ * This is a helper function for an AIDL RadioResponseInfo to be called when a RadioResponse
+ * callback is called.
+ * It takes care of acks, wakelocks, and finds and returns RILRequest corresponding to the
+ * response if one is found.
+ * @param responseInfo RadioResponseInfo received in response callback
+ * @return RILRequest corresponding to the response
+ */
+ @VisibleForTesting
+ public RILRequest processResponse(android.hardware.radio.RadioResponseInfo responseInfo) {
+ return processResponseInternal(responseInfo.serial, responseInfo.error, responseInfo.type);
+ }
+
private RILRequest processResponseInternal(int serial, int error, int type) {
RILRequest rr = null;
@@ -6182,7 +5598,7 @@
mRadioBugDetector.detectRadioBug(rr.mRequest, error);
}
if (RILJ_LOGD) {
- riljLog(rr.serialString() + " Ack < " + requestToString(rr.mRequest));
+ riljLog(rr.serialString() + " Ack < " + RILUtils.requestToString(rr.mRequest));
}
}
return rr;
@@ -6204,7 +5620,7 @@
sendAck();
if (RIL.RILJ_LOGD) {
riljLog("Response received for " + rr.serialString() + " "
- + RIL.requestToString(rr.mRequest) + " Sending ack to ril.cpp");
+ + RILUtils.requestToString(rr.mRequest) + " Sending ack to ril.cpp");
}
} else {
// ack sent for SOLICITED_ACK_EXP above; nothing to do for SOLICITED response
@@ -6290,16 +5706,31 @@
processResponseDoneInternal(rr, responseInfo.error, responseInfo.type, ret);
}
+ /**
+ * This is a helper function to be called at the end of the RadioResponse callbacks using for
+ * RadioResponseInfo AIDL.
+ * It takes care of sending error response, logging, decrementing wakelock if needed, and
+ * releases the request from memory pool.
+ * @param rr RILRequest for which response callback was called
+ * @param responseInfo RadioResponseInfo received in the callback
+ * @param ret object to be returned to request sender
+ */
+ @VisibleForTesting
+ public void processResponseDone(RILRequest rr,
+ android.hardware.radio.RadioResponseInfo responseInfo, Object ret) {
+ processResponseDoneInternal(rr, responseInfo.error, responseInfo.type, ret);
+ }
+
private void processResponseDoneInternal(
RILRequest rr, int rilError, int responseType, Object ret) {
if (rilError == 0) {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "< " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "< " + RILUtils.requestToString(rr.mRequest)
+ " " + retToString(rr.mRequest, ret));
}
} else {
if (RILJ_LOGD) {
- riljLog(rr.serialString() + "< " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "< " + RILUtils.requestToString(rr.mRequest)
+ " error " + rilError);
}
rr.onError(rilError, ret);
@@ -6319,7 +5750,7 @@
@VisibleForTesting
public void processResponseFallback(RILRequest rr, RadioResponseInfo responseInfo, Object ret) {
if (responseInfo.error == REQUEST_NOT_SUPPORTED && RILJ_LOGD) {
- riljLog(rr.serialString() + "< " + requestToString(rr.mRequest)
+ riljLog(rr.serialString() + "< " + RILUtils.requestToString(rr.mRequest)
+ " request not supported, falling back");
}
processResponseCleanUp(rr, responseInfo.error, responseInfo.type, ret);
@@ -6515,7 +5946,7 @@
rr = mRequestList.valueAt(i);
if (RILJ_LOGD && loggable) {
Rlog.d(RILJ_LOG_TAG, i + ": [" + rr.mSerial + "] "
- + requestToString(rr.mRequest));
+ + RILUtils.requestToString(rr.mRequest));
}
rr.onError(error, null);
decrementWakeLock(rr);
@@ -6692,8 +6123,7 @@
}
@UnsupportedAppUsage
- void
- notifyRegistrantsCdmaInfoRec(CdmaInformationRecords infoRec) {
+ void notifyRegistrantsCdmaInfoRec(CdmaInformationRecords infoRec) {
int response = RIL_UNSOL_CDMA_INFO_REC;
if (infoRec.record instanceof CdmaInformationRecords.CdmaDisplayInfoRec) {
if (mDisplayInfoRegistrants != null) {
@@ -6743,493 +6173,6 @@
}
@UnsupportedAppUsage
- static String requestToString(int request) {
- switch(request) {
- case RIL_REQUEST_GET_SIM_STATUS:
- return "GET_SIM_STATUS";
- case RIL_REQUEST_ENTER_SIM_PIN:
- return "ENTER_SIM_PIN";
- case RIL_REQUEST_ENTER_SIM_PUK:
- return "ENTER_SIM_PUK";
- case RIL_REQUEST_ENTER_SIM_PIN2:
- return "ENTER_SIM_PIN2";
- case RIL_REQUEST_ENTER_SIM_PUK2:
- return "ENTER_SIM_PUK2";
- case RIL_REQUEST_CHANGE_SIM_PIN:
- return "CHANGE_SIM_PIN";
- case RIL_REQUEST_CHANGE_SIM_PIN2:
- return "CHANGE_SIM_PIN2";
- case RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION:
- return "ENTER_NETWORK_DEPERSONALIZATION";
- case RIL_REQUEST_GET_CURRENT_CALLS:
- return "GET_CURRENT_CALLS";
- case RIL_REQUEST_DIAL:
- return "DIAL";
- case RIL_REQUEST_GET_IMSI:
- return "GET_IMSI";
- case RIL_REQUEST_HANGUP:
- return "HANGUP";
- case RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND:
- return "HANGUP_WAITING_OR_BACKGROUND";
- case RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND:
- return "HANGUP_FOREGROUND_RESUME_BACKGROUND";
- case RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE:
- return "REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE";
- case RIL_REQUEST_CONFERENCE:
- return "CONFERENCE";
- case RIL_REQUEST_UDUB:
- return "UDUB";
- case RIL_REQUEST_LAST_CALL_FAIL_CAUSE:
- return "LAST_CALL_FAIL_CAUSE";
- case RIL_REQUEST_SIGNAL_STRENGTH:
- return "SIGNAL_STRENGTH";
- case RIL_REQUEST_VOICE_REGISTRATION_STATE:
- return "VOICE_REGISTRATION_STATE";
- case RIL_REQUEST_DATA_REGISTRATION_STATE:
- return "DATA_REGISTRATION_STATE";
- case RIL_REQUEST_OPERATOR:
- return "OPERATOR";
- case RIL_REQUEST_RADIO_POWER:
- return "RADIO_POWER";
- case RIL_REQUEST_DTMF:
- return "DTMF";
- case RIL_REQUEST_SEND_SMS:
- return "SEND_SMS";
- case RIL_REQUEST_SEND_SMS_EXPECT_MORE:
- return "SEND_SMS_EXPECT_MORE";
- case RIL_REQUEST_SETUP_DATA_CALL:
- return "SETUP_DATA_CALL";
- case RIL_REQUEST_SIM_IO:
- return "SIM_IO";
- case RIL_REQUEST_SEND_USSD:
- return "SEND_USSD";
- case RIL_REQUEST_CANCEL_USSD:
- return "CANCEL_USSD";
- case RIL_REQUEST_GET_CLIR:
- return "GET_CLIR";
- case RIL_REQUEST_SET_CLIR:
- return "SET_CLIR";
- case RIL_REQUEST_QUERY_CALL_FORWARD_STATUS:
- return "QUERY_CALL_FORWARD_STATUS";
- case RIL_REQUEST_SET_CALL_FORWARD:
- return "SET_CALL_FORWARD";
- case RIL_REQUEST_QUERY_CALL_WAITING:
- return "QUERY_CALL_WAITING";
- case RIL_REQUEST_SET_CALL_WAITING:
- return "SET_CALL_WAITING";
- case RIL_REQUEST_SMS_ACKNOWLEDGE:
- return "SMS_ACKNOWLEDGE";
- case RIL_REQUEST_GET_IMEI:
- return "GET_IMEI";
- case RIL_REQUEST_GET_IMEISV:
- return "GET_IMEISV";
- case RIL_REQUEST_ANSWER:
- return "ANSWER";
- case RIL_REQUEST_DEACTIVATE_DATA_CALL:
- return "DEACTIVATE_DATA_CALL";
- case RIL_REQUEST_QUERY_FACILITY_LOCK:
- return "QUERY_FACILITY_LOCK";
- case RIL_REQUEST_SET_FACILITY_LOCK:
- return "SET_FACILITY_LOCK";
- case RIL_REQUEST_CHANGE_BARRING_PASSWORD:
- return "CHANGE_BARRING_PASSWORD";
- case RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE:
- return "QUERY_NETWORK_SELECTION_MODE";
- case RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC:
- return "SET_NETWORK_SELECTION_AUTOMATIC";
- case RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL:
- return "SET_NETWORK_SELECTION_MANUAL";
- case RIL_REQUEST_QUERY_AVAILABLE_NETWORKS :
- return "QUERY_AVAILABLE_NETWORKS ";
- case RIL_REQUEST_DTMF_START:
- return "DTMF_START";
- case RIL_REQUEST_DTMF_STOP:
- return "DTMF_STOP";
- case RIL_REQUEST_BASEBAND_VERSION:
- return "BASEBAND_VERSION";
- case RIL_REQUEST_SEPARATE_CONNECTION:
- return "SEPARATE_CONNECTION";
- case RIL_REQUEST_SET_MUTE:
- return "SET_MUTE";
- case RIL_REQUEST_GET_MUTE:
- return "GET_MUTE";
- case RIL_REQUEST_QUERY_CLIP:
- return "QUERY_CLIP";
- case RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE:
- return "LAST_DATA_CALL_FAIL_CAUSE";
- case RIL_REQUEST_DATA_CALL_LIST:
- return "DATA_CALL_LIST";
- case RIL_REQUEST_RESET_RADIO:
- return "RESET_RADIO";
- case RIL_REQUEST_OEM_HOOK_RAW:
- return "OEM_HOOK_RAW";
- case RIL_REQUEST_OEM_HOOK_STRINGS:
- return "OEM_HOOK_STRINGS";
- case RIL_REQUEST_SCREEN_STATE:
- return "SCREEN_STATE";
- case RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION:
- return "SET_SUPP_SVC_NOTIFICATION";
- case RIL_REQUEST_WRITE_SMS_TO_SIM:
- return "WRITE_SMS_TO_SIM";
- case RIL_REQUEST_DELETE_SMS_ON_SIM:
- return "DELETE_SMS_ON_SIM";
- case RIL_REQUEST_SET_BAND_MODE:
- return "SET_BAND_MODE";
- case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE:
- return "QUERY_AVAILABLE_BAND_MODE";
- case RIL_REQUEST_STK_GET_PROFILE:
- return "STK_GET_PROFILE";
- case RIL_REQUEST_STK_SET_PROFILE:
- return "STK_SET_PROFILE";
- case RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND:
- return "STK_SEND_ENVELOPE_COMMAND";
- case RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE:
- return "STK_SEND_TERMINAL_RESPONSE";
- case RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM:
- return "STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM";
- case RIL_REQUEST_EXPLICIT_CALL_TRANSFER:
- return "EXPLICIT_CALL_TRANSFER";
- case RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE:
- return "SET_PREFERRED_NETWORK_TYPE";
- case RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE:
- return "GET_PREFERRED_NETWORK_TYPE";
- case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS:
- return "GET_NEIGHBORING_CELL_IDS";
- case RIL_REQUEST_SET_LOCATION_UPDATES:
- return "SET_LOCATION_UPDATES";
- case RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE:
- return "CDMA_SET_SUBSCRIPTION_SOURCE";
- case RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE:
- return "CDMA_SET_ROAMING_PREFERENCE";
- case RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE:
- return "CDMA_QUERY_ROAMING_PREFERENCE";
- case RIL_REQUEST_SET_TTY_MODE:
- return "SET_TTY_MODE";
- case RIL_REQUEST_QUERY_TTY_MODE:
- return "QUERY_TTY_MODE";
- case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE:
- return "CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE";
- case RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE:
- return "CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE";
- case RIL_REQUEST_CDMA_FLASH:
- return "CDMA_FLASH";
- case RIL_REQUEST_CDMA_BURST_DTMF:
- return "CDMA_BURST_DTMF";
- case RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY:
- return "CDMA_VALIDATE_AND_WRITE_AKEY";
- case RIL_REQUEST_CDMA_SEND_SMS:
- return "CDMA_SEND_SMS";
- case RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE:
- return "CDMA_SMS_ACKNOWLEDGE";
- case RIL_REQUEST_GSM_GET_BROADCAST_CONFIG:
- return "GSM_GET_BROADCAST_CONFIG";
- case RIL_REQUEST_GSM_SET_BROADCAST_CONFIG:
- return "GSM_SET_BROADCAST_CONFIG";
- case RIL_REQUEST_GSM_BROADCAST_ACTIVATION:
- return "GSM_BROADCAST_ACTIVATION";
- case RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG:
- return "CDMA_GET_BROADCAST_CONFIG";
- case RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG:
- return "CDMA_SET_BROADCAST_CONFIG";
- case RIL_REQUEST_CDMA_BROADCAST_ACTIVATION:
- return "CDMA_BROADCAST_ACTIVATION";
- case RIL_REQUEST_CDMA_SUBSCRIPTION:
- return "CDMA_SUBSCRIPTION";
- case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM:
- return "CDMA_WRITE_SMS_TO_RUIM";
- case RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM:
- return "CDMA_DELETE_SMS_ON_RUIM";
- case RIL_REQUEST_DEVICE_IDENTITY:
- return "DEVICE_IDENTITY";
- case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE:
- return "EXIT_EMERGENCY_CALLBACK_MODE";
- case RIL_REQUEST_GET_SMSC_ADDRESS:
- return "GET_SMSC_ADDRESS";
- case RIL_REQUEST_SET_SMSC_ADDRESS:
- return "SET_SMSC_ADDRESS";
- case RIL_REQUEST_REPORT_SMS_MEMORY_STATUS:
- return "REPORT_SMS_MEMORY_STATUS";
- case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING:
- return "REPORT_STK_SERVICE_IS_RUNNING";
- case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE:
- return "CDMA_GET_SUBSCRIPTION_SOURCE";
- case RIL_REQUEST_ISIM_AUTHENTICATION:
- return "ISIM_AUTHENTICATION";
- case RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU:
- return "ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU";
- case RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS:
- return "STK_SEND_ENVELOPE_WITH_STATUS";
- case RIL_REQUEST_VOICE_RADIO_TECH:
- return "VOICE_RADIO_TECH";
- case RIL_REQUEST_GET_CELL_INFO_LIST:
- return "GET_CELL_INFO_LIST";
- case RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE:
- return "SET_CELL_INFO_LIST_RATE";
- case RIL_REQUEST_SET_INITIAL_ATTACH_APN:
- return "SET_INITIAL_ATTACH_APN";
- case RIL_REQUEST_IMS_REGISTRATION_STATE:
- return "IMS_REGISTRATION_STATE";
- case RIL_REQUEST_IMS_SEND_SMS:
- return "IMS_SEND_SMS";
- case RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC:
- return "SIM_TRANSMIT_APDU_BASIC";
- case RIL_REQUEST_SIM_OPEN_CHANNEL:
- return "SIM_OPEN_CHANNEL";
- case RIL_REQUEST_SIM_CLOSE_CHANNEL:
- return "SIM_CLOSE_CHANNEL";
- case RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL:
- return "SIM_TRANSMIT_APDU_CHANNEL";
- case RIL_REQUEST_NV_READ_ITEM:
- return "NV_READ_ITEM";
- case RIL_REQUEST_NV_WRITE_ITEM:
- return "NV_WRITE_ITEM";
- case RIL_REQUEST_NV_WRITE_CDMA_PRL:
- return "NV_WRITE_CDMA_PRL";
- case RIL_REQUEST_NV_RESET_CONFIG:
- return "NV_RESET_CONFIG";
- case RIL_REQUEST_SET_UICC_SUBSCRIPTION:
- return "SET_UICC_SUBSCRIPTION";
- case RIL_REQUEST_ALLOW_DATA:
- return "ALLOW_DATA";
- case RIL_REQUEST_GET_HARDWARE_CONFIG:
- return "GET_HARDWARE_CONFIG";
- case RIL_REQUEST_SIM_AUTHENTICATION:
- return "SIM_AUTHENTICATION";
- case RIL_REQUEST_GET_DC_RT_INFO:
- return "GET_DC_RT_INFO";
- case RIL_REQUEST_SET_DC_RT_INFO_RATE:
- return "SET_DC_RT_INFO_RATE";
- case RIL_REQUEST_SET_DATA_PROFILE:
- return "SET_DATA_PROFILE";
- case RIL_REQUEST_SHUTDOWN:
- return "SHUTDOWN";
- case RIL_REQUEST_GET_RADIO_CAPABILITY:
- return "GET_RADIO_CAPABILITY";
- case RIL_REQUEST_SET_RADIO_CAPABILITY:
- return "SET_RADIO_CAPABILITY";
- case RIL_REQUEST_START_LCE:
- return "START_LCE";
- case RIL_REQUEST_STOP_LCE:
- return "STOP_LCE";
- case RIL_REQUEST_PULL_LCEDATA:
- return "PULL_LCEDATA";
- case RIL_REQUEST_GET_ACTIVITY_INFO:
- return "GET_ACTIVITY_INFO";
- case RIL_REQUEST_SET_ALLOWED_CARRIERS:
- return "SET_ALLOWED_CARRIERS";
- case RIL_REQUEST_GET_ALLOWED_CARRIERS:
- return "GET_ALLOWED_CARRIERS";
- case RIL_REQUEST_SEND_DEVICE_STATE:
- return "SEND_DEVICE_STATE";
- case RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER:
- return "SET_UNSOLICITED_RESPONSE_FILTER";
- case RIL_REQUEST_SET_SIM_CARD_POWER:
- return "SET_SIM_CARD_POWER";
- case RIL_REQUEST_SET_CARRIER_INFO_IMSI_ENCRYPTION:
- return "SET_CARRIER_INFO_IMSI_ENCRYPTION";
- case RIL_REQUEST_START_NETWORK_SCAN:
- return "START_NETWORK_SCAN";
- case RIL_REQUEST_STOP_NETWORK_SCAN:
- return "STOP_NETWORK_SCAN";
- case RIL_REQUEST_START_KEEPALIVE:
- return "START_KEEPALIVE";
- case RIL_REQUEST_STOP_KEEPALIVE:
- return "STOP_KEEPALIVE";
- case RIL_REQUEST_ENABLE_MODEM:
- return "ENABLE_MODEM";
- case RIL_REQUEST_GET_MODEM_STATUS:
- return "GET_MODEM_STATUS";
- case RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE:
- return "CDMA_SEND_SMS_EXPECT_MORE";
- case RIL_REQUEST_GET_SIM_PHONEBOOK_CAPACITY:
- return "GET_SIM_PHONEBOOK_CAPACITY";
- case RIL_REQUEST_GET_SIM_PHONEBOOK_RECORDS:
- return "GET_SIM_PHONEBOOK_RECORDS";
- case RIL_REQUEST_UPDATE_SIM_PHONEBOOK_RECORD:
- return "UPDATE_SIM_PHONEBOOK_RECORD";
- case RIL_REQUEST_GET_SLOT_STATUS:
- return "GET_SLOT_STATUS";
- case RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING:
- return "SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING";
- case RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA:
- return "SET_SIGNAL_STRENGTH_REPORTING_CRITERIA";
- case RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA:
- return "SET_LINK_CAPACITY_REPORTING_CRITERIA";
- case RIL_REQUEST_SET_PREFERRED_DATA_MODEM:
- return "SET_PREFERRED_DATA_MODEM";
- case RIL_REQUEST_EMERGENCY_DIAL:
- return "EMERGENCY_DIAL";
- case RIL_REQUEST_GET_PHONE_CAPABILITY:
- return "GET_PHONE_CAPABILITY";
- case RIL_REQUEST_SWITCH_DUAL_SIM_CONFIG:
- return "SWITCH_DUAL_SIM_CONFIG";
- case RIL_REQUEST_ENABLE_UICC_APPLICATIONS:
- return "ENABLE_UICC_APPLICATIONS";
- case RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT:
- return "GET_UICC_APPLICATIONS_ENABLEMENT";
- case RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS:
- return "SET_SYSTEM_SELECTION_CHANNELS";
- case RIL_REQUEST_GET_BARRING_INFO:
- return "GET_BARRING_INFO";
- case RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION:
- return "ENTER_SIM_DEPERSONALIZATION";
- case RIL_REQUEST_ENABLE_NR_DUAL_CONNECTIVITY:
- return "ENABLE_NR_DUAL_CONNECTIVITY";
- case RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED:
- return "IS_NR_DUAL_CONNECTIVITY_ENABLED";
- case RIL_REQUEST_ALLOCATE_PDU_SESSION_ID:
- return "ALLOCATE_PDU_SESSION_ID";
- case RIL_REQUEST_RELEASE_PDU_SESSION_ID:
- return "RELEASE_PDU_SESSION_ID";
- case RIL_REQUEST_START_HANDOVER:
- return "START_HANDOVER";
- case RIL_REQUEST_CANCEL_HANDOVER:
- return "CANCEL_HANDOVER";
- case RIL_REQUEST_GET_SYSTEM_SELECTION_CHANNELS:
- return "GET_SYSTEM_SELECTION_CHANNELS";
- case RIL_REQUEST_GET_HAL_DEVICE_CAPABILITIES:
- return "GET_HAL_DEVICE_CAPABILITIES";
- case RIL_REQUEST_SET_DATA_THROTTLING:
- return "SET_DATA_THROTTLING";
- case RIL_REQUEST_SET_ALLOWED_NETWORK_TYPES_BITMAP:
- return "SET_ALLOWED_NETWORK_TYPES_BITMAP";
- case RIL_REQUEST_GET_ALLOWED_NETWORK_TYPES_BITMAP:
- return "GET_ALLOWED_NETWORK_TYPES_BITMAP";
- case RIL_REQUEST_GET_SLICING_CONFIG:
- return "GET_SLICING_CONFIG";
- default: return "<unknown request>";
- }
- }
-
- @UnsupportedAppUsage
- static String responseToString(int request) {
- switch(request) {
- case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED:
- return "UNSOL_RESPONSE_RADIO_STATE_CHANGED";
- case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED:
- return "UNSOL_RESPONSE_CALL_STATE_CHANGED";
- case RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED:
- return "UNSOL_RESPONSE_NETWORK_STATE_CHANGED";
- case RIL_UNSOL_RESPONSE_NEW_SMS:
- return "UNSOL_RESPONSE_NEW_SMS";
- case RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT:
- return "UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT";
- case RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM:
- return "UNSOL_RESPONSE_NEW_SMS_ON_SIM";
- case RIL_UNSOL_ON_USSD:
- return "UNSOL_ON_USSD";
- case RIL_UNSOL_ON_USSD_REQUEST:
- return "UNSOL_ON_USSD_REQUEST";
- case RIL_UNSOL_NITZ_TIME_RECEIVED:
- return "UNSOL_NITZ_TIME_RECEIVED";
- case RIL_UNSOL_SIGNAL_STRENGTH:
- return "UNSOL_SIGNAL_STRENGTH";
- case RIL_UNSOL_DATA_CALL_LIST_CHANGED:
- return "UNSOL_DATA_CALL_LIST_CHANGED";
- case RIL_UNSOL_SUPP_SVC_NOTIFICATION:
- return "UNSOL_SUPP_SVC_NOTIFICATION";
- case RIL_UNSOL_STK_SESSION_END:
- return "UNSOL_STK_SESSION_END";
- case RIL_UNSOL_STK_PROACTIVE_COMMAND:
- return "UNSOL_STK_PROACTIVE_COMMAND";
- case RIL_UNSOL_STK_EVENT_NOTIFY:
- return "UNSOL_STK_EVENT_NOTIFY";
- case RIL_UNSOL_STK_CALL_SETUP:
- return "UNSOL_STK_CALL_SETUP";
- case RIL_UNSOL_SIM_SMS_STORAGE_FULL:
- return "UNSOL_SIM_SMS_STORAGE_FULL";
- case RIL_UNSOL_SIM_REFRESH:
- return "UNSOL_SIM_REFRESH";
- case RIL_UNSOL_CALL_RING:
- return "UNSOL_CALL_RING";
- case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED:
- return "UNSOL_RESPONSE_SIM_STATUS_CHANGED";
- case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS:
- return "UNSOL_RESPONSE_CDMA_NEW_SMS";
- case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS:
- return "UNSOL_RESPONSE_NEW_BROADCAST_SMS";
- case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL:
- return "UNSOL_CDMA_RUIM_SMS_STORAGE_FULL";
- case RIL_UNSOL_RESTRICTED_STATE_CHANGED:
- return "UNSOL_RESTRICTED_STATE_CHANGED";
- case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE:
- return "UNSOL_ENTER_EMERGENCY_CALLBACK_MODE";
- case RIL_UNSOL_CDMA_CALL_WAITING:
- return "UNSOL_CDMA_CALL_WAITING";
- case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS:
- return "UNSOL_CDMA_OTA_PROVISION_STATUS";
- case RIL_UNSOL_CDMA_INFO_REC:
- return "UNSOL_CDMA_INFO_REC";
- case RIL_UNSOL_OEM_HOOK_RAW:
- return "UNSOL_OEM_HOOK_RAW";
- case RIL_UNSOL_RINGBACK_TONE:
- return "UNSOL_RINGBACK_TONE";
- case RIL_UNSOL_RESEND_INCALL_MUTE:
- return "UNSOL_RESEND_INCALL_MUTE";
- case RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED:
- return "UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED";
- case RIL_UNSOl_CDMA_PRL_CHANGED:
- return "UNSOL_CDMA_PRL_CHANGED";
- case RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE:
- return "UNSOL_EXIT_EMERGENCY_CALLBACK_MODE";
- case RIL_UNSOL_RIL_CONNECTED:
- return "UNSOL_RIL_CONNECTED";
- case RIL_UNSOL_VOICE_RADIO_TECH_CHANGED:
- return "UNSOL_VOICE_RADIO_TECH_CHANGED";
- case RIL_UNSOL_CELL_INFO_LIST:
- return "UNSOL_CELL_INFO_LIST";
- case RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED:
- return "UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED";
- case RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED:
- return "UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED";
- case RIL_UNSOL_SRVCC_STATE_NOTIFY:
- return "UNSOL_SRVCC_STATE_NOTIFY";
- case RIL_UNSOL_HARDWARE_CONFIG_CHANGED:
- return "UNSOL_HARDWARE_CONFIG_CHANGED";
- case RIL_UNSOL_DC_RT_INFO_CHANGED:
- return "UNSOL_DC_RT_INFO_CHANGED";
- case RIL_UNSOL_RADIO_CAPABILITY:
- return "UNSOL_RADIO_CAPABILITY";
- case RIL_UNSOL_ON_SS:
- return "UNSOL_ON_SS";
- case RIL_UNSOL_STK_CC_ALPHA_NOTIFY:
- return "UNSOL_STK_CC_ALPHA_NOTIFY";
- case RIL_UNSOL_LCEDATA_RECV:
- return "UNSOL_LCE_INFO_RECV";
- case RIL_UNSOL_PCO_DATA:
- return "UNSOL_PCO_DATA";
- case RIL_UNSOL_MODEM_RESTART:
- return "UNSOL_MODEM_RESTART";
- case RIL_UNSOL_CARRIER_INFO_IMSI_ENCRYPTION:
- return "UNSOL_CARRIER_INFO_IMSI_ENCRYPTION";
- case RIL_UNSOL_NETWORK_SCAN_RESULT:
- return "UNSOL_NETWORK_SCAN_RESULT";
- case RIL_UNSOL_KEEPALIVE_STATUS:
- return "UNSOL_KEEPALIVE_STATUS";
- case RIL_UNSOL_UNTHROTTLE_APN:
- return "UNSOL_UNTHROTTLE_APN";
- case RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED:
- return "UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED";
- case RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED:
- return "UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED";
- case RIL_UNSOL_ICC_SLOT_STATUS:
- return "UNSOL_ICC_SLOT_STATUS";
- case RIL_UNSOL_PHYSICAL_CHANNEL_CONFIG:
- return "UNSOL_PHYSICAL_CHANNEL_CONFIG";
- case RIL_UNSOL_EMERGENCY_NUMBER_LIST:
- return "UNSOL_EMERGENCY_NUMBER_LIST";
- case RIL_UNSOL_UICC_APPLICATIONS_ENABLEMENT_CHANGED:
- return "UNSOL_UICC_APPLICATIONS_ENABLEMENT_CHANGED";
- case RIL_UNSOL_REGISTRATION_FAILED:
- return "UNSOL_REGISTRATION_FAILED";
- case RIL_UNSOL_BARRING_INFO_CHANGED:
- return "UNSOL_BARRING_INFO_CHANGED";
- default:
- return "<unknown response>";
- }
- }
-
- @UnsupportedAppUsage
void riljLog(String msg) {
Rlog.d(RILJ_LOG_TAG, msg + (" [PHONE" + mPhoneId + "]"));
}
@@ -7238,32 +6181,30 @@
Rlog.e(RILJ_LOG_TAG, msg + (" [PHONE" + mPhoneId + "]"));
}
- void riljLoge(String msg, Exception e) {
- Rlog.e(RILJ_LOG_TAG, msg + (" [PHONE" + mPhoneId + "]"), e);
- }
-
void riljLogv(String msg) {
Rlog.v(RILJ_LOG_TAG, msg + (" [PHONE" + mPhoneId + "]"));
}
@UnsupportedAppUsage
void unsljLog(int response) {
- riljLog("[UNSL]< " + responseToString(response));
+ riljLog("[UNSL]< " + RILUtils.responseToString(response));
}
@UnsupportedAppUsage
void unsljLogMore(int response, String more) {
- riljLog("[UNSL]< " + responseToString(response) + " " + more);
+ riljLog("[UNSL]< " + RILUtils.responseToString(response) + " " + more);
}
@UnsupportedAppUsage
void unsljLogRet(int response, Object ret) {
- riljLog("[UNSL]< " + responseToString(response) + " " + retToString(response, ret));
+ riljLog("[UNSL]< " + RILUtils.responseToString(response) + " "
+ + retToString(response, ret));
}
@UnsupportedAppUsage
void unsljLogvRet(int response, Object ret) {
- riljLogv("[UNSL]< " + responseToString(response) + " " + retToString(response, ret));
+ riljLogv("[UNSL]< " + RILUtils.responseToString(response) + " "
+ + retToString(response, ret));
}
@Override
@@ -7293,7 +6234,7 @@
pw.println(" mRequestList count=" + count);
for (int i = 0; i < count; i++) {
RILRequest rr = mRequestList.valueAt(i);
- pw.println(" [" + rr.mSerial + "] " + requestToString(rr.mRequest));
+ pw.println(" [" + rr.mSerial + "] " + RILUtils.requestToString(rr.mRequest));
}
}
pw.println(" mLastNITZTimeInfo=" + Arrays.toString(mLastNITZTimeInfo));
@@ -7306,180 +6247,6 @@
return mClientWakelockTracker.getClientRequestStats();
}
- /** Append the data to the end of an ArrayList */
- public static void appendPrimitiveArrayToArrayList(byte[] src, ArrayList<Byte> dst) {
- for (byte b : src) {
- dst.add(b);
- }
- }
-
- public static ArrayList<Byte> primitiveArrayToArrayList(byte[] arr) {
- ArrayList<Byte> arrayList = new ArrayList<>(arr.length);
- for (byte b : arr) {
- arrayList.add(b);
- }
- return arrayList;
- }
-
- /** Convert a primitive int array to an ArrayList<Integer>. */
- public static ArrayList<Integer> primitiveArrayToArrayList(int[] arr) {
- ArrayList<Integer> arrayList = new ArrayList<>(arr.length);
- for (int i : arr) {
- arrayList.add(i);
- }
- return arrayList;
- }
-
- /** Convert an ArrayList of Bytes to an exactly-sized primitive array */
- public static byte[] arrayListToPrimitiveArray(ArrayList<Byte> bytes) {
- byte[] ret = new byte[bytes.size()];
- for (int i = 0; i < ret.length; i++) {
- ret[i] = bytes.get(i);
- }
- return ret;
- }
-
- static ArrayList<HardwareConfig> convertHalHwConfigList(
- ArrayList<android.hardware.radio.V1_0.HardwareConfig> hwListRil,
- RIL ril) {
- int num;
- ArrayList<HardwareConfig> response;
- HardwareConfig hw;
-
- num = hwListRil.size();
- response = new ArrayList<HardwareConfig>(num);
-
- if (RILJ_LOGV) {
- ril.riljLog("convertHalHwConfigList: num=" + num);
- }
- for (android.hardware.radio.V1_0.HardwareConfig hwRil : hwListRil) {
- int type = hwRil.type;
- switch(type) {
- case HardwareConfig.DEV_HARDWARE_TYPE_MODEM: {
- hw = new HardwareConfig(type);
- HardwareConfigModem hwModem = hwRil.modem.get(0);
- hw.assignModem(hwRil.uuid, hwRil.state, hwModem.rilModel, hwModem.rat,
- hwModem.maxVoice, hwModem.maxData, hwModem.maxStandby);
- break;
- }
- case HardwareConfig.DEV_HARDWARE_TYPE_SIM: {
- hw = new HardwareConfig(type);
- hw.assignSim(hwRil.uuid, hwRil.state, hwRil.sim.get(0).modemUuid);
- break;
- }
- default: {
- throw new RuntimeException(
- "RIL_REQUEST_GET_HARDWARE_CONFIG invalid hardward type:" + type);
- }
- }
-
- response.add(hw);
- }
-
- return response;
- }
-
- static RadioCapability convertHalRadioCapability(
- android.hardware.radio.V1_0.RadioCapability rcRil, RIL ril) {
- int session = rcRil.session;
- int phase = rcRil.phase;
- // convert to public bitmask {@link TelephonyManager.NetworkTypeBitMask}
- int rat = convertToNetworkTypeBitMask(rcRil.raf);
- String logicModemUuid = rcRil.logicalModemUuid;
- int status = rcRil.status;
-
- ril.riljLog("convertHalRadioCapability: session=" + session +
- ", phase=" + phase +
- ", rat=" + rat +
- ", logicModemUuid=" + logicModemUuid +
- ", status=" + status + ", rcRil.raf=" + rcRil.raf);
- RadioCapability rc = new RadioCapability(
- ril.mPhoneId, session, phase, rat, logicModemUuid, status);
- return rc;
- }
-
- static List<LinkCapacityEstimate> convertHalLceData(LceDataInfo halData, RIL ril) {
- final List<LinkCapacityEstimate> lceList = new ArrayList<>();
- lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_COMBINED,
- halData.lastHopCapacityKbps,
- LinkCapacityEstimate.INVALID));
- ril.riljLog("LCE capacity information received:" + lceList);
- return lceList;
- }
-
- static List<LinkCapacityEstimate> convertHalLceData(
- android.hardware.radio.V1_2.LinkCapacityEstimate halData, RIL ril) {
- final List<LinkCapacityEstimate> lceList = new ArrayList<>();
- lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_COMBINED,
- halData.downlinkCapacityKbps,
- halData.uplinkCapacityKbps));
- ril.riljLog("LCE capacity information received:" + lceList);
- return lceList;
- }
-
- static List<LinkCapacityEstimate> convertHalLceData(
- android.hardware.radio.V1_6.LinkCapacityEstimate halData, RIL ril) {
- final List<LinkCapacityEstimate> lceList = new ArrayList<>();
- int primaryDownlinkCapacityKbps = halData.downlinkCapacityKbps;
- int primaryUplinkCapacityKbps = halData.uplinkCapacityKbps;
- if (primaryDownlinkCapacityKbps != LinkCapacityEstimate.INVALID
- && halData.secondaryDownlinkCapacityKbps != LinkCapacityEstimate.INVALID) {
- primaryDownlinkCapacityKbps =
- halData.downlinkCapacityKbps - halData.secondaryDownlinkCapacityKbps;
- }
- if (primaryUplinkCapacityKbps != LinkCapacityEstimate.INVALID
- && halData.secondaryUplinkCapacityKbps != LinkCapacityEstimate.INVALID) {
- primaryUplinkCapacityKbps =
- halData.uplinkCapacityKbps - halData.secondaryUplinkCapacityKbps;
- }
-
- lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_PRIMARY,
- primaryDownlinkCapacityKbps,
- primaryUplinkCapacityKbps));
- lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_SECONDARY,
- halData.secondaryDownlinkCapacityKbps,
- halData.secondaryUplinkCapacityKbps));
- ril.riljLog("LCE capacity information received:" + lceList);
- return lceList;
- }
-
- /**
- * Convert CellInfo defined in 1.0/types.hal to CellInfo type.
- * @param records List of CellInfo defined in 1.0/types.hal
- * @return List of converted CellInfo object
- */
- @VisibleForTesting
- public static ArrayList<CellInfo> convertHalCellInfoList(
- ArrayList<android.hardware.radio.V1_0.CellInfo> records) {
- ArrayList<CellInfo> response = new ArrayList<CellInfo>(records.size());
-
- final long nanotime = SystemClock.elapsedRealtimeNanos();
- for (android.hardware.radio.V1_0.CellInfo record : records) {
- record.timeStamp = nanotime;
- response.add(CellInfo.create(record));
- }
-
- return response;
- }
-
- /**
- * Convert CellInfo defined in 1.2/types.hal to CellInfo type.
- * @param records List of CellInfo defined in 1.2/types.hal
- * @return List of converted CellInfo object
- */
- @VisibleForTesting
- public static ArrayList<CellInfo> convertHalCellInfoList_1_2(
- ArrayList<android.hardware.radio.V1_2.CellInfo> records) {
- ArrayList<CellInfo> response = new ArrayList<CellInfo>(records.size());
-
- final long nanotime = SystemClock.elapsedRealtimeNanos();
- for (android.hardware.radio.V1_2.CellInfo record : records) {
- record.timeStamp = nanotime;
- response.add(CellInfo.create(record));
- }
- return response;
- }
-
/**
* Fixup for SignalStrength 1.0 to Assume GSM to WCDMA when
* The current RAT type is one of the UMTS RATs.
@@ -7533,333 +6300,6 @@
}
/**
- * Convert CellInfo defined in 1.4/types.hal to CellInfo type.
- * @param records List of CellInfo defined in 1.4/types.hal.
- * @return List of converted CellInfo object.
- */
- @VisibleForTesting
- public static ArrayList<CellInfo> convertHalCellInfoList_1_4(
- ArrayList<android.hardware.radio.V1_4.CellInfo> records) {
- ArrayList<CellInfo> response = new ArrayList<CellInfo>(records.size());
-
- final long nanotime = SystemClock.elapsedRealtimeNanos();
- for (android.hardware.radio.V1_4.CellInfo record : records) {
- response.add(CellInfo.create(record, nanotime));
- }
- return response;
- }
-
- /**
- * Convert CellInfo defined in 1.5/types.hal to CellInfo type.
- * @param records List of CellInfo defined in 1.5/types.hal.
- * @return List of converted CellInfo object.
- */
- @VisibleForTesting
- public static ArrayList<CellInfo> convertHalCellInfoList_1_5(
- ArrayList<android.hardware.radio.V1_5.CellInfo> records) {
- ArrayList<CellInfo> response = new ArrayList<>(records.size());
-
- final long nanotime = SystemClock.elapsedRealtimeNanos();
- for (android.hardware.radio.V1_5.CellInfo record : records) {
- response.add(CellInfo.create(record, nanotime));
- }
- return response;
- }
-
- /**
- * Convert CellInfo defined in 1.6/types.hal to CellInfo type.
- * @param records List of CellInfo defined in 1.6/types.hal.
- * @return List of converted CellInfo object.
- */
- @VisibleForTesting
- public static ArrayList<CellInfo> convertHalCellInfoList_1_6(
- ArrayList<android.hardware.radio.V1_6.CellInfo> records) {
- ArrayList<CellInfo> response = new ArrayList<>(records.size());
-
- final long nanotime = SystemClock.elapsedRealtimeNanos();
- for (android.hardware.radio.V1_6.CellInfo record : records) {
- response.add(CellInfo.create(record, nanotime));
- }
- return response;
- }
-
- private static LinkAddress createLinkAddressFromString(String addressString) {
- return createLinkAddressFromString(addressString, 0, LinkAddress.LIFETIME_UNKNOWN,
- LinkAddress.LIFETIME_UNKNOWN);
- }
-
- private static LinkAddress createLinkAddressFromString(String addressString, int properties,
- long deprecationTime, long expirationTime) {
- addressString = addressString.trim();
- InetAddress address = null;
- int prefixLength = -1;
- try {
- String[] pieces = addressString.split("/", 2);
- address = InetAddresses.parseNumericAddress(pieces[0]);
- if (pieces.length == 1) {
- prefixLength = (address instanceof Inet4Address) ? 32 : 128;
- } else if (pieces.length == 2) {
- prefixLength = Integer.parseInt(pieces[1]);
- }
- } catch (NullPointerException e) { // Null string.
- } catch (ArrayIndexOutOfBoundsException e) { // No prefix length.
- } catch (NumberFormatException e) { // Non-numeric prefix.
- } catch (IllegalArgumentException e) { // Invalid IP address.
- }
-
- if (address == null || prefixLength == -1) {
- throw new IllegalArgumentException("Invalid link address " + addressString);
- }
-
- return new LinkAddress(address, prefixLength, properties, 0,
- deprecationTime, expirationTime);
- }
-
- /**
- * Convert SetupDataCallResult defined in 1.0, 1.4, 1.5 or 1.6 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 cause, cid, active, mtu, mtuV4, mtuV6;
- long suggestedRetryTime;
- String ifname;
- int protocolType;
- String[] addresses = null;
- String[] dnses = null;
- String[] gateways = null;
- String[] pcscfs = null;
- Qos defaultQos = null;
-
- @HandoverFailureMode
- int handoverFailureMode = DataCallResponse.HANDOVER_FAILURE_MODE_LEGACY;
-
- int pduSessionId = DataCallResponse.PDU_SESSION_ID_NOT_SET;
-
- List<LinkAddress> laList = new ArrayList<>();
- List<QosBearerSession> qosSessions = new ArrayList<>();
- NetworkSliceInfo sliceInfo = null;
- List<TrafficDescriptor> trafficDescriptors = new ArrayList<>();
-
- if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) {
- final android.hardware.radio.V1_0.SetupDataCallResult result =
- (android.hardware.radio.V1_0.SetupDataCallResult) dcResult;
- cause = result.status;
- suggestedRetryTime = result.suggestedRetryTime;
- cid = result.cid;
- active = result.active;
- protocolType = ApnSetting.getProtocolIntFromString(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+");
- }
- if (!TextUtils.isEmpty(result.pcscf)) {
- pcscfs = result.pcscf.split("\\s+");
- }
- mtu = mtuV4 = mtuV6 = result.mtu;
- if (addresses != null) {
- for (String address : addresses) {
- laList.add(createLinkAddressFromString(address));
- }
- }
- } 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;
- cause = result.cause;
- suggestedRetryTime = result.suggestedRetryTime;
- cid = result.cid;
- active = result.active;
- protocolType = 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.stream().toArray(String[]::new);
- mtu = mtuV4 = mtuV6 = result.mtu;
- if (addresses != null) {
- for (String address : addresses) {
- laList.add(createLinkAddressFromString(address));
- }
- }
- } else if (dcResult instanceof android.hardware.radio.V1_5.SetupDataCallResult) {
- final android.hardware.radio.V1_5.SetupDataCallResult result =
- (android.hardware.radio.V1_5.SetupDataCallResult) dcResult;
- cause = result.cause;
- suggestedRetryTime = result.suggestedRetryTime;
- cid = result.cid;
- active = result.active;
- protocolType = result.type;
- ifname = result.ifname;
- laList = result.addresses.stream().map(la -> createLinkAddressFromString(
- la.address, la.properties, la.deprecationTime, la.expirationTime))
- .collect(Collectors.toList());
-
- dnses = result.dnses.stream().toArray(String[]::new);
- gateways = result.gateways.stream().toArray(String[]::new);
- pcscfs = result.pcscf.stream().toArray(String[]::new);
- mtu = Math.max(result.mtuV4, result.mtuV6);
- mtuV4 = result.mtuV4;
- mtuV6 = result.mtuV6;
- } else if (dcResult instanceof android.hardware.radio.V1_6.SetupDataCallResult) {
- final android.hardware.radio.V1_6.SetupDataCallResult result =
- (android.hardware.radio.V1_6.SetupDataCallResult) dcResult;
- cause = result.cause;
- suggestedRetryTime = result.suggestedRetryTime;
- cid = result.cid;
- active = result.active;
- protocolType = result.type;
- ifname = result.ifname;
- laList = result.addresses.stream().map(la -> createLinkAddressFromString(
- la.address, la.properties, la.deprecationTime, la.expirationTime))
- .collect(Collectors.toList());
- dnses = result.dnses.stream().toArray(String[]::new);
- gateways = result.gateways.stream().toArray(String[]::new);
- pcscfs = result.pcscf.stream().toArray(String[]::new);
- mtu = Math.max(result.mtuV4, result.mtuV6);
- mtuV4 = result.mtuV4;
- mtuV6 = result.mtuV6;
- handoverFailureMode = result.handoverFailureMode;
- pduSessionId = result.pduSessionId;
- defaultQos = Qos.create(result.defaultQos);
- qosSessions = result.qosSessions.stream().map(session ->
- QosBearerSession.create(session)).collect(Collectors.toList());
- sliceInfo = convertToSliceInfo(result.sliceInfo);
- trafficDescriptors = result.trafficDescriptors.stream().map(td ->
- convertToTrafficDescriptor(td)).collect(Collectors.toList());
- } else {
- Rlog.e(RILJ_LOG_TAG, "Unsupported SetupDataCallResult " + dcResult);
- return null;
- }
-
- // Process dns
- List<InetAddress> dnsList = new ArrayList<>();
- if (dnses != null) {
- for (String dns : dnses) {
- dns = dns.trim();
- InetAddress ia;
- try {
- ia = InetAddresses.parseNumericAddress(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 = InetAddresses.parseNumericAddress(gateway);
- gatewayList.add(ia);
- } catch (IllegalArgumentException e) {
- Rlog.e(RILJ_LOG_TAG, "Unknown gateway: " + gateway, e);
- }
- }
- }
-
- // Process gateway
- List<InetAddress> pcscfList = new ArrayList<>();
- if (pcscfs != null) {
- for (String pcscf : pcscfs) {
- pcscf = pcscf.trim();
- InetAddress ia;
- try {
- ia = InetAddresses.parseNumericAddress(pcscf);
- pcscfList.add(ia);
- } catch (IllegalArgumentException e) {
- Rlog.e(RILJ_LOG_TAG, "Unknown pcscf: " + pcscf, e);
- }
- }
- }
-
- return new DataCallResponse.Builder()
- .setCause(cause)
- .setRetryDurationMillis(suggestedRetryTime)
- .setId(cid)
- .setLinkStatus(active)
- .setProtocolType(protocolType)
- .setInterfaceName(ifname)
- .setAddresses(laList)
- .setDnsAddresses(dnsList)
- .setGatewayAddresses(gatewayList)
- .setPcscfAddresses(pcscfList)
- .setMtu(mtu)
- .setMtuV4(mtuV4)
- .setMtuV6(mtuV6)
- .setHandoverFailureMode(handoverFailureMode)
- .setPduSessionId(pduSessionId)
- .setDefaultQos(defaultQos)
- .setQosBearerSessions(qosSessions)
- .setSliceInfo(sliceInfo)
- .setTrafficDescriptors(trafficDescriptors)
- .build();
- }
-
- private static NetworkSliceInfo convertToSliceInfo(OptionalSliceInfo optionalSliceInfo) {
- if (optionalSliceInfo.getDiscriminator() == OptionalSliceInfo.hidl_discriminator.noinit) {
- return null;
- }
-
- android.hardware.radio.V1_6.SliceInfo si = optionalSliceInfo.value();
- NetworkSliceInfo.Builder builder =
- new NetworkSliceInfo.Builder()
- .setSliceServiceType(si.sst)
- .setMappedHplmnSliceServiceType(si.mappedHplmnSst);
- if (si.sliceDifferentiator != NetworkSliceInfo.SLICE_DIFFERENTIATOR_NO_SLICE) {
- builder
- .setSliceDifferentiator(si.sliceDifferentiator)
- .setMappedHplmnSliceDifferentiator(si.mappedHplmnSD);
- }
- return builder.build();
- }
-
- private static TrafficDescriptor convertToTrafficDescriptor(
- android.hardware.radio.V1_6.TrafficDescriptor td) {
- String dnn = td.dnn.getDiscriminator() == OptionalDnn.hidl_discriminator.noinit
- ? null : td.dnn.value();
- String osAppId = td.osAppId.getDiscriminator() == OptionalOsAppId.hidl_discriminator.noinit
- ? null : new String(arrayListToPrimitiveArray(td.osAppId.value().osAppId));
- TrafficDescriptor.Builder builder = new TrafficDescriptor.Builder();
- if (dnn != null) {
- builder.setDataNetworkName(dnn);
- }
- if (osAppId != null) {
- builder.setOsAppId(osAppId);
- }
- return builder.build();
- }
-
- /**
- * 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;
- }
-
- /**
* Get the HAL version.
*
* @return the current HalVersion
diff --git a/src/java/com/android/internal/telephony/RILRequest.java b/src/java/com/android/internal/telephony/RILRequest.java
index fff8de6..ca9531e 100644
--- a/src/java/com/android/internal/telephony/RILRequest.java
+++ b/src/java/com/android/internal/telephony/RILRequest.java
@@ -238,7 +238,7 @@
final Message result = mResult;
if (RIL.RILJ_LOGD) {
Rlog.d(LOG_TAG, serialString() + "< "
- + RIL.requestToString(mRequest)
+ + RILUtils.requestToString(mRequest)
+ " error: " + ex + " ret=" + RIL.retToString(mRequest, ret)
+ " result=" + result);
}
diff --git a/src/java/com/android/internal/telephony/RILUtils.java b/src/java/com/android/internal/telephony/RILUtils.java
new file mode 100644
index 0000000..e44e5de
--- /dev/null
+++ b/src/java/com/android/internal/telephony/RILUtils.java
@@ -0,0 +1,2661 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.telephony;
+
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ALLOCATE_PDU_SESSION_ID;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ALLOW_DATA;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ANSWER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_BASEBAND_VERSION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CANCEL_HANDOVER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CANCEL_USSD;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_BROADCAST_ACTIVATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_BURST_DTMF;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_FLASH;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SEND_SMS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_SUBSCRIPTION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CHANGE_BARRING_PASSWORD;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CHANGE_SIM_PIN;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CHANGE_SIM_PIN2;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CONFERENCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DATA_CALL_LIST;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DATA_REGISTRATION_STATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DEACTIVATE_DATA_CALL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DELETE_SMS_ON_SIM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DEVICE_IDENTITY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DIAL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DTMF;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DTMF_START;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DTMF_STOP;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_EMERGENCY_DIAL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENABLE_MODEM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENABLE_NR_DUAL_CONNECTIVITY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENABLE_UICC_APPLICATIONS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENTER_SIM_PIN;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENTER_SIM_PIN2;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENTER_SIM_PUK;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENTER_SIM_PUK2;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_EXPLICIT_CALL_TRANSFER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_ACTIVITY_INFO;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_ALLOWED_CARRIERS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_ALLOWED_NETWORK_TYPES_BITMAP;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_BARRING_INFO;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_CELL_INFO_LIST;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_CLIR;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_CURRENT_CALLS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_DC_RT_INFO;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_HAL_DEVICE_CAPABILITIES;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_HARDWARE_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_IMEI;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_IMEISV;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_IMSI;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_MODEM_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_MUTE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_NEIGHBORING_CELL_IDS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_PHONE_CAPABILITY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_RADIO_CAPABILITY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SIM_PHONEBOOK_CAPACITY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SIM_PHONEBOOK_RECORDS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SIM_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SLICING_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SLOT_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SMSC_ADDRESS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_SYSTEM_SELECTION_CHANNELS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GSM_BROADCAST_ACTIVATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GSM_GET_BROADCAST_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_GSM_SET_BROADCAST_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_REGISTRATION_STATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_SEND_SMS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ISIM_AUTHENTICATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_CALL_FAIL_CAUSE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_NV_READ_ITEM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_NV_RESET_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_NV_WRITE_CDMA_PRL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_NV_WRITE_ITEM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_OEM_HOOK_RAW;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_OEM_HOOK_STRINGS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_OPERATOR;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_PULL_LCEDATA;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_AVAILABLE_NETWORKS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_CALL_FORWARD_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_CALL_WAITING;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_CLIP;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_FACILITY_LOCK;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_QUERY_TTY_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_RADIO_POWER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_RELEASE_PDU_SESSION_ID;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_REPORT_SMS_MEMORY_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_RESET_RADIO;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SCREEN_STATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SEND_DEVICE_STATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SEND_SMS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SEND_SMS_EXPECT_MORE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SEND_USSD;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SEPARATE_CONNECTION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SETUP_DATA_CALL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_ALLOWED_CARRIERS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_ALLOWED_NETWORK_TYPES_BITMAP;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_BAND_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_CALL_FORWARD;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_CALL_WAITING;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_CARRIER_INFO_IMSI_ENCRYPTION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_CLIR;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_DATA_PROFILE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_DATA_THROTTLING;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_DC_RT_INFO_RATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_FACILITY_LOCK;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_INITIAL_ATTACH_APN;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOCATION_UPDATES;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_MUTE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_PREFERRED_DATA_MODEM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_RADIO_CAPABILITY;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_SIM_CARD_POWER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_SMSC_ADDRESS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_TTY_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_UICC_SUBSCRIPTION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SHUTDOWN;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIGNAL_STRENGTH;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIM_AUTHENTICATION;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIM_CLOSE_CHANNEL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIM_IO;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIM_OPEN_CHANNEL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SMS_ACKNOWLEDGE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_START_HANDOVER;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_START_KEEPALIVE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_START_LCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_START_NETWORK_SCAN;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STK_GET_PROFILE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STK_SET_PROFILE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STOP_KEEPALIVE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STOP_LCE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_STOP_NETWORK_SCAN;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SWITCH_DUAL_SIM_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_UDUB;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_UPDATE_SIM_PHONEBOOK_RECORD;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_VOICE_RADIO_TECH;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_VOICE_REGISTRATION_STATE;
+import static com.android.internal.telephony.RILConstants.RIL_REQUEST_WRITE_SMS_TO_SIM;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_BARRING_INFO_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CALL_RING;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CARRIER_INFO_IMSI_ENCRYPTION;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_CALL_WAITING;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_INFO_REC;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_OTA_PROVISION_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_PRL_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CELL_INFO_LIST;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_DATA_CALL_LIST_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_DC_RT_INFO_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_EMERGENCY_NUMBER_LIST;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_HARDWARE_CONFIG_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_ICC_SLOT_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_KEEPALIVE_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_LCEDATA_RECV;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_MODEM_RESTART;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_NETWORK_SCAN_RESULT;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_NITZ_TIME_RECEIVED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_OEM_HOOK_RAW;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_ON_SS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_ON_USSD;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_ON_USSD_REQUEST;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_PCO_DATA;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_PHYSICAL_CHANNEL_CONFIG;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RADIO_CAPABILITY;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_REGISTRATION_FAILED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESEND_INCALL_MUTE;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_CDMA_NEW_SMS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NEW_SMS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESTRICTED_STATE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RIL_CONNECTED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RINGBACK_TONE;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_SIGNAL_STRENGTH;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_SIM_REFRESH;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_SIM_SMS_STORAGE_FULL;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_SRVCC_STATE_NOTIFY;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_STK_CALL_SETUP;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_STK_CC_ALPHA_NOTIFY;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_STK_EVENT_NOTIFY;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_STK_PROACTIVE_COMMAND;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_STK_SESSION_END;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_SUPP_SVC_NOTIFICATION;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_UICC_APPLICATIONS_ENABLEMENT_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_UNTHROTTLE_APN;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_VOICE_RADIO_TECH_CHANGED;
+
+import android.annotation.Nullable;
+import android.net.InetAddresses;
+import android.net.LinkAddress;
+import android.net.LinkProperties;
+import android.os.SystemClock;
+import android.service.carrier.CarrierIdentifier;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.Annotation;
+import android.telephony.CellInfo;
+import android.telephony.LinkCapacityEstimate;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.PhysicalChannelConfig;
+import android.telephony.RadioAccessSpecifier;
+import android.telephony.ServiceState;
+import android.telephony.SignalThresholdInfo;
+import android.telephony.SmsManager;
+import android.telephony.TelephonyManager;
+import android.telephony.data.ApnSetting;
+import android.telephony.data.DataCallResponse;
+import android.telephony.data.DataProfile;
+import android.telephony.data.EpsQos;
+import android.telephony.data.NetworkSliceInfo;
+import android.telephony.data.NrQos;
+import android.telephony.data.Qos;
+import android.telephony.data.QosBearerFilter;
+import android.telephony.data.QosBearerSession;
+import android.telephony.data.RouteSelectionDescriptor;
+import android.telephony.data.SlicingConfig;
+import android.telephony.data.TrafficDescriptor;
+import android.telephony.data.UrspRule;
+import android.text.TextUtils;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.cat.ComprehensionTlv;
+import com.android.internal.telephony.cat.ComprehensionTlvTag;
+import com.android.internal.telephony.dataconnection.KeepaliveStatus;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus;
+import com.android.internal.telephony.uicc.IccCardStatus;
+import com.android.internal.telephony.uicc.IccUtils;
+import com.android.telephony.Rlog;
+
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Utils class for HAL <-> RIL conversions
+ */
+public class RILUtils {
+ private static final String LOG_TAG = "RILUtils";
+
+ /**
+ * Convert to PersoSubstate defined in radio/1.5/types.hal
+ * @param persoType PersoSubState type
+ * @return The converted PersoSubstate
+ */
+ public static int convertToHalPersoType(
+ IccCardApplicationStatus.PersoSubState persoType) {
+ switch (persoType) {
+ case PERSOSUBSTATE_IN_PROGRESS:
+ return android.hardware.radio.V1_5.PersoSubstate.IN_PROGRESS;
+ case PERSOSUBSTATE_READY:
+ return android.hardware.radio.V1_5.PersoSubstate.READY;
+ case PERSOSUBSTATE_SIM_NETWORK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_NETWORK;
+ case PERSOSUBSTATE_SIM_NETWORK_SUBSET:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_NETWORK_SUBSET;
+ case PERSOSUBSTATE_SIM_CORPORATE:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_CORPORATE;
+ case PERSOSUBSTATE_SIM_SERVICE_PROVIDER:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SERVICE_PROVIDER;
+ case PERSOSUBSTATE_SIM_SIM:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SIM;
+ case PERSOSUBSTATE_SIM_NETWORK_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_NETWORK_PUK;
+ case PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_NETWORK_SUBSET_PUK;
+ case PERSOSUBSTATE_SIM_CORPORATE_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_CORPORATE_PUK;
+ case PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SERVICE_PROVIDER_PUK;
+ case PERSOSUBSTATE_SIM_SIM_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SIM_PUK;
+ case PERSOSUBSTATE_RUIM_NETWORK1:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_NETWORK1;
+ case PERSOSUBSTATE_RUIM_NETWORK2:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_NETWORK2;
+ case PERSOSUBSTATE_RUIM_HRPD:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_HRPD;
+ case PERSOSUBSTATE_RUIM_CORPORATE:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_CORPORATE;
+ case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_SERVICE_PROVIDER;
+ case PERSOSUBSTATE_RUIM_RUIM:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_RUIM;
+ case PERSOSUBSTATE_RUIM_NETWORK1_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_NETWORK1_PUK;
+ case PERSOSUBSTATE_RUIM_NETWORK2_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_NETWORK2_PUK;
+ case PERSOSUBSTATE_RUIM_HRPD_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_HRPD_PUK;
+ case PERSOSUBSTATE_RUIM_CORPORATE_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_CORPORATE_PUK;
+ case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_SERVICE_PROVIDER_PUK;
+ case PERSOSUBSTATE_RUIM_RUIM_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.RUIM_RUIM_PUK;
+ case PERSOSUBSTATE_SIM_SPN:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SPN;
+ case PERSOSUBSTATE_SIM_SPN_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SPN_PUK;
+ case PERSOSUBSTATE_SIM_SP_EHPLMN:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SP_EHPLMN;
+ case PERSOSUBSTATE_SIM_SP_EHPLMN_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_SP_EHPLMN_PUK;
+ case PERSOSUBSTATE_SIM_ICCID:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_ICCID;
+ case PERSOSUBSTATE_SIM_ICCID_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_ICCID_PUK;
+ case PERSOSUBSTATE_SIM_IMPI:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_IMPI;
+ case PERSOSUBSTATE_SIM_IMPI_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_IMPI_PUK;
+ case PERSOSUBSTATE_SIM_NS_SP:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_NS_SP;
+ case PERSOSUBSTATE_SIM_NS_SP_PUK:
+ return android.hardware.radio.V1_5.PersoSubstate.SIM_NS_SP_PUK;
+ default:
+ return android.hardware.radio.V1_5.PersoSubstate.UNKNOWN;
+ }
+ }
+
+ /**
+ * Convert to GsmSmsMessage defined in radio/1.0/types.hal
+ * @param smscPdu SMSD address
+ * @param pdu SMS in PDU format
+ * @return A converted GsmSmsMessage
+ */
+ public static android.hardware.radio.V1_0.GsmSmsMessage convertToHalGsmSmsMessage(
+ String smscPdu, String pdu) {
+ android.hardware.radio.V1_0.GsmSmsMessage msg =
+ new android.hardware.radio.V1_0.GsmSmsMessage();
+ msg.smscPdu = smscPdu == null ? "" : smscPdu;
+ msg.pdu = pdu == null ? "" : pdu;
+ return msg;
+ }
+
+ /**
+ * Convert to CdmaSmsMessage defined in radio/1.0/types.hal
+ * @param pdu SMS in PDU format
+ * @return A converted CdmaSmsMessage
+ */
+ public static android.hardware.radio.V1_0.CdmaSmsMessage convertToHalCdmaSmsMessage(
+ byte[] pdu) {
+ android.hardware.radio.V1_0.CdmaSmsMessage msg =
+ new android.hardware.radio.V1_0.CdmaSmsMessage();
+ int addrNbrOfDigits;
+ int subaddrNbrOfDigits;
+ int bearerDataLength;
+ ByteArrayInputStream bais = new ByteArrayInputStream(pdu);
+ DataInputStream dis = new DataInputStream(bais);
+
+ try {
+ msg.teleserviceId = dis.readInt(); // teleServiceId
+ msg.isServicePresent = (byte) dis.readInt() == 1; // servicePresent
+ msg.serviceCategory = dis.readInt(); // serviceCategory
+ msg.address.digitMode = dis.read(); // address digit mode
+ msg.address.numberMode = dis.read(); // address number mode
+ msg.address.numberType = dis.read(); // address number type
+ msg.address.numberPlan = dis.read(); // address number plan
+ addrNbrOfDigits = (byte) dis.read();
+ for (int i = 0; i < addrNbrOfDigits; i++) {
+ msg.address.digits.add(dis.readByte()); // address_orig_bytes[i]
+ }
+ msg.subAddress.subaddressType = dis.read(); //subaddressType
+ msg.subAddress.odd = (byte) dis.read() == 1; //subaddr odd
+ subaddrNbrOfDigits = (byte) dis.read();
+ for (int i = 0; i < subaddrNbrOfDigits; i++) {
+ msg.subAddress.digits.add(dis.readByte()); //subaddr_orig_bytes[i]
+ }
+
+ bearerDataLength = dis.read();
+ for (int i = 0; i < bearerDataLength; i++) {
+ msg.bearerData.add(dis.readByte()); //bearerData[i]
+ }
+ } catch (IOException ex) {
+ }
+ return msg;
+ }
+
+ /**
+ * Convert to DataProfileInfo defined in radio/1.0/types.hal
+ * @param dp Data profile
+ * @return The converted DataProfileInfo
+ */
+ public static android.hardware.radio.V1_0.DataProfileInfo convertToHalDataProfile10(
+ DataProfile dp) {
+ android.hardware.radio.V1_0.DataProfileInfo dpi =
+ new android.hardware.radio.V1_0.DataProfileInfo();
+
+ dpi.profileId = dp.getProfileId();
+ dpi.apn = dp.getApn();
+ dpi.protocol = ApnSetting.getProtocolStringFromInt(dp.getProtocolType());
+ dpi.roamingProtocol = ApnSetting.getProtocolStringFromInt(dp.getRoamingProtocolType());
+ dpi.authType = dp.getAuthType();
+ dpi.user = dp.getUserName();
+ dpi.password = dp.getPassword();
+ dpi.type = dp.getType();
+ dpi.maxConnsTime = dp.getMaxConnectionsTime();
+ dpi.maxConns = dp.getMaxConnections();
+ dpi.waitTime = dp.getWaitTime();
+ dpi.enabled = dp.isEnabled();
+ dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask();
+ // Shift by 1 bit due to the discrepancy between
+ // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of
+ // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX.
+ dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask(
+ dp.getBearerBitmask()) << 1;
+ dpi.mtu = dp.getMtuV4();
+ dpi.mvnoType = android.hardware.radio.V1_0.MvnoType.NONE;
+ dpi.mvnoMatchData = "";
+
+ return dpi;
+ }
+
+ /**
+ * Convert to DataProfileInfo defined in radio/1.4/types.hal
+ * @param dp Data profile
+ * @return The converted DataProfileInfo
+ */
+ public static android.hardware.radio.V1_4.DataProfileInfo convertToHalDataProfile14(
+ DataProfile dp) {
+ android.hardware.radio.V1_4.DataProfileInfo dpi =
+ new android.hardware.radio.V1_4.DataProfileInfo();
+
+ dpi.apn = dp.getApn();
+ dpi.protocol = dp.getProtocolType();
+ dpi.roamingProtocol = dp.getRoamingProtocolType();
+ dpi.authType = dp.getAuthType();
+ dpi.user = dp.getUserName();
+ dpi.password = dp.getPassword();
+ dpi.type = dp.getType();
+ dpi.maxConnsTime = dp.getMaxConnectionsTime();
+ dpi.maxConns = dp.getMaxConnections();
+ dpi.waitTime = dp.getWaitTime();
+ dpi.enabled = dp.isEnabled();
+ dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask();
+ // Shift by 1 bit due to the discrepancy between
+ // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of
+ // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX.
+ dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask(
+ dp.getBearerBitmask()) << 1;
+ dpi.mtu = dp.getMtuV4();
+ dpi.persistent = dp.isPersistent();
+ dpi.preferred = dp.isPreferred();
+
+ // profile id is only meaningful when it's persistent on the modem.
+ dpi.profileId = (dpi.persistent) ? dp.getProfileId()
+ : android.hardware.radio.V1_0.DataProfileId.INVALID;
+
+ return dpi;
+ }
+
+ /**
+ * Convert to DataProfileInfo defined in radio/1.5/types.hal
+ * @param dp Data profile
+ * @return The converted DataProfileInfo
+ */
+ public static android.hardware.radio.V1_5.DataProfileInfo convertToHalDataProfile15(
+ DataProfile dp) {
+ android.hardware.radio.V1_5.DataProfileInfo dpi =
+ new android.hardware.radio.V1_5.DataProfileInfo();
+
+ dpi.apn = dp.getApn();
+ dpi.protocol = dp.getProtocolType();
+ dpi.roamingProtocol = dp.getRoamingProtocolType();
+ dpi.authType = dp.getAuthType();
+ dpi.user = dp.getUserName();
+ dpi.password = dp.getPassword();
+ dpi.type = dp.getType();
+ dpi.maxConnsTime = dp.getMaxConnectionsTime();
+ dpi.maxConns = dp.getMaxConnections();
+ dpi.waitTime = dp.getWaitTime();
+ dpi.enabled = dp.isEnabled();
+ dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask();
+ // Shift by 1 bit due to the discrepancy between
+ // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of
+ // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX.
+ dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask(
+ dp.getBearerBitmask()) << 1;
+ dpi.mtuV4 = dp.getMtuV4();
+ dpi.mtuV6 = dp.getMtuV6();
+ dpi.persistent = dp.isPersistent();
+ dpi.preferred = dp.isPreferred();
+
+ // profile id is only meaningful when it's persistent on the modem.
+ dpi.profileId = (dpi.persistent) ? dp.getProfileId()
+ : android.hardware.radio.V1_0.DataProfileId.INVALID;
+
+ return dpi;
+ }
+
+ /**
+ * Convert to OptionalSliceInfo defined in radio/1.6/types.hal
+ * @param sliceInfo Slice info
+ * @return The converted OptionalSliceInfo
+ */
+ public static android.hardware.radio.V1_6.OptionalSliceInfo convertToHalSliceInfo(
+ @Nullable NetworkSliceInfo sliceInfo) {
+ android.hardware.radio.V1_6.OptionalSliceInfo optionalSliceInfo =
+ new android.hardware.radio.V1_6.OptionalSliceInfo();
+ if (sliceInfo == null) {
+ return optionalSliceInfo;
+ }
+
+ android.hardware.radio.V1_6.SliceInfo si = new android.hardware.radio.V1_6.SliceInfo();
+ si.sst = (byte) sliceInfo.getSliceServiceType();
+ si.mappedHplmnSst = (byte) sliceInfo.getMappedHplmnSliceServiceType();
+ si.sliceDifferentiator = sliceInfo.getSliceDifferentiator();
+ si.mappedHplmnSD = sliceInfo.getMappedHplmnSliceDifferentiator();
+ optionalSliceInfo.value(si);
+ return optionalSliceInfo;
+ }
+
+ /**
+ * Convert to OptionalTrafficDescriptor defined in radio/1.6/types.hal
+ * @param trafficDescriptor Traffic descriptor
+ * @return The converted OptionalTrafficDescriptor
+ */
+ public static android.hardware.radio.V1_6.OptionalTrafficDescriptor
+ convertToHalTrafficDescriptor(@Nullable TrafficDescriptor trafficDescriptor) {
+ android.hardware.radio.V1_6.OptionalTrafficDescriptor optionalTrafficDescriptor =
+ new android.hardware.radio.V1_6.OptionalTrafficDescriptor();
+ if (trafficDescriptor == null) {
+ return optionalTrafficDescriptor;
+ }
+
+ android.hardware.radio.V1_6.TrafficDescriptor td =
+ new android.hardware.radio.V1_6.TrafficDescriptor();
+
+ android.hardware.radio.V1_6.OptionalDnn optionalDnn =
+ new android.hardware.radio.V1_6.OptionalDnn();
+ if (trafficDescriptor.getDataNetworkName() != null) {
+ optionalDnn.value(trafficDescriptor.getDataNetworkName());
+ }
+ td.dnn = optionalDnn;
+
+ android.hardware.radio.V1_6.OptionalOsAppId optionalOsAppId =
+ new android.hardware.radio.V1_6.OptionalOsAppId();
+ if (trafficDescriptor.getOsAppId() != null) {
+ android.hardware.radio.V1_6.OsAppId osAppId = new android.hardware.radio.V1_6.OsAppId();
+ osAppId.osAppId = primitiveArrayToArrayList(trafficDescriptor.getOsAppId().getBytes());
+ optionalOsAppId.value(osAppId);
+ }
+ td.osAppId = optionalOsAppId;
+
+ optionalTrafficDescriptor.value(td);
+ return optionalTrafficDescriptor;
+ }
+
+ /**
+ * Convert to ResetNvType defined in radio/1.0/types.hal
+ * @param resetType NV reset type
+ * @return The converted reset type in integer or -1 if param is invalid
+ */
+ public static int convertToHalResetNvType(int resetType) {
+ /**
+ * resetType values
+ * 1 - reload all NV items
+ * 2 - erase NV reset (SCRTN)
+ * 3 - factory reset (RTN)
+ */
+ switch (resetType) {
+ case 1: return android.hardware.radio.V1_0.ResetNvType.RELOAD;
+ case 2: return android.hardware.radio.V1_0.ResetNvType.ERASE;
+ case 3: return android.hardware.radio.V1_0.ResetNvType.FACTORY_RESET;
+ }
+ return -1;
+ }
+
+ /**
+ * Convert to a list of LinkAddress defined in radio/1.5/types.hal
+ * @param linkProperties Link properties
+ * @return The converted list of LinkAddresses
+ */
+ public static ArrayList<android.hardware.radio.V1_5.LinkAddress> convertToHalLinkProperties15(
+ LinkProperties linkProperties) {
+ ArrayList<android.hardware.radio.V1_5.LinkAddress> addresses15 = new ArrayList<>();
+ if (linkProperties != null) {
+ for (android.net.LinkAddress la : linkProperties.getAllLinkAddresses()) {
+ android.hardware.radio.V1_5.LinkAddress linkAddress =
+ new android.hardware.radio.V1_5.LinkAddress();
+ linkAddress.address = la.getAddress().getHostAddress();
+ linkAddress.properties = la.getFlags();
+ linkAddress.deprecationTime = la.getDeprecationTime();
+ linkAddress.expirationTime = la.getExpirationTime();
+ addresses15.add(linkAddress);
+ }
+ }
+ return addresses15;
+ }
+
+ /**
+ * Convert to RadioAccessSpecifier defined in radio/1.1/types.hal
+ * @param ras Radio access specifier
+ * @return The converted RadioAccessSpecifier
+ */
+ public static android.hardware.radio.V1_1.RadioAccessSpecifier
+ convertToHalRadioAccessSpecifier11(RadioAccessSpecifier ras) {
+ android.hardware.radio.V1_1.RadioAccessSpecifier rasInHalFormat =
+ new android.hardware.radio.V1_1.RadioAccessSpecifier();
+ rasInHalFormat.radioAccessNetwork = ras.getRadioAccessNetwork();
+ ArrayList<Integer> bands = new ArrayList<>();
+ if (ras.getBands() != null) {
+ for (int band : ras.getBands()) {
+ bands.add(band);
+ }
+ }
+ switch (ras.getRadioAccessNetwork()) {
+ case AccessNetworkConstants.AccessNetworkType.GERAN:
+ rasInHalFormat.geranBands = bands;
+ break;
+ case AccessNetworkConstants.AccessNetworkType.UTRAN:
+ rasInHalFormat.utranBands = bands;
+ break;
+ case AccessNetworkConstants.AccessNetworkType.EUTRAN:
+ rasInHalFormat.eutranBands = bands;
+ break;
+ default:
+ return null;
+ }
+
+ if (ras.getChannels() != null) {
+ for (int channel : ras.getChannels()) {
+ rasInHalFormat.channels.add(channel);
+ }
+ }
+
+ return rasInHalFormat;
+ }
+
+ /**
+ * Convert to RadioAccessSpecifier defined in radio/1.5/types.hal
+ * @param ras Radio access specifier
+ * @return The converted RadioAccessSpecifier
+ */
+ public static android.hardware.radio.V1_5.RadioAccessSpecifier
+ convertToHalRadioAccessSpecifier15(RadioAccessSpecifier ras) {
+ android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat =
+ new android.hardware.radio.V1_5.RadioAccessSpecifier();
+ android.hardware.radio.V1_5.RadioAccessSpecifier.Bands bandsInHalFormat =
+ new android.hardware.radio.V1_5.RadioAccessSpecifier.Bands();
+ rasInHalFormat.radioAccessNetwork = convertToHalRadioAccessNetworks(
+ ras.getRadioAccessNetwork());
+ ArrayList<Integer> bands = new ArrayList<>();
+ if (ras.getBands() != null) {
+ for (int band : ras.getBands()) {
+ bands.add(band);
+ }
+ }
+ switch (ras.getRadioAccessNetwork()) {
+ case AccessNetworkConstants.AccessNetworkType.GERAN:
+ bandsInHalFormat.geranBands(bands);
+ break;
+ case AccessNetworkConstants.AccessNetworkType.UTRAN:
+ bandsInHalFormat.utranBands(bands);
+ break;
+ case AccessNetworkConstants.AccessNetworkType.EUTRAN:
+ bandsInHalFormat.eutranBands(bands);
+ break;
+ case AccessNetworkConstants.AccessNetworkType.NGRAN:
+ bandsInHalFormat.ngranBands(bands);
+ break;
+ default:
+ return null;
+ }
+ rasInHalFormat.bands = bandsInHalFormat;
+
+ if (ras.getChannels() != null) {
+ for (int channel : ras.getChannels()) {
+ rasInHalFormat.channels.add(channel);
+ }
+ }
+
+ return rasInHalFormat;
+ }
+
+ /**
+ * Convert to censored terminal response
+ * @param terminalResponse Terminal response
+ * @return The converted censored terminal response
+ */
+ public static String convertToCensoredTerminalResponse(String terminalResponse) {
+ try {
+ byte[] bytes = IccUtils.hexStringToBytes(terminalResponse);
+ if (bytes != null) {
+ List<ComprehensionTlv> ctlvs = ComprehensionTlv.decodeMany(bytes, 0);
+ int from = 0;
+ for (ComprehensionTlv ctlv : ctlvs) {
+ // Find text strings which might be personal information input by user,
+ // then replace it with "********".
+ if (ComprehensionTlvTag.TEXT_STRING.value() == ctlv.getTag()) {
+ byte[] target = Arrays.copyOfRange(ctlv.getRawValue(), from,
+ ctlv.getValueIndex() + ctlv.getLength());
+ terminalResponse = terminalResponse.toLowerCase().replace(
+ IccUtils.bytesToHexString(target).toLowerCase(), "********");
+ }
+ // The text string tag and the length field should also be hidden.
+ from = ctlv.getValueIndex() + ctlv.getLength();
+ }
+ }
+ } catch (Exception e) {
+ terminalResponse = null;
+ }
+
+ return terminalResponse;
+ }
+
+ /**
+ * Convert to {@link TelephonyManager.NetworkTypeBitMask}, the bitmask represented by
+ * {@link android.telephony.Annotation.NetworkType}.
+ *
+ * @param raf {@link android.hardware.radio.V1_0.RadioAccessFamily}
+ * @return {@link TelephonyManager.NetworkTypeBitMask}
+ */
+ @TelephonyManager.NetworkTypeBitMask
+ public static int convertHalNetworkTypeBitMask(int raf) {
+ int networkTypeRaf = 0;
+
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.GSM) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GSM;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.GPRS) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GPRS;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EDGE) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EDGE;
+ }
+ // convert both IS95A/IS95B to CDMA as network mode doesn't support CDMA
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.IS95A) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.IS95B) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.ONE_X_RTT) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_0) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_A) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_B) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EHRPD) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSUPA) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSDPA) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSPA) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPA;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSPAP) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.UMTS) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_UMTS;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.TD_SCDMA) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.LTE) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
+ }
+ if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.LTE_CA) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;
+ }
+ if ((raf & android.hardware.radio.V1_4.RadioAccessFamily.NR) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_NR;
+ }
+ // TODO: need hal definition
+ if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN)) != 0) {
+ networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_IWLAN;
+ }
+ return (networkTypeRaf == 0) ? TelephonyManager.NETWORK_TYPE_UNKNOWN : networkTypeRaf;
+ }
+
+ /**
+ * Convert to RadioAccessFamily defined in radio/1.4/types.hal
+ * @param networkTypeBitmask {@link TelephonyManager.NetworkTypeBitMask}, the bitmask
+ * represented by {@link android.telephony.Annotation.NetworkType}
+ * @return The converted RadioAccessFamily
+ */
+ public static int convertToHalRadioAccessFamily(
+ @TelephonyManager.NetworkTypeBitMask int networkTypeBitmask) {
+ int raf = 0;
+
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_GSM) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.GSM;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_GPRS) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.GPRS;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EDGE) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.EDGE;
+ }
+ // convert CDMA to IS95A, consistent with ServiceState.networkTypeToRilRadioTechnology
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_CDMA) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.IS95A;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.ONE_X_RTT;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.EVDO_0;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.EVDO_A;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.EVDO_B;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.EHRPD;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSUPA;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSDPA;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSPA) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSPA;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.HSPAP;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_UMTS) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.UMTS;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.TD_SCDMA;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_LTE) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.LTE;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA) != 0) {
+ raf |= android.hardware.radio.V1_0.RadioAccessFamily.LTE_CA;
+ }
+ if ((networkTypeBitmask & TelephonyManager.NETWORK_TYPE_BITMASK_NR) != 0) {
+ raf |= android.hardware.radio.V1_4.RadioAccessFamily.NR;
+ }
+ // TODO: need hal definition for IWLAN
+ return (raf == 0) ? android.hardware.radio.V1_4.RadioAccessFamily.UNKNOWN : raf;
+ }
+
+ /**
+ * Convert AccessNetworkType to AccessNetwork defined in radio/1.5/types.hal
+ * @param accessNetworkType Access networkt ype
+ * @return The converted AccessNetwork
+ */
+ public static int convertToHalAccessNetwork(int accessNetworkType) {
+ switch (accessNetworkType) {
+ case AccessNetworkConstants.AccessNetworkType.GERAN:
+ return android.hardware.radio.V1_5.AccessNetwork.GERAN;
+ case AccessNetworkConstants.AccessNetworkType.UTRAN:
+ return android.hardware.radio.V1_5.AccessNetwork.UTRAN;
+ case AccessNetworkConstants.AccessNetworkType.EUTRAN:
+ return android.hardware.radio.V1_5.AccessNetwork.EUTRAN;
+ case AccessNetworkConstants.AccessNetworkType.CDMA2000:
+ return android.hardware.radio.V1_5.AccessNetwork.CDMA2000;
+ case AccessNetworkConstants.AccessNetworkType.IWLAN:
+ return android.hardware.radio.V1_5.AccessNetwork.IWLAN;
+ case AccessNetworkConstants.AccessNetworkType.NGRAN:
+ return android.hardware.radio.V1_5.AccessNetwork.NGRAN;
+ case AccessNetworkConstants.AccessNetworkType.UNKNOWN:
+ default:
+ return android.hardware.radio.V1_5.AccessNetwork.UNKNOWN;
+ }
+ }
+
+ /**
+ * Convert AccessNetworkType to RadioAccessNetwork defined in radio/1.1/types.hal
+ * @param accessNetworkType Access network type
+ * @return The converted RadioAccessNetwork
+ */
+ public static int convertToHalRadioAccessNetworks(int accessNetworkType) {
+ switch (accessNetworkType) {
+ case AccessNetworkConstants.AccessNetworkType.GERAN:
+ return android.hardware.radio.V1_1.RadioAccessNetworks.GERAN;
+ case AccessNetworkConstants.AccessNetworkType.UTRAN:
+ return android.hardware.radio.V1_1.RadioAccessNetworks.UTRAN;
+ case AccessNetworkConstants.AccessNetworkType.EUTRAN:
+ return android.hardware.radio.V1_1.RadioAccessNetworks.EUTRAN;
+ case AccessNetworkConstants.AccessNetworkType.NGRAN:
+ return android.hardware.radio.V1_5.RadioAccessNetworks.NGRAN;
+ case AccessNetworkConstants.AccessNetworkType.CDMA2000:
+ return android.hardware.radio.V1_5.RadioAccessNetworks.CDMA2000;
+ case AccessNetworkConstants.AccessNetworkType.UNKNOWN:
+ default:
+ return android.hardware.radio.V1_5.RadioAccessNetworks.UNKNOWN;
+ }
+ }
+
+ /**
+ * Convert RadioAccessNetworks defined in radio/1.5/types.hal to AccessNetworkType
+ * @param ran RadioAccessNetwork defined in radio/1.5/types.hal
+ * @return The converted AccessNetworkType
+ */
+ public static int convertHalRadioAccessNetworks(int ran) {
+ switch (ran) {
+ case android.hardware.radio.V1_5.RadioAccessNetworks.GERAN:
+ return AccessNetworkConstants.AccessNetworkType.GERAN;
+ case android.hardware.radio.V1_5.RadioAccessNetworks.UTRAN:
+ return AccessNetworkConstants.AccessNetworkType.UTRAN;
+ case android.hardware.radio.V1_5.RadioAccessNetworks.EUTRAN:
+ return AccessNetworkConstants.AccessNetworkType.EUTRAN;
+ case android.hardware.radio.V1_5.RadioAccessNetworks.NGRAN:
+ return AccessNetworkConstants.AccessNetworkType.NGRAN;
+ case android.hardware.radio.V1_5.RadioAccessNetworks.CDMA2000:
+ return AccessNetworkConstants.AccessNetworkType.CDMA2000;
+ case android.hardware.radio.V1_5.RadioAccessNetworks.UNKNOWN:
+ default:
+ return AccessNetworkConstants.AccessNetworkType.UNKNOWN;
+ }
+ }
+
+ /**
+ * Convert to SimApdu defined in radio/1.0/types.hal
+ * @param channel channel
+ * @param cla cla
+ * @param instruction instruction
+ * @param p1 p1
+ * @param p2 p2
+ * @param p3 p3
+ * @param data data
+ * @return The converted SimApdu
+ */
+ public static android.hardware.radio.V1_0.SimApdu convertToHalSimApdu(int channel, int cla,
+ int instruction, int p1, int p2, int p3, String data) {
+ android.hardware.radio.V1_0.SimApdu msg = new android.hardware.radio.V1_0.SimApdu();
+ msg.sessionId = channel;
+ msg.cla = cla;
+ msg.instruction = instruction;
+ msg.p1 = p1;
+ msg.p2 = p2;
+ msg.p3 = p3;
+ msg.data = convertNullToEmptyString(data);
+ return msg;
+ }
+
+ /**
+ * Convert a list of CarrierIdentifiers into a list of Carrier defined in radio/1.0/types.hal
+ * @param carriers List of CarrierIdentifiers
+ * @return The converted list of Carriers
+ */
+ public static ArrayList<android.hardware.radio.V1_0.Carrier> convertToHalCarrierRestrictionList(
+ List<CarrierIdentifier> carriers) {
+ ArrayList<android.hardware.radio.V1_0.Carrier> result = new ArrayList<>();
+ for (CarrierIdentifier ci : carriers) {
+ android.hardware.radio.V1_0.Carrier c = new android.hardware.radio.V1_0.Carrier();
+ c.mcc = convertNullToEmptyString(ci.getMcc());
+ c.mnc = convertNullToEmptyString(ci.getMnc());
+ int matchType = CarrierIdentifier.MatchType.ALL;
+ String matchData = null;
+ if (!TextUtils.isEmpty(ci.getSpn())) {
+ matchType = CarrierIdentifier.MatchType.SPN;
+ matchData = ci.getSpn();
+ } else if (!TextUtils.isEmpty(ci.getImsi())) {
+ matchType = CarrierIdentifier.MatchType.IMSI_PREFIX;
+ matchData = ci.getImsi();
+ } else if (!TextUtils.isEmpty(ci.getGid1())) {
+ matchType = CarrierIdentifier.MatchType.GID1;
+ matchData = ci.getGid1();
+ } else if (!TextUtils.isEmpty(ci.getGid2())) {
+ matchType = CarrierIdentifier.MatchType.GID2;
+ matchData = ci.getGid2();
+ }
+ c.matchType = matchType;
+ c.matchData = convertNullToEmptyString(matchData);
+ result.add(c);
+ }
+ return result;
+ }
+
+ /**
+ * Convert to SignalThresholdInfo defined in radio/1.5/types.hal
+ * @param signalThresholdInfo Signal threshold info
+ * @return The converted SignalThresholdInfo
+ */
+ public static android.hardware.radio.V1_5.SignalThresholdInfo convertToHalSignalThresholdInfo(
+ SignalThresholdInfo signalThresholdInfo) {
+ android.hardware.radio.V1_5.SignalThresholdInfo signalThresholdInfoHal =
+ new android.hardware.radio.V1_5.SignalThresholdInfo();
+ signalThresholdInfoHal.signalMeasurement = signalThresholdInfo.getSignalMeasurementType();
+ signalThresholdInfoHal.hysteresisMs = signalThresholdInfo.getHysteresisMs();
+ signalThresholdInfoHal.hysteresisDb = signalThresholdInfo.getHysteresisDb();
+ signalThresholdInfoHal.thresholds = primitiveArrayToArrayList(
+ signalThresholdInfo.getThresholds());
+ signalThresholdInfoHal.isEnabled = signalThresholdInfo.isEnabled();
+ return signalThresholdInfoHal;
+ }
+
+ /**
+ * Convert StatusOnIcc to SmsWriteArgsStatus defined in radio/1.0/types.hal
+ * @param status StatusOnIcc
+ * @return The converted SmsWriteArgsStatus defined in radio/1.0/types.hal
+ */
+ public static int convertToHalSmsWriteArgsStatus(int status) {
+ switch(status & 0x7) {
+ case SmsManager.STATUS_ON_ICC_READ:
+ return android.hardware.radio.V1_0.SmsWriteArgsStatus.REC_READ;
+ case SmsManager.STATUS_ON_ICC_UNREAD:
+ return android.hardware.radio.V1_0.SmsWriteArgsStatus.REC_UNREAD;
+ case SmsManager.STATUS_ON_ICC_SENT:
+ return android.hardware.radio.V1_0.SmsWriteArgsStatus.STO_SENT;
+ case SmsManager.STATUS_ON_ICC_UNSENT:
+ return android.hardware.radio.V1_0.SmsWriteArgsStatus.STO_UNSENT;
+ default:
+ return android.hardware.radio.V1_0.SmsWriteArgsStatus.REC_READ;
+ }
+ }
+
+ /**
+ * Convert a list of HardwareConfig defined in radio/1.0/types.hal to a list of HardwareConfig
+ * @param hwListRil List of HardwareConfig defined in radio/1.0/types.hal
+ * @return The converted list of HardwareConfig
+ */
+ @TelephonyManager.NetworkTypeBitMask
+ public static ArrayList<HardwareConfig> convertHalHardwareConfigList(
+ ArrayList<android.hardware.radio.V1_0.HardwareConfig> hwListRil) {
+ int num;
+ ArrayList<HardwareConfig> response;
+ HardwareConfig hw;
+
+ num = hwListRil.size();
+ response = new ArrayList<>(num);
+
+ for (android.hardware.radio.V1_0.HardwareConfig hwRil : hwListRil) {
+ int type = hwRil.type;
+ switch(type) {
+ case HardwareConfig.DEV_HARDWARE_TYPE_MODEM: {
+ hw = new HardwareConfig(type);
+ android.hardware.radio.V1_0.HardwareConfigModem hwModem = hwRil.modem.get(0);
+ hw.assignModem(hwRil.uuid, hwRil.state, hwModem.rilModel, hwModem.rat,
+ hwModem.maxVoice, hwModem.maxData, hwModem.maxStandby);
+ break;
+ }
+ case HardwareConfig.DEV_HARDWARE_TYPE_SIM: {
+ hw = new HardwareConfig(type);
+ hw.assignSim(hwRil.uuid, hwRil.state, hwRil.sim.get(0).modemUuid);
+ break;
+ }
+ default: {
+ throw new RuntimeException(
+ "RIL_REQUEST_GET_HARDWARE_CONFIG invalid hardware type:" + type);
+ }
+ }
+ response.add(hw);
+ }
+ return response;
+ }
+
+ /**
+ * Convert RadioCapability defined in radio/1.0/types.hal to RadioCapability
+ * @param rc RadioCapability defined in radio/1.0/types.hal
+ * @param ril RIL
+ * @return The converted RadioCapability
+ */
+ public static RadioCapability convertHalRadioCapability(
+ android.hardware.radio.V1_0.RadioCapability rc, RIL ril) {
+ int session = rc.session;
+ int phase = rc.phase;
+ int rat = convertHalNetworkTypeBitMask(rc.raf);
+ String logicModemUuid = rc.logicalModemUuid;
+ int status = rc.status;
+
+ ril.riljLog("convertHalRadioCapability: session=" + session + ", phase=" + phase + ", rat="
+ + rat + ", logicModemUuid=" + logicModemUuid + ", status=" + status + ", rcRil.raf="
+ + rc.raf);
+ return new RadioCapability(ril.mPhoneId, session, phase, rat, logicModemUuid, status);
+ }
+
+ /**
+ * Convert LceDataInfo defined in radio/1.0/types.hal to a list of LinkCapacityEstimates
+ * @param lce LceDataInfo defined in radio/1.0/types.hal
+ * @return The converted list of LinkCapacityEstimates
+ */
+ public static List<LinkCapacityEstimate> convertHalLceData(
+ android.hardware.radio.V1_0.LceDataInfo lce) {
+ final List<LinkCapacityEstimate> lceList = new ArrayList<>();
+ lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_COMBINED,
+ lce.lastHopCapacityKbps, LinkCapacityEstimate.INVALID));
+ return lceList;
+ }
+
+ /**
+ * Convert LinkCapacityEstimate defined in radio/1.2/types.hal to a list of
+ * LinkCapacityEstimates
+ * @param lce LinkCapacityEstimate defined in radio/1.2/types.hal
+ * @return The converted list of LinkCapacityEstimates
+ */
+ public static List<LinkCapacityEstimate> convertHalLceData(
+ android.hardware.radio.V1_2.LinkCapacityEstimate lce) {
+ final List<LinkCapacityEstimate> lceList = new ArrayList<>();
+ lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_COMBINED,
+ lce.downlinkCapacityKbps, lce.uplinkCapacityKbps));
+ return lceList;
+ }
+
+ /**
+ * Convert LinkCapacityEstimate defined in radio/1.6/types.hal to a list of
+ * LinkCapacityEstimates
+ * @param lce LinkCapacityEstimate defined in radio/1.6/types.hal
+ * @return The converted list of LinkCapacityEstimates
+ */
+ public static List<LinkCapacityEstimate> convertHalLceData(
+ android.hardware.radio.V1_6.LinkCapacityEstimate lce) {
+ final List<LinkCapacityEstimate> lceList = new ArrayList<>();
+ int primaryDownlinkCapacityKbps = lce.downlinkCapacityKbps;
+ int primaryUplinkCapacityKbps = lce.uplinkCapacityKbps;
+ if (primaryDownlinkCapacityKbps != LinkCapacityEstimate.INVALID
+ && lce.secondaryDownlinkCapacityKbps != LinkCapacityEstimate.INVALID) {
+ primaryDownlinkCapacityKbps =
+ lce.downlinkCapacityKbps - lce.secondaryDownlinkCapacityKbps;
+ }
+ if (primaryUplinkCapacityKbps != LinkCapacityEstimate.INVALID
+ && lce.secondaryUplinkCapacityKbps != LinkCapacityEstimate.INVALID) {
+ primaryUplinkCapacityKbps =
+ lce.uplinkCapacityKbps - lce.secondaryUplinkCapacityKbps;
+ }
+ lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_PRIMARY,
+ primaryDownlinkCapacityKbps, primaryUplinkCapacityKbps));
+ lceList.add(new LinkCapacityEstimate(LinkCapacityEstimate.LCE_TYPE_SECONDARY,
+ lce.secondaryDownlinkCapacityKbps, lce.secondaryUplinkCapacityKbps));
+ return lceList;
+ }
+
+ /**
+ * Convert a list of CellInfo defined in radio/1.0, 1.2, 1.4, 1.5, 1.6/types.hal to a list of
+ * CellInfos
+ * @param records List of CellInfo defined in radio/1.0, 1.2, 1.4, 1.5, 1.6/types.hal
+ * @return The converted list of CellInfos
+ */
+ public static ArrayList<CellInfo> convertHalCellInfoList(ArrayList<Object> records) {
+ ArrayList<CellInfo> response = new ArrayList<>(records.size());
+ if (records.isEmpty()) return response;
+ final long nanotime = SystemClock.elapsedRealtimeNanos();
+ for (Object obj : records) {
+ response.add(convertHalCellInfo(obj, nanotime));
+ }
+ return response;
+ }
+
+ private static CellInfo convertHalCellInfo(Object cellInfo, long nanotime) {
+ if (cellInfo == null) return null;
+ if (cellInfo instanceof android.hardware.radio.V1_0.CellInfo) {
+ final android.hardware.radio.V1_0.CellInfo record =
+ (android.hardware.radio.V1_0.CellInfo) cellInfo;
+ record.timeStamp = nanotime;
+ return CellInfo.create(record);
+ } else if (cellInfo instanceof android.hardware.radio.V1_2.CellInfo) {
+ final android.hardware.radio.V1_2.CellInfo record =
+ (android.hardware.radio.V1_2.CellInfo) cellInfo;
+ record.timeStamp = nanotime;
+ return CellInfo.create(record);
+ } else if (cellInfo instanceof android.hardware.radio.V1_4.CellInfo) {
+ final android.hardware.radio.V1_4.CellInfo record =
+ (android.hardware.radio.V1_4.CellInfo) cellInfo;
+ return CellInfo.create(record, nanotime);
+ } else if (cellInfo instanceof android.hardware.radio.V1_5.CellInfo) {
+ final android.hardware.radio.V1_5.CellInfo record =
+ (android.hardware.radio.V1_5.CellInfo) cellInfo;
+ return CellInfo.create(record, nanotime);
+ } else if (cellInfo instanceof android.hardware.radio.V1_6.CellInfo) {
+ final android.hardware.radio.V1_6.CellInfo record =
+ (android.hardware.radio.V1_6.CellInfo) cellInfo;
+ return CellInfo.create(record, nanotime);
+ } else {
+ return null;
+ }
+ }
+
+ private static LinkAddress convertToLinkAddress(String addressString) {
+ return convertToLinkAddress(addressString, 0, LinkAddress.LIFETIME_UNKNOWN,
+ LinkAddress.LIFETIME_UNKNOWN);
+ }
+
+ private static LinkAddress convertToLinkAddress(String addressString, int properties,
+ long deprecationTime, long expirationTime) {
+ addressString = addressString.trim();
+ InetAddress address = null;
+ int prefixLength = -1;
+ try {
+ String[] pieces = addressString.split("/", 2);
+ address = InetAddresses.parseNumericAddress(pieces[0]);
+ if (pieces.length == 1) {
+ prefixLength = (address instanceof Inet4Address) ? 32 : 128;
+ } else if (pieces.length == 2) {
+ prefixLength = Integer.parseInt(pieces[1]);
+ }
+ } catch (NullPointerException e) { // Null string.
+ } catch (ArrayIndexOutOfBoundsException e) { // No prefix length.
+ } catch (NumberFormatException e) { // Non-numeric prefix.
+ } catch (IllegalArgumentException e) { // Invalid IP address.
+ }
+
+ if (address == null || prefixLength == -1) {
+ throw new IllegalArgumentException("Invalid link address " + addressString);
+ }
+
+ return new LinkAddress(address, prefixLength, properties, 0, deprecationTime,
+ expirationTime);
+ }
+
+ /**
+ * Convert SetupDataCallResult defined in radio/1.0, 1.4, 1.5, 1.6/types.hal into
+ * DataCallResponse
+ * @param dcResult SetupDataCallResult defined in radio/1.0, 1.4, 1.5, 1.6/types.hal
+ * @return The converted DataCallResponse
+ */
+ @VisibleForTesting
+ public static DataCallResponse convertHalDataCallResult(Object dcResult) {
+ if (dcResult == null) return null;
+
+ int cause, cid, active, mtu, mtuV4, mtuV6;
+ long suggestedRetryTime;
+ String ifname;
+ int protocolType;
+ String[] addresses = null;
+ String[] dnses = null;
+ String[] gateways = null;
+ String[] pcscfs = null;
+ Qos defaultQos = null;
+ @DataCallResponse.HandoverFailureMode
+ int handoverFailureMode = DataCallResponse.HANDOVER_FAILURE_MODE_LEGACY;
+ int pduSessionId = DataCallResponse.PDU_SESSION_ID_NOT_SET;
+ List<LinkAddress> laList = new ArrayList<>();
+ List<QosBearerSession> qosSessions = new ArrayList<>();
+ NetworkSliceInfo sliceInfo = null;
+ List<TrafficDescriptor> trafficDescriptors = new ArrayList<>();
+
+ if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) {
+ final android.hardware.radio.V1_0.SetupDataCallResult result =
+ (android.hardware.radio.V1_0.SetupDataCallResult) dcResult;
+ cause = result.status;
+ suggestedRetryTime = result.suggestedRetryTime;
+ cid = result.cid;
+ active = result.active;
+ protocolType = ApnSetting.getProtocolIntFromString(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+");
+ }
+ if (!TextUtils.isEmpty(result.pcscf)) {
+ pcscfs = result.pcscf.split("\\s+");
+ }
+ mtu = mtuV4 = mtuV6 = result.mtu;
+ if (addresses != null) {
+ for (String address : addresses) {
+ laList.add(convertToLinkAddress(address));
+ }
+ }
+ } 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;
+ cause = result.cause;
+ suggestedRetryTime = result.suggestedRetryTime;
+ cid = result.cid;
+ active = result.active;
+ protocolType = result.type;
+ ifname = result.ifname;
+ addresses = result.addresses.toArray(new String[0]);
+ dnses = result.dnses.toArray(new String[0]);
+ gateways = result.gateways.toArray(new String[0]);
+ pcscfs = result.pcscf.toArray(new String[0]);
+ mtu = mtuV4 = mtuV6 = result.mtu;
+ if (addresses != null) {
+ for (String address : addresses) {
+ laList.add(convertToLinkAddress(address));
+ }
+ }
+ } else if (dcResult instanceof android.hardware.radio.V1_5.SetupDataCallResult) {
+ final android.hardware.radio.V1_5.SetupDataCallResult result =
+ (android.hardware.radio.V1_5.SetupDataCallResult) dcResult;
+ cause = result.cause;
+ suggestedRetryTime = result.suggestedRetryTime;
+ cid = result.cid;
+ active = result.active;
+ protocolType = result.type;
+ ifname = result.ifname;
+ laList = result.addresses.stream().map(la -> convertToLinkAddress(
+ la.address, la.properties, la.deprecationTime, la.expirationTime))
+ .collect(Collectors.toList());
+ dnses = result.dnses.toArray(new String[0]);
+ gateways = result.gateways.toArray(new String[0]);
+ pcscfs = result.pcscf.toArray(new String[0]);
+ mtu = Math.max(result.mtuV4, result.mtuV6);
+ mtuV4 = result.mtuV4;
+ mtuV6 = result.mtuV6;
+ } else if (dcResult instanceof android.hardware.radio.V1_6.SetupDataCallResult) {
+ final android.hardware.radio.V1_6.SetupDataCallResult result =
+ (android.hardware.radio.V1_6.SetupDataCallResult) dcResult;
+ cause = result.cause;
+ suggestedRetryTime = result.suggestedRetryTime;
+ cid = result.cid;
+ active = result.active;
+ protocolType = result.type;
+ ifname = result.ifname;
+ laList = result.addresses.stream().map(la -> convertToLinkAddress(
+ la.address, la.properties, la.deprecationTime, la.expirationTime))
+ .collect(Collectors.toList());
+ dnses = result.dnses.toArray(new String[0]);
+ gateways = result.gateways.toArray(new String[0]);
+ pcscfs = result.pcscf.toArray(new String[0]);
+ mtu = Math.max(result.mtuV4, result.mtuV6);
+ mtuV4 = result.mtuV4;
+ mtuV6 = result.mtuV6;
+ handoverFailureMode = result.handoverFailureMode;
+ pduSessionId = result.pduSessionId;
+ defaultQos = convertHalQos(result.defaultQos);
+ qosSessions = result.qosSessions.stream().map(RILUtils::convertHalQosBearerSession)
+ .collect(Collectors.toList());
+ sliceInfo = result.sliceInfo.getDiscriminator()
+ == android.hardware.radio.V1_6.OptionalSliceInfo.hidl_discriminator.noinit
+ ? null : convertHalSliceInfo(result.sliceInfo.value());
+ trafficDescriptors = result.trafficDescriptors.stream().map(
+ RILUtils::convertHalTrafficDescriptor).collect(Collectors.toList());
+ } else {
+ Rlog.e(LOG_TAG, "Unsupported SetupDataCallResult " + dcResult);
+ return null;
+ }
+
+ // Process dns
+ List<InetAddress> dnsList = new ArrayList<>();
+ if (dnses != null) {
+ for (String dns : dnses) {
+ dns = dns.trim();
+ InetAddress ia;
+ try {
+ ia = InetAddresses.parseNumericAddress(dns);
+ dnsList.add(ia);
+ } catch (IllegalArgumentException e) {
+ Rlog.e(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 = InetAddresses.parseNumericAddress(gateway);
+ gatewayList.add(ia);
+ } catch (IllegalArgumentException e) {
+ Rlog.e(LOG_TAG, "Unknown gateway: " + gateway, e);
+ }
+ }
+ }
+
+ // Process gateway
+ List<InetAddress> pcscfList = new ArrayList<>();
+ if (pcscfs != null) {
+ for (String pcscf : pcscfs) {
+ pcscf = pcscf.trim();
+ InetAddress ia;
+ try {
+ ia = InetAddresses.parseNumericAddress(pcscf);
+ pcscfList.add(ia);
+ } catch (IllegalArgumentException e) {
+ Rlog.e(LOG_TAG, "Unknown pcscf: " + pcscf, e);
+ }
+ }
+ }
+
+ return new DataCallResponse.Builder()
+ .setCause(cause)
+ .setRetryDurationMillis(suggestedRetryTime)
+ .setId(cid)
+ .setLinkStatus(active)
+ .setProtocolType(protocolType)
+ .setInterfaceName(ifname)
+ .setAddresses(laList)
+ .setDnsAddresses(dnsList)
+ .setGatewayAddresses(gatewayList)
+ .setPcscfAddresses(pcscfList)
+ .setMtu(mtu)
+ .setMtuV4(mtuV4)
+ .setMtuV6(mtuV6)
+ .setHandoverFailureMode(handoverFailureMode)
+ .setPduSessionId(pduSessionId)
+ .setDefaultQos(defaultQos)
+ .setQosBearerSessions(qosSessions)
+ .setSliceInfo(sliceInfo)
+ .setTrafficDescriptors(trafficDescriptors)
+ .build();
+ }
+
+ /**
+ * Convert SetupDataCallResult defined in SetupDataCallResult.aidl into DataCallResponse
+ * @param result SetupDataCallResult defined in SetupDataCallResult.aidl
+ * @return The converted DataCallResponse
+ */
+ @VisibleForTesting
+ public static DataCallResponse convertHalDataCallResult(
+ android.hardware.radio.data.SetupDataCallResult result) {
+ if (result == null) return null;
+ List<LinkAddress> laList = new ArrayList<>();
+ for (android.hardware.radio.data.LinkAddress la : result.addresses) {
+ laList.add(convertToLinkAddress(la.address, la.addressProperties,
+ la.deprecationTime, la.expirationTime));
+ }
+ List<InetAddress> dnsList = new ArrayList<>();
+ if (result.dnses != null) {
+ for (String dns : result.dnses) {
+ dns = dns.trim();
+ InetAddress ia;
+ try {
+ ia = InetAddresses.parseNumericAddress(dns);
+ dnsList.add(ia);
+ } catch (IllegalArgumentException e) {
+ Rlog.e(LOG_TAG, "Unknown dns: " + dns, e);
+ }
+ }
+ }
+ List<InetAddress> gatewayList = new ArrayList<>();
+ if (result.gateways != null) {
+ for (String gateway : result.gateways) {
+ gateway = gateway.trim();
+ InetAddress ia;
+ try {
+ ia = InetAddresses.parseNumericAddress(gateway);
+ gatewayList.add(ia);
+ } catch (IllegalArgumentException e) {
+ Rlog.e(LOG_TAG, "Unknown gateway: " + gateway, e);
+ }
+ }
+ }
+ List<InetAddress> pcscfList = new ArrayList<>();
+ if (result.pcscf != null) {
+ for (String pcscf : result.pcscf) {
+ pcscf = pcscf.trim();
+ InetAddress ia;
+ try {
+ ia = InetAddresses.parseNumericAddress(pcscf);
+ pcscfList.add(ia);
+ } catch (IllegalArgumentException e) {
+ Rlog.e(LOG_TAG, "Unknown pcscf: " + pcscf, e);
+ }
+ }
+ }
+ List<QosBearerSession> qosSessions = new ArrayList<>();
+ for (android.hardware.radio.data.QosSession session : result.qosSessions) {
+ qosSessions.add(convertHalQosBearerSession(session));
+ }
+ List<TrafficDescriptor> trafficDescriptors = new ArrayList<>();
+ for (android.hardware.radio.data.TrafficDescriptor td : result.trafficDescriptors) {
+ trafficDescriptors.add(convertHalTrafficDescriptor(td));
+ }
+
+ return new DataCallResponse.Builder()
+ .setCause(result.cause)
+ .setRetryDurationMillis(result.suggestedRetryTime)
+ .setId(result.cid)
+ .setLinkStatus(result.active)
+ .setProtocolType(result.type)
+ .setInterfaceName(result.ifname)
+ .setAddresses(laList)
+ .setDnsAddresses(dnsList)
+ .setGatewayAddresses(gatewayList)
+ .setPcscfAddresses(pcscfList)
+ .setMtu(Math.max(result.mtuV4, result.mtuV6))
+ .setMtuV4(result.mtuV4)
+ .setMtuV6(result.mtuV6)
+ .setHandoverFailureMode(result.handoverFailureMode)
+ .setPduSessionId(result.pduSessionId)
+ .setDefaultQos(convertHalQos(result.defaultQos))
+ .setQosBearerSessions(qosSessions)
+ .setSliceInfo(convertHalSliceInfo(result.sliceInfo))
+ .setTrafficDescriptors(trafficDescriptors)
+ .build();
+ }
+
+ private static NetworkSliceInfo convertHalSliceInfo(android.hardware.radio.V1_6.SliceInfo si) {
+ NetworkSliceInfo.Builder builder = new NetworkSliceInfo.Builder()
+ .setSliceServiceType(si.sst)
+ .setMappedHplmnSliceServiceType(si.mappedHplmnSst);
+ if (si.sliceDifferentiator != NetworkSliceInfo.SLICE_DIFFERENTIATOR_NO_SLICE) {
+ builder.setSliceDifferentiator(si.sliceDifferentiator)
+ .setMappedHplmnSliceDifferentiator(si.mappedHplmnSD);
+ }
+ return builder.build();
+ }
+
+ private static NetworkSliceInfo convertHalSliceInfo(android.hardware.radio.data.SliceInfo si) {
+ NetworkSliceInfo.Builder builder = new NetworkSliceInfo.Builder()
+ .setSliceServiceType(si.sliceServiceType)
+ .setMappedHplmnSliceServiceType(si.mappedHplmnSst);
+ if (si.sliceDifferentiator != NetworkSliceInfo.SLICE_DIFFERENTIATOR_NO_SLICE) {
+ builder.setSliceDifferentiator(si.sliceDifferentiator)
+ .setMappedHplmnSliceDifferentiator(si.mappedHplmnSD);
+ }
+ return builder.build();
+ }
+
+ private static TrafficDescriptor convertHalTrafficDescriptor(
+ android.hardware.radio.V1_6.TrafficDescriptor td) {
+ String dnn = td.dnn.getDiscriminator()
+ == android.hardware.radio.V1_6.OptionalDnn.hidl_discriminator.noinit
+ ? null : td.dnn.value();
+ String osAppId = td.osAppId.getDiscriminator()
+ == android.hardware.radio.V1_6.OptionalOsAppId.hidl_discriminator.noinit
+ ? null : new String(arrayListToPrimitiveArray(td.osAppId.value().osAppId));
+ TrafficDescriptor.Builder builder = new TrafficDescriptor.Builder();
+ if (dnn != null) {
+ builder.setDataNetworkName(dnn);
+ }
+ if (osAppId != null) {
+ builder.setOsAppId(osAppId);
+ }
+ return builder.build();
+ }
+
+ private static TrafficDescriptor convertHalTrafficDescriptor(
+ android.hardware.radio.data.TrafficDescriptor td) {
+ String dnn = td.dnn;
+ String osAppId = td.osAppId == null ? null : new String(td.osAppId.osAppId);
+ TrafficDescriptor.Builder builder = new TrafficDescriptor.Builder();
+ if (dnn != null) {
+ builder.setDataNetworkName(dnn);
+ }
+ if (osAppId != null) {
+ builder.setOsAppId(osAppId);
+ }
+ return builder.build();
+ }
+
+ /**
+ * Convert SlicingConfig defined in radio/1.6/types.hal to SlicingConfig
+ * @param sc SlicingConfig defined in radio/1.6/types.hal
+ * @return The converted SlicingConfig
+ */
+ public static SlicingConfig convertHalSlicingConfig(
+ android.hardware.radio.V1_6.SlicingConfig sc) {
+ List<UrspRule> urspRules = sc.urspRules.stream().map(ur -> new UrspRule(ur.precedence,
+ ur.trafficDescriptors.stream().map(RILUtils::convertHalTrafficDescriptor)
+ .collect(Collectors.toList()),
+ ur.routeSelectionDescriptor.stream().map(rsd -> new RouteSelectionDescriptor(
+ rsd.precedence, rsd.sessionType.value(), rsd.sscMode.value(),
+ rsd.sliceInfo.stream().map(RILUtils::convertHalSliceInfo)
+ .collect(Collectors.toList()),
+ rsd.dnn)).collect(Collectors.toList())))
+ .collect(Collectors.toList());
+ return new SlicingConfig(urspRules, sc.sliceInfo.stream().map(RILUtils::convertHalSliceInfo)
+ .collect(Collectors.toList()));
+ }
+
+ /**
+ * Convert SlicingConfig defined in SlicingConfig.aidl to SlicingConfig
+ * @param sc SlicingConfig defined in SlicingConfig.aidl
+ * @return The converted SlicingConfig
+ */
+ public static SlicingConfig convertHalSlicingConfig(
+ android.hardware.radio.data.SlicingConfig sc) {
+ List<UrspRule> urspRules = new ArrayList<>();
+ for (android.hardware.radio.data.UrspRule ur : sc.urspRules) {
+ List<TrafficDescriptor> tds = new ArrayList<>();
+ for (android.hardware.radio.data.TrafficDescriptor td : ur.trafficDescriptors) {
+ tds.add(convertHalTrafficDescriptor(td));
+ }
+ List<RouteSelectionDescriptor> rsds = new ArrayList<>();
+ for (android.hardware.radio.data.RouteSelectionDescriptor rsd
+ : ur.routeSelectionDescriptor) {
+ List<NetworkSliceInfo> sliceInfo = new ArrayList<>();
+ for (android.hardware.radio.data.SliceInfo si : rsd.sliceInfo) {
+ sliceInfo.add(convertHalSliceInfo(si));
+ }
+ rsds.add(new RouteSelectionDescriptor(rsd.precedence, rsd.sessionType, rsd.sscMode,
+ sliceInfo, primitiveArrayToArrayList(rsd.dnn)));
+ }
+ urspRules.add(new UrspRule(ur.precedence, tds, rsds));
+ }
+ List<NetworkSliceInfo> sliceInfo = new ArrayList<>();
+ for (android.hardware.radio.data.SliceInfo si : sc.sliceInfo) {
+ sliceInfo.add(convertHalSliceInfo(si));
+ }
+ return new SlicingConfig(urspRules, sliceInfo);
+ }
+
+ private static Qos.QosBandwidth convertHalQosBandwidth(
+ android.hardware.radio.V1_6.QosBandwidth bandwidth) {
+ return new Qos.QosBandwidth(bandwidth.maxBitrateKbps, bandwidth.guaranteedBitrateKbps);
+ }
+
+ private static Qos.QosBandwidth convertHalQosBandwidth(
+ android.hardware.radio.data.QosBandwidth bandwidth) {
+ return new Qos.QosBandwidth(bandwidth.maxBitrateKbps, bandwidth.guaranteedBitrateKbps);
+ }
+
+ private static Qos convertHalQos(android.hardware.radio.V1_6.Qos qos) {
+ switch (qos.getDiscriminator()) {
+ case android.hardware.radio.V1_6.Qos.hidl_discriminator.eps:
+ android.hardware.radio.V1_6.EpsQos eps = qos.eps();
+ return new EpsQos(convertHalQosBandwidth(eps.downlink),
+ convertHalQosBandwidth(eps.uplink), eps.qci);
+ case android.hardware.radio.V1_6.Qos.hidl_discriminator.nr:
+ android.hardware.radio.V1_6.NrQos nr = qos.nr();
+ return new NrQos(convertHalQosBandwidth(nr.downlink),
+ convertHalQosBandwidth(nr.uplink), nr.qfi, nr.fiveQi, nr.averagingWindowMs);
+ default:
+ return null;
+ }
+ }
+
+ private static Qos convertHalQos(android.hardware.radio.data.Qos qos) {
+ switch (qos.getTag()) {
+ case android.hardware.radio.data.Qos.eps:
+ android.hardware.radio.data.EpsQos eps = qos.getEps();
+ return new EpsQos(convertHalQosBandwidth(eps.downlink),
+ convertHalQosBandwidth(eps.uplink), eps.qci);
+ case android.hardware.radio.data.Qos.nr:
+ android.hardware.radio.data.NrQos nr = qos.getNr();
+ return new NrQos(convertHalQosBandwidth(nr.downlink),
+ convertHalQosBandwidth(nr.uplink), nr.qfi, nr.fiveQi,
+ nr.averagingWindowMs);
+ default:
+ return null;
+ }
+ }
+
+ private static QosBearerFilter convertHalQosBearerFilter(
+ android.hardware.radio.V1_6.QosFilter qosFilter) {
+ List<LinkAddress> localAddressList = new ArrayList<>();
+ String[] localAddresses = qosFilter.localAddresses.toArray(new String[0]);
+ if (localAddresses != null) {
+ for (String address : localAddresses) {
+ localAddressList.add(convertToLinkAddress(address));
+ }
+ }
+ List<LinkAddress> remoteAddressList = new ArrayList<>();
+ String[] remoteAddresses = qosFilter.remoteAddresses.toArray(new String[0]);
+ if (remoteAddresses != null) {
+ for (String address : remoteAddresses) {
+ remoteAddressList.add(convertToLinkAddress(address));
+ }
+ }
+ QosBearerFilter.PortRange localPort = null;
+ if (qosFilter.localPort != null) {
+ if (qosFilter.localPort.getDiscriminator()
+ == android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range) {
+ final android.hardware.radio.V1_6.PortRange portRange = qosFilter.localPort.range();
+ localPort = new QosBearerFilter.PortRange(portRange.start, portRange.end);
+ }
+ }
+ QosBearerFilter.PortRange remotePort = null;
+ if (qosFilter.remotePort != null) {
+ if (qosFilter.remotePort.getDiscriminator()
+ == android.hardware.radio.V1_6.MaybePort.hidl_discriminator.range) {
+ final android.hardware.radio.V1_6.PortRange portRange =
+ qosFilter.remotePort.range();
+ remotePort = new QosBearerFilter.PortRange(portRange.start, portRange.end);
+ }
+ }
+ int tos = -1;
+ if (qosFilter.tos != null) {
+ if (qosFilter.tos.getDiscriminator() == android.hardware.radio.V1_6.QosFilter
+ .TypeOfService.hidl_discriminator.value) {
+ tos = qosFilter.tos.value();
+ }
+ }
+ long flowLabel = -1;
+ if (qosFilter.flowLabel != null) {
+ if (qosFilter.flowLabel.getDiscriminator() == android.hardware.radio.V1_6.QosFilter
+ .Ipv6FlowLabel.hidl_discriminator.value) {
+ flowLabel = qosFilter.flowLabel.value();
+ }
+ }
+ long spi = -1;
+ if (qosFilter.spi != null) {
+ if (qosFilter.spi.getDiscriminator()
+ == android.hardware.radio.V1_6.QosFilter.IpsecSpi.hidl_discriminator.value) {
+ spi = qosFilter.spi.value();
+ }
+ }
+ return new QosBearerFilter(localAddressList, remoteAddressList, localPort, remotePort,
+ qosFilter.protocol, tos, flowLabel, spi, qosFilter.direction, qosFilter.precedence);
+ }
+
+ private static QosBearerFilter convertHalQosBearerFilter(
+ android.hardware.radio.data.QosFilter qosFilter) {
+ List<LinkAddress> localAddressList = new ArrayList<>();
+ String[] localAddresses = qosFilter.localAddresses;
+ if (localAddresses != null) {
+ for (String address : localAddresses) {
+ localAddressList.add(convertToLinkAddress(address));
+ }
+ }
+ List<LinkAddress> remoteAddressList = new ArrayList<>();
+ String[] remoteAddresses = qosFilter.remoteAddresses;
+ if (remoteAddresses != null) {
+ for (String address : remoteAddresses) {
+ remoteAddressList.add(convertToLinkAddress(address));
+ }
+ }
+ QosBearerFilter.PortRange localPort = null;
+ if (qosFilter.localPort != null) {
+ localPort = new QosBearerFilter.PortRange(
+ qosFilter.localPort.start, qosFilter.localPort.end);
+ }
+ QosBearerFilter.PortRange remotePort = null;
+ if (qosFilter.remotePort != null) {
+ remotePort = new QosBearerFilter.PortRange(
+ qosFilter.remotePort.start, qosFilter.remotePort.end);
+ }
+ int tos = -1;
+ if (qosFilter.tos != null) {
+ if (qosFilter.tos.getTag()
+ == android.hardware.radio.data.QosFilterTypeOfService.value) {
+ tos = qosFilter.tos.value;
+ }
+ }
+ long flowLabel = -1;
+ if (qosFilter.flowLabel != null) {
+ if (qosFilter.flowLabel.getTag()
+ == android.hardware.radio.data.QosFilterIpv6FlowLabel.value) {
+ flowLabel = qosFilter.flowLabel.value;
+ }
+ }
+ long spi = -1;
+ if (qosFilter.spi != null) {
+ if (qosFilter.spi.getTag()
+ == android.hardware.radio.data.QosFilterIpsecSpi.value) {
+ spi = qosFilter.spi.value;
+ }
+ }
+ return new QosBearerFilter(localAddressList, remoteAddressList, localPort, remotePort,
+ qosFilter.protocol, tos, flowLabel, spi, qosFilter.direction, qosFilter.precedence);
+ }
+
+ private static QosBearerSession convertHalQosBearerSession(
+ android.hardware.radio.V1_6.QosSession qosSession) {
+ List<QosBearerFilter> qosBearerFilters = new ArrayList<>();
+ if (qosSession.qosFilters != null) {
+ for (android.hardware.radio.V1_6.QosFilter filter : qosSession.qosFilters) {
+ qosBearerFilters.add(convertHalQosBearerFilter(filter));
+ }
+ }
+ return new QosBearerSession(qosSession.qosSessionId, convertHalQos(qosSession.qos),
+ qosBearerFilters);
+ }
+
+ private static QosBearerSession convertHalQosBearerSession(
+ android.hardware.radio.data.QosSession qosSession) {
+ List<QosBearerFilter> qosBearerFilters = new ArrayList<>();
+ if (qosSession.qosFilters != null) {
+ for (android.hardware.radio.data.QosFilter filter : qosSession.qosFilters) {
+ qosBearerFilters.add(convertHalQosBearerFilter(filter));
+ }
+ }
+ return new QosBearerSession(qosSession.qosSessionId, convertHalQos(qosSession.qos),
+ qosBearerFilters);
+ }
+
+ /**
+ * Convert a list of SetupDataCallResult defined in radio/1.0, 1.4, 1.5, 1.6/types.hal into
+ * a list of DataCallResponse
+ * @param dataCallResultList List of SetupDataCallResult defined in
+ * radio/1.0, 1.4, 1.5, 1.6/types.hal
+ * @return The converted list of DataCallResponses
+ */
+ @VisibleForTesting
+ public static ArrayList<DataCallResponse> convertHalDataCallResultList(
+ List<? extends Object> dataCallResultList) {
+ ArrayList<DataCallResponse> response = new ArrayList<>(dataCallResultList.size());
+
+ for (Object obj : dataCallResultList) {
+ response.add(convertHalDataCallResult(obj));
+ }
+ return response;
+ }
+
+ /**
+ * Convert a list of SetupDataCallResult defined in SetupDataCallResult.aidl into a list of
+ * DataCallResponse
+ * @param dataCallResultList Array of SetupDataCallResult defined in SetupDataCallResult.aidl
+ * @return The converted list of DataCallResponses
+ */
+ @VisibleForTesting
+ public static ArrayList<DataCallResponse> convertHalDataCallResultList(
+ android.hardware.radio.data.SetupDataCallResult[] dataCallResultList) {
+ ArrayList<DataCallResponse> response = new ArrayList<>(dataCallResultList.length);
+
+ for (android.hardware.radio.data.SetupDataCallResult result : dataCallResultList) {
+ response.add(convertHalDataCallResult(result));
+ }
+ return response;
+ }
+
+ /**
+ * Convert KeepaliveStatusCode defined in radio/1.1/types.hal and KeepaliveStatus.aidl
+ * to KeepaliveStatus
+ * @param halCode KeepaliveStatus code defined in radio/1.1/types.hal or KeepaliveStatus.aidl
+ * @return The converted KeepaliveStatus
+ */
+ public static int convertHalKeepaliveStatusCode(int halCode) {
+ switch (halCode) {
+ case android.hardware.radio.V1_1.KeepaliveStatusCode.ACTIVE:
+ return KeepaliveStatus.STATUS_ACTIVE;
+ case android.hardware.radio.V1_1.KeepaliveStatusCode.INACTIVE:
+ return KeepaliveStatus.STATUS_INACTIVE;
+ case android.hardware.radio.V1_1.KeepaliveStatusCode.PENDING:
+ return KeepaliveStatus.STATUS_PENDING;
+ default:
+ return -1;
+ }
+ }
+
+ /**
+ * Convert RadioState defined in radio/1.0/types.hal to RadioPowerState
+ * @param stateInt Radio state defined in radio/1.0/types.hal
+ * @return The converted {@link Annotation.RadioPowerState RadioPowerState}
+ */
+ public static @Annotation.RadioPowerState int convertHalRadioState(int stateInt) {
+ int state;
+ switch(stateInt) {
+ case android.hardware.radio.V1_0.RadioState.OFF:
+ state = TelephonyManager.RADIO_POWER_OFF;
+ break;
+ case android.hardware.radio.V1_0.RadioState.UNAVAILABLE:
+ state = TelephonyManager.RADIO_POWER_UNAVAILABLE;
+ break;
+ case android.hardware.radio.V1_0.RadioState.ON:
+ state = TelephonyManager.RADIO_POWER_ON;
+ break;
+ default:
+ throw new RuntimeException("Unrecognized RadioState: " + stateInt);
+ }
+ return state;
+ }
+
+ /**
+ * Convert CellConnectionStatus defined in radio/1.2/types.hal to ConnectionStatus
+ * @param status Cell connection status defined in radio/1.2/types.hal
+ * @return The converted ConnectionStatus
+ */
+ public static int convertHalCellConnectionStatus(int status) {
+ switch (status) {
+ case android.hardware.radio.V1_2.CellConnectionStatus.PRIMARY_SERVING:
+ return PhysicalChannelConfig.CONNECTION_PRIMARY_SERVING;
+ case android.hardware.radio.V1_2.CellConnectionStatus.SECONDARY_SERVING:
+ return PhysicalChannelConfig.CONNECTION_SECONDARY_SERVING;
+ default:
+ return PhysicalChannelConfig.CONNECTION_UNKNOWN;
+ }
+ }
+
+ /**
+ * Convert Call defined in radio/1.0, 1.2, 1.6/types.hal to DriverCall
+ * @param halCall Call defined in radio/1.0, 1.2, 1.6/types.hal
+ * @return The converted DriverCall
+ */
+ public static DriverCall convertToDriverCall(Object halCall) {
+ DriverCall dc = new DriverCall();
+ final android.hardware.radio.V1_6.Call call16;
+ final android.hardware.radio.V1_2.Call call12;
+ final android.hardware.radio.V1_0.Call call10;
+ if (halCall instanceof android.hardware.radio.V1_6.Call) {
+ call16 = (android.hardware.radio.V1_6.Call) halCall;
+ call12 = call16.base;
+ call10 = call12.base;
+ } else if (halCall instanceof android.hardware.radio.V1_2.Call) {
+ call16 = null;
+ call12 = (android.hardware.radio.V1_2.Call) halCall;
+ call10 = call12.base;
+ } else if (halCall instanceof android.hardware.radio.V1_0.Call) {
+ call16 = null;
+ call12 = null;
+ call10 = (android.hardware.radio.V1_0.Call) halCall;
+ } else {
+ call16 = null;
+ call12 = null;
+ call10 = null;
+ }
+ if (call10 != null) {
+ dc.state = DriverCall.stateFromCLCC((int) (call10.state));
+ dc.index = call10.index;
+ dc.TOA = call10.toa;
+ dc.isMpty = call10.isMpty;
+ dc.isMT = call10.isMT;
+ dc.als = call10.als;
+ dc.isVoice = call10.isVoice;
+ dc.isVoicePrivacy = call10.isVoicePrivacy;
+ dc.number = call10.number;
+ dc.numberPresentation = DriverCall.presentationFromCLIP(
+ (int) (call10.numberPresentation));
+ dc.name = call10.name;
+ dc.namePresentation = DriverCall.presentationFromCLIP((int) (call10.namePresentation));
+ if (call10.uusInfo.size() == 1) {
+ dc.uusInfo = new UUSInfo();
+ dc.uusInfo.setType(call10.uusInfo.get(0).uusType);
+ dc.uusInfo.setDcs(call10.uusInfo.get(0).uusDcs);
+ if (!TextUtils.isEmpty(call10.uusInfo.get(0).uusData)) {
+ byte[] userData = call10.uusInfo.get(0).uusData.getBytes();
+ dc.uusInfo.setUserData(userData);
+ }
+ }
+ // Make sure there's a leading + on addresses with a TOA of 145
+ dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA);
+ }
+ if (call12 != null) {
+ dc.audioQuality = (int) (call12.audioQuality);
+ }
+ if (call16 != null) {
+ dc.forwardedNumber = call16.forwardedNumber;
+ }
+ return dc;
+ }
+
+ /**
+ * Convert OperatorStatus defined in radio/1.0/types.hal to OperatorInfo.State
+ * @param status Operator status defined in radio/1.0/types.hal
+ * @return The converted OperatorStatus as a String
+ */
+ public static String convertHalOperatorStatus(int status) {
+ if (status == android.hardware.radio.V1_0.OperatorStatus.UNKNOWN) {
+ return "unknown";
+ } else if (status == android.hardware.radio.V1_0.OperatorStatus.AVAILABLE) {
+ return "available";
+ } else if (status == android.hardware.radio.V1_0.OperatorStatus.CURRENT) {
+ return "current";
+ } else if (status == android.hardware.radio.V1_0.OperatorStatus.FORBIDDEN) {
+ return "forbidden";
+ } else {
+ return "";
+ }
+ }
+
+ /**
+ * Convert a list of Carriers defined in radio/1.0/types.hal to a list of CarrierIdentifiers
+ * @param carrierList List of Carriers defined in radio/1.0/types.hal
+ * @return The converted list of CarrierIdentifiers
+ */
+ public static List<CarrierIdentifier> convertHalCarrierList(
+ List<android.hardware.radio.V1_0.Carrier> carrierList) {
+ List<CarrierIdentifier> ret = new ArrayList<>();
+ for (int i = 0; i < carrierList.size(); i++) {
+ String mcc = carrierList.get(i).mcc;
+ String mnc = carrierList.get(i).mnc;
+ String spn = null, imsi = null, gid1 = null, gid2 = null;
+ int matchType = carrierList.get(i).matchType;
+ String matchData = carrierList.get(i).matchData;
+ if (matchType == CarrierIdentifier.MatchType.SPN) {
+ spn = matchData;
+ } else if (matchType == CarrierIdentifier.MatchType.IMSI_PREFIX) {
+ imsi = matchData;
+ } else if (matchType == CarrierIdentifier.MatchType.GID1) {
+ gid1 = matchData;
+ } else if (matchType == CarrierIdentifier.MatchType.GID2) {
+ gid2 = matchData;
+ }
+ ret.add(new CarrierIdentifier(mcc, mnc, spn, imsi, gid1, gid2));
+ }
+ return ret;
+ }
+
+ /**
+ * Convert CardStatus defined in radio/1.0, 1.5/types.hal to IccCardStatus
+ * @param cardStatus CardStatus defined in radio/1.0, 1.5/types.hal
+ * @return The converted IccCardStatus
+ */
+ public static IccCardStatus convertHalCardStatus(Object cardStatus) {
+ final android.hardware.radio.V1_0.CardStatus cardStatus10;
+ final android.hardware.radio.V1_5.CardStatus cardStatus15;
+ if (cardStatus instanceof android.hardware.radio.V1_5.CardStatus) {
+ cardStatus15 = (android.hardware.radio.V1_5.CardStatus) cardStatus;
+ cardStatus10 = cardStatus15.base.base.base;
+ } else if (cardStatus instanceof android.hardware.radio.V1_0.CardStatus) {
+ cardStatus15 = null;
+ cardStatus10 = (android.hardware.radio.V1_0.CardStatus) cardStatus;
+ } else {
+ cardStatus15 = null;
+ cardStatus10 = null;
+ }
+
+ IccCardStatus iccCardStatus = new IccCardStatus();
+ if (cardStatus10 != null) {
+ iccCardStatus.setCardState(cardStatus10.cardState);
+ iccCardStatus.setUniversalPinState(cardStatus10.universalPinState);
+ iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus10.gsmUmtsSubscriptionAppIndex;
+ iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus10.cdmaSubscriptionAppIndex;
+ iccCardStatus.mImsSubscriptionAppIndex = cardStatus10.imsSubscriptionAppIndex;
+ int numApplications = cardStatus10.applications.size();
+
+ // limit to maximum allowed applications
+ if (numApplications > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) {
+ numApplications = com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS;
+ }
+ iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications];
+ for (int i = 0; i < numApplications; i++) {
+ android.hardware.radio.V1_0.AppStatus rilAppStatus =
+ cardStatus10.applications.get(i);
+ IccCardApplicationStatus appStatus = new IccCardApplicationStatus();
+ appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.appType);
+ appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.appState);
+ appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(
+ rilAppStatus.persoSubstate);
+ appStatus.aid = rilAppStatus.aidPtr;
+ appStatus.app_label = rilAppStatus.appLabelPtr;
+ appStatus.pin1_replaced = rilAppStatus.pin1Replaced;
+ appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.pin1);
+ appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.pin2);
+ iccCardStatus.mApplications[i] = appStatus;
+ }
+ }
+ if (cardStatus15 != null) {
+ iccCardStatus.physicalSlotIndex = cardStatus15.base.base.physicalSlotId;
+ iccCardStatus.atr = cardStatus15.base.base.atr;
+ iccCardStatus.iccid = cardStatus15.base.base.iccid;
+ iccCardStatus.eid = cardStatus15.base.eid;
+ int numApplications = cardStatus15.applications.size();
+
+ // limit to maximum allowed applications
+ if (numApplications > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) {
+ numApplications = com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS;
+ }
+ iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications];
+ for (int i = 0; i < numApplications; i++) {
+ android.hardware.radio.V1_5.AppStatus rilAppStatus =
+ cardStatus15.applications.get(i);
+ IccCardApplicationStatus appStatus = new IccCardApplicationStatus();
+ appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.base.appType);
+ appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.base.appState);
+ appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(
+ rilAppStatus.persoSubstate);
+ appStatus.aid = rilAppStatus.base.aidPtr;
+ appStatus.app_label = rilAppStatus.base.appLabelPtr;
+ appStatus.pin1_replaced = rilAppStatus.base.pin1Replaced;
+ appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin1);
+ appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin2);
+ iccCardStatus.mApplications[i] = appStatus;
+ }
+ }
+ return iccCardStatus;
+ }
+
+ /** Append the data to the end of an ArrayList */
+ public static void appendPrimitiveArrayToArrayList(byte[] src, ArrayList<Byte> dst) {
+ for (byte b : src) {
+ dst.add(b);
+ }
+ }
+
+ /** Convert a primitive byte array to an ArrayList<Integer>. */
+ public static ArrayList<Byte> primitiveArrayToArrayList(byte[] arr) {
+ ArrayList<Byte> arrayList = new ArrayList<>(arr.length);
+ for (byte b : arr) {
+ arrayList.add(b);
+ }
+ return arrayList;
+ }
+
+ /** Convert a primitive int array to an ArrayList<Integer>. */
+ public static ArrayList<Integer> primitiveArrayToArrayList(int[] arr) {
+ ArrayList<Integer> arrayList = new ArrayList<>(arr.length);
+ for (int i : arr) {
+ arrayList.add(i);
+ }
+ return arrayList;
+ }
+
+ /** Convert a primitive String array to an ArrayList<String>. */
+ public static ArrayList<String> primitiveArrayToArrayList(String[] arr) {
+ return new ArrayList<>(Arrays.asList(arr));
+ }
+
+ /** Convert an ArrayList of Bytes to an exactly-sized primitive array */
+ public static byte[] arrayListToPrimitiveArray(ArrayList<Byte> bytes) {
+ byte[] ret = new byte[bytes.size()];
+ for (int i = 0; i < ret.length; i++) {
+ ret[i] = bytes.get(i);
+ }
+ return ret;
+ }
+
+ /** Convert null to an empty String */
+ public static String convertNullToEmptyString(String string) {
+ return string != null ? string : "";
+ }
+
+ /**
+ * RIL request to String
+ * @param request request
+ * @return The converted String request
+ */
+ public static String requestToString(int request) {
+ switch(request) {
+ case RIL_REQUEST_GET_SIM_STATUS:
+ return "GET_SIM_STATUS";
+ case RIL_REQUEST_ENTER_SIM_PIN:
+ return "ENTER_SIM_PIN";
+ case RIL_REQUEST_ENTER_SIM_PUK:
+ return "ENTER_SIM_PUK";
+ case RIL_REQUEST_ENTER_SIM_PIN2:
+ return "ENTER_SIM_PIN2";
+ case RIL_REQUEST_ENTER_SIM_PUK2:
+ return "ENTER_SIM_PUK2";
+ case RIL_REQUEST_CHANGE_SIM_PIN:
+ return "CHANGE_SIM_PIN";
+ case RIL_REQUEST_CHANGE_SIM_PIN2:
+ return "CHANGE_SIM_PIN2";
+ case RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION:
+ return "ENTER_NETWORK_DEPERSONALIZATION";
+ case RIL_REQUEST_GET_CURRENT_CALLS:
+ return "GET_CURRENT_CALLS";
+ case RIL_REQUEST_DIAL:
+ return "DIAL";
+ case RIL_REQUEST_GET_IMSI:
+ return "GET_IMSI";
+ case RIL_REQUEST_HANGUP:
+ return "HANGUP";
+ case RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND:
+ return "HANGUP_WAITING_OR_BACKGROUND";
+ case RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND:
+ return "HANGUP_FOREGROUND_RESUME_BACKGROUND";
+ case RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE:
+ return "REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE";
+ case RIL_REQUEST_CONFERENCE:
+ return "CONFERENCE";
+ case RIL_REQUEST_UDUB:
+ return "UDUB";
+ case RIL_REQUEST_LAST_CALL_FAIL_CAUSE:
+ return "LAST_CALL_FAIL_CAUSE";
+ case RIL_REQUEST_SIGNAL_STRENGTH:
+ return "SIGNAL_STRENGTH";
+ case RIL_REQUEST_VOICE_REGISTRATION_STATE:
+ return "VOICE_REGISTRATION_STATE";
+ case RIL_REQUEST_DATA_REGISTRATION_STATE:
+ return "DATA_REGISTRATION_STATE";
+ case RIL_REQUEST_OPERATOR:
+ return "OPERATOR";
+ case RIL_REQUEST_RADIO_POWER:
+ return "RADIO_POWER";
+ case RIL_REQUEST_DTMF:
+ return "DTMF";
+ case RIL_REQUEST_SEND_SMS:
+ return "SEND_SMS";
+ case RIL_REQUEST_SEND_SMS_EXPECT_MORE:
+ return "SEND_SMS_EXPECT_MORE";
+ case RIL_REQUEST_SETUP_DATA_CALL:
+ return "SETUP_DATA_CALL";
+ case RIL_REQUEST_SIM_IO:
+ return "SIM_IO";
+ case RIL_REQUEST_SEND_USSD:
+ return "SEND_USSD";
+ case RIL_REQUEST_CANCEL_USSD:
+ return "CANCEL_USSD";
+ case RIL_REQUEST_GET_CLIR:
+ return "GET_CLIR";
+ case RIL_REQUEST_SET_CLIR:
+ return "SET_CLIR";
+ case RIL_REQUEST_QUERY_CALL_FORWARD_STATUS:
+ return "QUERY_CALL_FORWARD_STATUS";
+ case RIL_REQUEST_SET_CALL_FORWARD:
+ return "SET_CALL_FORWARD";
+ case RIL_REQUEST_QUERY_CALL_WAITING:
+ return "QUERY_CALL_WAITING";
+ case RIL_REQUEST_SET_CALL_WAITING:
+ return "SET_CALL_WAITING";
+ case RIL_REQUEST_SMS_ACKNOWLEDGE:
+ return "SMS_ACKNOWLEDGE";
+ case RIL_REQUEST_GET_IMEI:
+ return "GET_IMEI";
+ case RIL_REQUEST_GET_IMEISV:
+ return "GET_IMEISV";
+ case RIL_REQUEST_ANSWER:
+ return "ANSWER";
+ case RIL_REQUEST_DEACTIVATE_DATA_CALL:
+ return "DEACTIVATE_DATA_CALL";
+ case RIL_REQUEST_QUERY_FACILITY_LOCK:
+ return "QUERY_FACILITY_LOCK";
+ case RIL_REQUEST_SET_FACILITY_LOCK:
+ return "SET_FACILITY_LOCK";
+ case RIL_REQUEST_CHANGE_BARRING_PASSWORD:
+ return "CHANGE_BARRING_PASSWORD";
+ case RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE:
+ return "QUERY_NETWORK_SELECTION_MODE";
+ case RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC:
+ return "SET_NETWORK_SELECTION_AUTOMATIC";
+ case RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL:
+ return "SET_NETWORK_SELECTION_MANUAL";
+ case RIL_REQUEST_QUERY_AVAILABLE_NETWORKS :
+ return "QUERY_AVAILABLE_NETWORKS ";
+ case RIL_REQUEST_DTMF_START:
+ return "DTMF_START";
+ case RIL_REQUEST_DTMF_STOP:
+ return "DTMF_STOP";
+ case RIL_REQUEST_BASEBAND_VERSION:
+ return "BASEBAND_VERSION";
+ case RIL_REQUEST_SEPARATE_CONNECTION:
+ return "SEPARATE_CONNECTION";
+ case RIL_REQUEST_SET_MUTE:
+ return "SET_MUTE";
+ case RIL_REQUEST_GET_MUTE:
+ return "GET_MUTE";
+ case RIL_REQUEST_QUERY_CLIP:
+ return "QUERY_CLIP";
+ case RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE:
+ return "LAST_DATA_CALL_FAIL_CAUSE";
+ case RIL_REQUEST_DATA_CALL_LIST:
+ return "DATA_CALL_LIST";
+ case RIL_REQUEST_RESET_RADIO:
+ return "RESET_RADIO";
+ case RIL_REQUEST_OEM_HOOK_RAW:
+ return "OEM_HOOK_RAW";
+ case RIL_REQUEST_OEM_HOOK_STRINGS:
+ return "OEM_HOOK_STRINGS";
+ case RIL_REQUEST_SCREEN_STATE:
+ return "SCREEN_STATE";
+ case RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION:
+ return "SET_SUPP_SVC_NOTIFICATION";
+ case RIL_REQUEST_WRITE_SMS_TO_SIM:
+ return "WRITE_SMS_TO_SIM";
+ case RIL_REQUEST_DELETE_SMS_ON_SIM:
+ return "DELETE_SMS_ON_SIM";
+ case RIL_REQUEST_SET_BAND_MODE:
+ return "SET_BAND_MODE";
+ case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE:
+ return "QUERY_AVAILABLE_BAND_MODE";
+ case RIL_REQUEST_STK_GET_PROFILE:
+ return "STK_GET_PROFILE";
+ case RIL_REQUEST_STK_SET_PROFILE:
+ return "STK_SET_PROFILE";
+ case RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND:
+ return "STK_SEND_ENVELOPE_COMMAND";
+ case RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE:
+ return "STK_SEND_TERMINAL_RESPONSE";
+ case RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM:
+ return "STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM";
+ case RIL_REQUEST_EXPLICIT_CALL_TRANSFER:
+ return "EXPLICIT_CALL_TRANSFER";
+ case RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE:
+ return "SET_PREFERRED_NETWORK_TYPE";
+ case RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE:
+ return "GET_PREFERRED_NETWORK_TYPE";
+ case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS:
+ return "GET_NEIGHBORING_CELL_IDS";
+ case RIL_REQUEST_SET_LOCATION_UPDATES:
+ return "SET_LOCATION_UPDATES";
+ case RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE:
+ return "CDMA_SET_SUBSCRIPTION_SOURCE";
+ case RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE:
+ return "CDMA_SET_ROAMING_PREFERENCE";
+ case RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE:
+ return "CDMA_QUERY_ROAMING_PREFERENCE";
+ case RIL_REQUEST_SET_TTY_MODE:
+ return "SET_TTY_MODE";
+ case RIL_REQUEST_QUERY_TTY_MODE:
+ return "QUERY_TTY_MODE";
+ case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE:
+ return "CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE";
+ case RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE:
+ return "CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE";
+ case RIL_REQUEST_CDMA_FLASH:
+ return "CDMA_FLASH";
+ case RIL_REQUEST_CDMA_BURST_DTMF:
+ return "CDMA_BURST_DTMF";
+ case RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY:
+ return "CDMA_VALIDATE_AND_WRITE_AKEY";
+ case RIL_REQUEST_CDMA_SEND_SMS:
+ return "CDMA_SEND_SMS";
+ case RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE:
+ return "CDMA_SMS_ACKNOWLEDGE";
+ case RIL_REQUEST_GSM_GET_BROADCAST_CONFIG:
+ return "GSM_GET_BROADCAST_CONFIG";
+ case RIL_REQUEST_GSM_SET_BROADCAST_CONFIG:
+ return "GSM_SET_BROADCAST_CONFIG";
+ case RIL_REQUEST_GSM_BROADCAST_ACTIVATION:
+ return "GSM_BROADCAST_ACTIVATION";
+ case RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG:
+ return "CDMA_GET_BROADCAST_CONFIG";
+ case RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG:
+ return "CDMA_SET_BROADCAST_CONFIG";
+ case RIL_REQUEST_CDMA_BROADCAST_ACTIVATION:
+ return "CDMA_BROADCAST_ACTIVATION";
+ case RIL_REQUEST_CDMA_SUBSCRIPTION:
+ return "CDMA_SUBSCRIPTION";
+ case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM:
+ return "CDMA_WRITE_SMS_TO_RUIM";
+ case RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM:
+ return "CDMA_DELETE_SMS_ON_RUIM";
+ case RIL_REQUEST_DEVICE_IDENTITY:
+ return "DEVICE_IDENTITY";
+ case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE:
+ return "EXIT_EMERGENCY_CALLBACK_MODE";
+ case RIL_REQUEST_GET_SMSC_ADDRESS:
+ return "GET_SMSC_ADDRESS";
+ case RIL_REQUEST_SET_SMSC_ADDRESS:
+ return "SET_SMSC_ADDRESS";
+ case RIL_REQUEST_REPORT_SMS_MEMORY_STATUS:
+ return "REPORT_SMS_MEMORY_STATUS";
+ case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING:
+ return "REPORT_STK_SERVICE_IS_RUNNING";
+ case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE:
+ return "CDMA_GET_SUBSCRIPTION_SOURCE";
+ case RIL_REQUEST_ISIM_AUTHENTICATION:
+ return "ISIM_AUTHENTICATION";
+ case RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU:
+ return "ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU";
+ case RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS:
+ return "STK_SEND_ENVELOPE_WITH_STATUS";
+ case RIL_REQUEST_VOICE_RADIO_TECH:
+ return "VOICE_RADIO_TECH";
+ case RIL_REQUEST_GET_CELL_INFO_LIST:
+ return "GET_CELL_INFO_LIST";
+ case RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE:
+ return "SET_CELL_INFO_LIST_RATE";
+ case RIL_REQUEST_SET_INITIAL_ATTACH_APN:
+ return "SET_INITIAL_ATTACH_APN";
+ case RIL_REQUEST_IMS_REGISTRATION_STATE:
+ return "IMS_REGISTRATION_STATE";
+ case RIL_REQUEST_IMS_SEND_SMS:
+ return "IMS_SEND_SMS";
+ case RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC:
+ return "SIM_TRANSMIT_APDU_BASIC";
+ case RIL_REQUEST_SIM_OPEN_CHANNEL:
+ return "SIM_OPEN_CHANNEL";
+ case RIL_REQUEST_SIM_CLOSE_CHANNEL:
+ return "SIM_CLOSE_CHANNEL";
+ case RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL:
+ return "SIM_TRANSMIT_APDU_CHANNEL";
+ case RIL_REQUEST_NV_READ_ITEM:
+ return "NV_READ_ITEM";
+ case RIL_REQUEST_NV_WRITE_ITEM:
+ return "NV_WRITE_ITEM";
+ case RIL_REQUEST_NV_WRITE_CDMA_PRL:
+ return "NV_WRITE_CDMA_PRL";
+ case RIL_REQUEST_NV_RESET_CONFIG:
+ return "NV_RESET_CONFIG";
+ case RIL_REQUEST_SET_UICC_SUBSCRIPTION:
+ return "SET_UICC_SUBSCRIPTION";
+ case RIL_REQUEST_ALLOW_DATA:
+ return "ALLOW_DATA";
+ case RIL_REQUEST_GET_HARDWARE_CONFIG:
+ return "GET_HARDWARE_CONFIG";
+ case RIL_REQUEST_SIM_AUTHENTICATION:
+ return "SIM_AUTHENTICATION";
+ case RIL_REQUEST_GET_DC_RT_INFO:
+ return "GET_DC_RT_INFO";
+ case RIL_REQUEST_SET_DC_RT_INFO_RATE:
+ return "SET_DC_RT_INFO_RATE";
+ case RIL_REQUEST_SET_DATA_PROFILE:
+ return "SET_DATA_PROFILE";
+ case RIL_REQUEST_SHUTDOWN:
+ return "SHUTDOWN";
+ case RIL_REQUEST_GET_RADIO_CAPABILITY:
+ return "GET_RADIO_CAPABILITY";
+ case RIL_REQUEST_SET_RADIO_CAPABILITY:
+ return "SET_RADIO_CAPABILITY";
+ case RIL_REQUEST_START_LCE:
+ return "START_LCE";
+ case RIL_REQUEST_STOP_LCE:
+ return "STOP_LCE";
+ case RIL_REQUEST_PULL_LCEDATA:
+ return "PULL_LCEDATA";
+ case RIL_REQUEST_GET_ACTIVITY_INFO:
+ return "GET_ACTIVITY_INFO";
+ case RIL_REQUEST_SET_ALLOWED_CARRIERS:
+ return "SET_ALLOWED_CARRIERS";
+ case RIL_REQUEST_GET_ALLOWED_CARRIERS:
+ return "GET_ALLOWED_CARRIERS";
+ case RIL_REQUEST_SEND_DEVICE_STATE:
+ return "SEND_DEVICE_STATE";
+ case RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER:
+ return "SET_UNSOLICITED_RESPONSE_FILTER";
+ case RIL_REQUEST_SET_SIM_CARD_POWER:
+ return "SET_SIM_CARD_POWER";
+ case RIL_REQUEST_SET_CARRIER_INFO_IMSI_ENCRYPTION:
+ return "SET_CARRIER_INFO_IMSI_ENCRYPTION";
+ case RIL_REQUEST_START_NETWORK_SCAN:
+ return "START_NETWORK_SCAN";
+ case RIL_REQUEST_STOP_NETWORK_SCAN:
+ return "STOP_NETWORK_SCAN";
+ case RIL_REQUEST_START_KEEPALIVE:
+ return "START_KEEPALIVE";
+ case RIL_REQUEST_STOP_KEEPALIVE:
+ return "STOP_KEEPALIVE";
+ case RIL_REQUEST_ENABLE_MODEM:
+ return "ENABLE_MODEM";
+ case RIL_REQUEST_GET_MODEM_STATUS:
+ return "GET_MODEM_STATUS";
+ case RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE:
+ return "CDMA_SEND_SMS_EXPECT_MORE";
+ case RIL_REQUEST_GET_SIM_PHONEBOOK_CAPACITY:
+ return "GET_SIM_PHONEBOOK_CAPACITY";
+ case RIL_REQUEST_GET_SIM_PHONEBOOK_RECORDS:
+ return "GET_SIM_PHONEBOOK_RECORDS";
+ case RIL_REQUEST_UPDATE_SIM_PHONEBOOK_RECORD:
+ return "UPDATE_SIM_PHONEBOOK_RECORD";
+ case RIL_REQUEST_GET_SLOT_STATUS:
+ return "GET_SLOT_STATUS";
+ case RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING:
+ return "SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING";
+ case RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA:
+ return "SET_SIGNAL_STRENGTH_REPORTING_CRITERIA";
+ case RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA:
+ return "SET_LINK_CAPACITY_REPORTING_CRITERIA";
+ case RIL_REQUEST_SET_PREFERRED_DATA_MODEM:
+ return "SET_PREFERRED_DATA_MODEM";
+ case RIL_REQUEST_EMERGENCY_DIAL:
+ return "EMERGENCY_DIAL";
+ case RIL_REQUEST_GET_PHONE_CAPABILITY:
+ return "GET_PHONE_CAPABILITY";
+ case RIL_REQUEST_SWITCH_DUAL_SIM_CONFIG:
+ return "SWITCH_DUAL_SIM_CONFIG";
+ case RIL_REQUEST_ENABLE_UICC_APPLICATIONS:
+ return "ENABLE_UICC_APPLICATIONS";
+ case RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT:
+ return "GET_UICC_APPLICATIONS_ENABLEMENT";
+ case RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS:
+ return "SET_SYSTEM_SELECTION_CHANNELS";
+ case RIL_REQUEST_GET_BARRING_INFO:
+ return "GET_BARRING_INFO";
+ case RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION:
+ return "ENTER_SIM_DEPERSONALIZATION";
+ case RIL_REQUEST_ENABLE_NR_DUAL_CONNECTIVITY:
+ return "ENABLE_NR_DUAL_CONNECTIVITY";
+ case RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED:
+ return "IS_NR_DUAL_CONNECTIVITY_ENABLED";
+ case RIL_REQUEST_ALLOCATE_PDU_SESSION_ID:
+ return "ALLOCATE_PDU_SESSION_ID";
+ case RIL_REQUEST_RELEASE_PDU_SESSION_ID:
+ return "RELEASE_PDU_SESSION_ID";
+ case RIL_REQUEST_START_HANDOVER:
+ return "START_HANDOVER";
+ case RIL_REQUEST_CANCEL_HANDOVER:
+ return "CANCEL_HANDOVER";
+ case RIL_REQUEST_GET_SYSTEM_SELECTION_CHANNELS:
+ return "GET_SYSTEM_SELECTION_CHANNELS";
+ case RIL_REQUEST_GET_HAL_DEVICE_CAPABILITIES:
+ return "GET_HAL_DEVICE_CAPABILITIES";
+ case RIL_REQUEST_SET_DATA_THROTTLING:
+ return "SET_DATA_THROTTLING";
+ case RIL_REQUEST_SET_ALLOWED_NETWORK_TYPES_BITMAP:
+ return "SET_ALLOWED_NETWORK_TYPES_BITMAP";
+ case RIL_REQUEST_GET_ALLOWED_NETWORK_TYPES_BITMAP:
+ return "GET_ALLOWED_NETWORK_TYPES_BITMAP";
+ case RIL_REQUEST_GET_SLICING_CONFIG:
+ return "GET_SLICING_CONFIG";
+ default: return "<unknown request>";
+ }
+ }
+
+ /**
+ * RIL response to String
+ * @param response response
+ * @return The converted String response
+ */
+ public static String responseToString(int response) {
+ switch(response) {
+ case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED:
+ return "UNSOL_RESPONSE_RADIO_STATE_CHANGED";
+ case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED:
+ return "UNSOL_RESPONSE_CALL_STATE_CHANGED";
+ case RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED:
+ return "UNSOL_RESPONSE_NETWORK_STATE_CHANGED";
+ case RIL_UNSOL_RESPONSE_NEW_SMS:
+ return "UNSOL_RESPONSE_NEW_SMS";
+ case RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT:
+ return "UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT";
+ case RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM:
+ return "UNSOL_RESPONSE_NEW_SMS_ON_SIM";
+ case RIL_UNSOL_ON_USSD:
+ return "UNSOL_ON_USSD";
+ case RIL_UNSOL_ON_USSD_REQUEST:
+ return "UNSOL_ON_USSD_REQUEST";
+ case RIL_UNSOL_NITZ_TIME_RECEIVED:
+ return "UNSOL_NITZ_TIME_RECEIVED";
+ case RIL_UNSOL_SIGNAL_STRENGTH:
+ return "UNSOL_SIGNAL_STRENGTH";
+ case RIL_UNSOL_DATA_CALL_LIST_CHANGED:
+ return "UNSOL_DATA_CALL_LIST_CHANGED";
+ case RIL_UNSOL_SUPP_SVC_NOTIFICATION:
+ return "UNSOL_SUPP_SVC_NOTIFICATION";
+ case RIL_UNSOL_STK_SESSION_END:
+ return "UNSOL_STK_SESSION_END";
+ case RIL_UNSOL_STK_PROACTIVE_COMMAND:
+ return "UNSOL_STK_PROACTIVE_COMMAND";
+ case RIL_UNSOL_STK_EVENT_NOTIFY:
+ return "UNSOL_STK_EVENT_NOTIFY";
+ case RIL_UNSOL_STK_CALL_SETUP:
+ return "UNSOL_STK_CALL_SETUP";
+ case RIL_UNSOL_SIM_SMS_STORAGE_FULL:
+ return "UNSOL_SIM_SMS_STORAGE_FULL";
+ case RIL_UNSOL_SIM_REFRESH:
+ return "UNSOL_SIM_REFRESH";
+ case RIL_UNSOL_CALL_RING:
+ return "UNSOL_CALL_RING";
+ case RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED:
+ return "UNSOL_RESPONSE_SIM_STATUS_CHANGED";
+ case RIL_UNSOL_RESPONSE_CDMA_NEW_SMS:
+ return "UNSOL_RESPONSE_CDMA_NEW_SMS";
+ case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS:
+ return "UNSOL_RESPONSE_NEW_BROADCAST_SMS";
+ case RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL:
+ return "UNSOL_CDMA_RUIM_SMS_STORAGE_FULL";
+ case RIL_UNSOL_RESTRICTED_STATE_CHANGED:
+ return "UNSOL_RESTRICTED_STATE_CHANGED";
+ case RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE:
+ return "UNSOL_ENTER_EMERGENCY_CALLBACK_MODE";
+ case RIL_UNSOL_CDMA_CALL_WAITING:
+ return "UNSOL_CDMA_CALL_WAITING";
+ case RIL_UNSOL_CDMA_OTA_PROVISION_STATUS:
+ return "UNSOL_CDMA_OTA_PROVISION_STATUS";
+ case RIL_UNSOL_CDMA_INFO_REC:
+ return "UNSOL_CDMA_INFO_REC";
+ case RIL_UNSOL_OEM_HOOK_RAW:
+ return "UNSOL_OEM_HOOK_RAW";
+ case RIL_UNSOL_RINGBACK_TONE:
+ return "UNSOL_RINGBACK_TONE";
+ case RIL_UNSOL_RESEND_INCALL_MUTE:
+ return "UNSOL_RESEND_INCALL_MUTE";
+ case RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED:
+ return "UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED";
+ case RIL_UNSOL_CDMA_PRL_CHANGED:
+ return "UNSOL_CDMA_PRL_CHANGED";
+ case RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE:
+ return "UNSOL_EXIT_EMERGENCY_CALLBACK_MODE";
+ case RIL_UNSOL_RIL_CONNECTED:
+ return "UNSOL_RIL_CONNECTED";
+ case RIL_UNSOL_VOICE_RADIO_TECH_CHANGED:
+ return "UNSOL_VOICE_RADIO_TECH_CHANGED";
+ case RIL_UNSOL_CELL_INFO_LIST:
+ return "UNSOL_CELL_INFO_LIST";
+ case RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED:
+ return "UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED";
+ case RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED:
+ return "UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED";
+ case RIL_UNSOL_SRVCC_STATE_NOTIFY:
+ return "UNSOL_SRVCC_STATE_NOTIFY";
+ case RIL_UNSOL_HARDWARE_CONFIG_CHANGED:
+ return "UNSOL_HARDWARE_CONFIG_CHANGED";
+ case RIL_UNSOL_DC_RT_INFO_CHANGED:
+ return "UNSOL_DC_RT_INFO_CHANGED";
+ case RIL_UNSOL_RADIO_CAPABILITY:
+ return "UNSOL_RADIO_CAPABILITY";
+ case RIL_UNSOL_ON_SS:
+ return "UNSOL_ON_SS";
+ case RIL_UNSOL_STK_CC_ALPHA_NOTIFY:
+ return "UNSOL_STK_CC_ALPHA_NOTIFY";
+ case RIL_UNSOL_LCEDATA_RECV:
+ return "UNSOL_LCE_INFO_RECV";
+ case RIL_UNSOL_PCO_DATA:
+ return "UNSOL_PCO_DATA";
+ case RIL_UNSOL_MODEM_RESTART:
+ return "UNSOL_MODEM_RESTART";
+ case RIL_UNSOL_CARRIER_INFO_IMSI_ENCRYPTION:
+ return "UNSOL_CARRIER_INFO_IMSI_ENCRYPTION";
+ case RIL_UNSOL_NETWORK_SCAN_RESULT:
+ return "UNSOL_NETWORK_SCAN_RESULT";
+ case RIL_UNSOL_KEEPALIVE_STATUS:
+ return "UNSOL_KEEPALIVE_STATUS";
+ case RIL_UNSOL_UNTHROTTLE_APN:
+ return "UNSOL_UNTHROTTLE_APN";
+ case RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED:
+ return "UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED";
+ case RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED:
+ return "UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED";
+ case RIL_UNSOL_ICC_SLOT_STATUS:
+ return "UNSOL_ICC_SLOT_STATUS";
+ case RIL_UNSOL_PHYSICAL_CHANNEL_CONFIG:
+ return "UNSOL_PHYSICAL_CHANNEL_CONFIG";
+ case RIL_UNSOL_EMERGENCY_NUMBER_LIST:
+ return "UNSOL_EMERGENCY_NUMBER_LIST";
+ case RIL_UNSOL_UICC_APPLICATIONS_ENABLEMENT_CHANGED:
+ return "UNSOL_UICC_APPLICATIONS_ENABLEMENT_CHANGED";
+ case RIL_UNSOL_REGISTRATION_FAILED:
+ return "UNSOL_REGISTRATION_FAILED";
+ case RIL_UNSOL_BARRING_INFO_CHANGED:
+ return "UNSOL_BARRING_INFO_CHANGED";
+ default:
+ return "<unknown response>";
+ }
+ }
+}
diff --git a/src/java/com/android/internal/telephony/RadioIndication.java b/src/java/com/android/internal/telephony/RadioIndication.java
index 0a3bdd4..c2f569c 100644
--- a/src/java/com/android/internal/telephony/RadioIndication.java
+++ b/src/java/com/android/internal/telephony/RadioIndication.java
@@ -21,6 +21,7 @@
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_CALL_WAITING;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_INFO_REC;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_OTA_PROVISION_STATUS;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_PRL_CHANGED;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_CELL_INFO_LIST;
@@ -49,6 +50,8 @@
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED;
+import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESTRICTED_STATE_CHANGED;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RIL_CONNECTED;
@@ -67,9 +70,6 @@
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_UNTHROTTLE_APN;
import static com.android.internal.telephony.RILConstants.RIL_UNSOL_VOICE_RADIO_TECH_CHANGED;
-import static com.android.internal.telephony.RILConstants.RIL_UNSOl_CDMA_PRL_CHANGED;
-import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_RECORDS_RECEIVED;
-import static com.android.internal.telephony.RILConstants.RIL_UNSOL_RESPONSE_SIM_PHONEBOOK_CHANGED;
import android.hardware.radio.V1_0.CdmaCallWaiting;
import android.hardware.radio.V1_0.CdmaInformationRecord;
@@ -86,14 +86,12 @@
import android.hardware.radio.V1_0.SsInfoData;
import android.hardware.radio.V1_0.StkCcUnsolSsResult;
import android.hardware.radio.V1_0.SuppSvcNotification;
-import android.hardware.radio.V1_2.CellConnectionStatus;
import android.hardware.radio.V1_6.IRadioIndication;
-import android.hardware.radio.V1_6.PhysicalChannelConfig.Band;
import android.hardware.radio.V1_6.PhonebookRecordInfo;
+import android.hardware.radio.V1_6.PhysicalChannelConfig.Band;
import android.os.AsyncResult;
import android.os.RemoteException;
import android.sysprop.TelephonyProperties;
-import android.telephony.Annotation.RadioPowerState;
import android.telephony.AnomalyReporter;
import android.telephony.BarringInfo;
import android.telephony.CellIdentity;
@@ -105,7 +103,6 @@
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SmsMessage;
-import android.telephony.TelephonyManager;
import android.telephony.data.DataCallResponse;
import android.telephony.emergency.EmergencyNumber;
import android.text.TextUtils;
@@ -116,9 +113,9 @@
import com.android.internal.telephony.dataconnection.KeepaliveStatus;
import com.android.internal.telephony.gsm.SsData;
import com.android.internal.telephony.gsm.SuppServiceNotification;
-import com.android.internal.telephony.uicc.ReceivedPhonebookRecords;
import com.android.internal.telephony.uicc.IccRefreshResponse;
import com.android.internal.telephony.uicc.IccUtils;
+import com.android.internal.telephony.uicc.ReceivedPhonebookRecords;
import com.android.internal.telephony.uicc.SimPhonebookRecord;
import java.util.ArrayList;
@@ -140,7 +137,7 @@
public void radioStateChanged(int indicationType, int radioState) {
mRil.processIndication(indicationType);
- int state = getRadioStateFromInt(radioState);
+ int state = RILUtils.convertHalRadioState(radioState);
if (RIL.RILJ_LOGD) {
mRil.unsljLogMore(RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED, "radioStateChanged: " +
state);
@@ -172,7 +169,7 @@
public void newSms(int indicationType, ArrayList<Byte> pdu) {
mRil.processIndication(indicationType);
- byte[] pduArray = RIL.arrayListToPrimitiveArray(pdu);
+ byte[] pduArray = RILUtils.arrayListToPrimitiveArray(pdu);
if (RIL.RILJ_LOGD) mRil.unsljLog(RIL_UNSOL_RESPONSE_NEW_SMS);
SmsMessageBase smsb = com.android.internal.telephony.gsm.SmsMessage.createFromPdu(pduArray);
@@ -185,7 +182,7 @@
public void newSmsStatusReport(int indicationType, ArrayList<Byte> pdu) {
mRil.processIndication(indicationType);
- byte[] pduArray = RIL.arrayListToPrimitiveArray(pdu);
+ byte[] pduArray = RILUtils.arrayListToPrimitiveArray(pdu);
if (RIL.RILJ_LOGD) mRil.unsljLog(RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT);
if (mRil.mSmsStatusRegistrant != null) {
@@ -263,7 +260,7 @@
android.hardware.radio.V1_2.LinkCapacityEstimate lce) {
mRil.processIndication(indicationType);
- List<LinkCapacityEstimate> response = RIL.convertHalLceData(lce, mRil);
+ List<LinkCapacityEstimate> response = RILUtils.convertHalLceData(lce);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_LCEDATA_RECV, response);
@@ -279,7 +276,7 @@
android.hardware.radio.V1_6.LinkCapacityEstimate lce) {
mRil.processIndication(indicationType);
- List<LinkCapacityEstimate> response = RIL.convertHalLceData(lce, mRil);
+ List<LinkCapacityEstimate> response = RILUtils.convertHalLceData(lce);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_LCEDATA_RECV, response);
@@ -549,7 +546,7 @@
public void newBroadcastSms(int indicationType, ArrayList<Byte> data) {
mRil.processIndication(indicationType);
- byte response[] = RIL.arrayListToPrimitiveArray(data);
+ byte[] response = RILUtils.arrayListToPrimitiveArray(data);
if (RIL.RILJ_LOGD) {
mRil.unsljLogvRet(RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS,
IccUtils.bytesToHexString(response));
@@ -754,7 +751,7 @@
int response[] = new int[1];
response[0] = version;
- if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOl_CDMA_PRL_CHANGED, response);
+ if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CDMA_PRL_CHANGED, response);
mRil.mCdmaPrlChangedRegistrants.notifyRegistrants(
new AsyncResult (null, response, null));
@@ -795,61 +792,42 @@
/** Get unsolicited message for cellInfoList */
public void cellInfoList(int indicationType,
- ArrayList<android.hardware.radio.V1_0.CellInfo> records) {
+ ArrayList<android.hardware.radio.V1_0.CellInfo> records) {
mRil.processIndication(indicationType);
-
- ArrayList<CellInfo> response = RIL.convertHalCellInfoList(records);
-
- if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response);
-
- mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null));
+ responseCellInfoList(records);
}
/** Get unsolicited message for cellInfoList using HAL V1_2 */
public void cellInfoList_1_2(int indicationType,
- ArrayList<android.hardware.radio.V1_2.CellInfo> records) {
+ ArrayList<android.hardware.radio.V1_2.CellInfo> records) {
mRil.processIndication(indicationType);
-
- ArrayList<CellInfo> response = RIL.convertHalCellInfoList_1_2(records);
-
- if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response);
-
- mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null));
+ responseCellInfoList(records);
}
/** Get unsolicited message for cellInfoList using HAL V1_4 */
public void cellInfoList_1_4(int indicationType,
- ArrayList<android.hardware.radio.V1_4.CellInfo> records) {
+ ArrayList<android.hardware.radio.V1_4.CellInfo> records) {
mRil.processIndication(indicationType);
-
- ArrayList<CellInfo> response = RIL.convertHalCellInfoList_1_4(records);
-
- if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response);
-
- mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null));
+ responseCellInfoList(records);
}
/** Get unsolicited message for cellInfoList using HAL V1_5 */
public void cellInfoList_1_5(int indicationType,
ArrayList<android.hardware.radio.V1_5.CellInfo> records) {
mRil.processIndication(indicationType);
-
- ArrayList<CellInfo> response = RIL.convertHalCellInfoList_1_5(records);
-
- if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response);
-
- mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null));
+ responseCellInfoList(records);
}
/** Get unsolicited message for cellInfoList using HAL V1_5 */
public void cellInfoList_1_6(int indicationType,
ArrayList<android.hardware.radio.V1_6.CellInfo> records) {
mRil.processIndication(indicationType);
+ responseCellInfoList(records);
+ }
- ArrayList<CellInfo> response = RIL.convertHalCellInfoList_1_6(records);
-
+ private void responseCellInfoList(ArrayList<? extends Object> records) {
+ ArrayList<CellInfo> response = RILUtils.convertHalCellInfoList((ArrayList<Object>) records);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_CELL_INFO_LIST, response);
-
mRil.mRilCellInfoListRegistrants.notifyRegistrants(new AsyncResult(null, response, null));
}
@@ -933,7 +911,7 @@
ArrayList<android.hardware.radio.V1_0.HardwareConfig> configs) {
mRil.processIndication(indicationType);
- ArrayList<HardwareConfig> response = RIL.convertHalHwConfigList(configs, mRil);
+ ArrayList<HardwareConfig> response = RILUtils.convertHalHardwareConfigList(configs);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_HARDWARE_CONFIG_CHANGED, response);
@@ -945,7 +923,7 @@
android.hardware.radio.V1_0.RadioCapability rc) {
mRil.processIndication(indicationType);
- RadioCapability response = RIL.convertHalRadioCapability(rc, mRil);
+ RadioCapability response = RILUtils.convertHalRadioCapability(rc, mRil);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_RADIO_CAPABILITY, response);
@@ -1014,7 +992,7 @@
public void lceData(int indicationType, LceDataInfo lce) {
mRil.processIndication(indicationType);
- List<LinkCapacityEstimate> response = RIL.convertHalLceData(lce, mRil);
+ List<LinkCapacityEstimate> response = RILUtils.convertHalLceData(lce);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_LCEDATA_RECV, response);
@@ -1029,7 +1007,7 @@
PcoData response = new PcoData(pco.cid,
pco.bearerProto,
pco.pcoId,
- RIL.arrayListToPrimitiveArray(pco.contents));
+ RILUtils.arrayListToPrimitiveArray(pco.contents));
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_PCO_DATA, response);
@@ -1184,30 +1162,6 @@
}
/**
- * @param stateInt
- * @return {@link RadioPowerState RadioPowerState}
- */
- private @RadioPowerState int getRadioStateFromInt(int stateInt) {
- int state;
-
- switch(stateInt) {
- case android.hardware.radio.V1_0.RadioState.OFF:
- state = TelephonyManager.RADIO_POWER_OFF;
- break;
- case android.hardware.radio.V1_0.RadioState.UNAVAILABLE:
- state = TelephonyManager.RADIO_POWER_UNAVAILABLE;
- break;
- case android.hardware.radio.V1_0.RadioState.ON:
- state = TelephonyManager.RADIO_POWER_ON;
- break;
- default:
- throw new RuntimeException("Unrecognized RadioState: " + stateInt);
- }
- return state;
- }
-
-
- /**
* Set the frequency range or channel number from the physical channel config. Only one of them
* is valid, we should set the other to the unknown value.
* @param builder the builder of {@link PhysicalChannelConfig}.
@@ -1228,20 +1182,6 @@
}
}
- private int convertConnectionStatusFromCellConnectionStatus(int status) {
- switch (status) {
- case CellConnectionStatus.PRIMARY_SERVING:
- return PhysicalChannelConfig.CONNECTION_PRIMARY_SERVING;
- case CellConnectionStatus.SECONDARY_SERVING:
- return PhysicalChannelConfig.CONNECTION_SECONDARY_SERVING;
- default:
- // only PRIMARY_SERVING and SECONDARY_SERVING are supported.
- mRil.riljLoge("Unsupported CellConnectionStatus in PhysicalChannelConfig: "
- + status);
- return PhysicalChannelConfig.CONNECTION_UNKNOWN;
- }
- }
-
/**
* Set the band from the physical channel config.
*
@@ -1280,8 +1220,8 @@
(android.hardware.radio.V1_2.PhysicalChannelConfig) obj;
response.add(new PhysicalChannelConfig.Builder()
- .setCellConnectionStatus(
- convertConnectionStatusFromCellConnectionStatus(config.status))
+ .setCellConnectionStatus(RILUtils.convertHalCellConnectionStatus(
+ config.status))
.setCellBandwidthDownlinkKhz(config.cellBandwidthDownlink)
.build());
} else if (obj instanceof android.hardware.radio.V1_4.PhysicalChannelConfig) {
@@ -1290,7 +1230,7 @@
PhysicalChannelConfig.Builder builder = new PhysicalChannelConfig.Builder();
setFrequencyRangeOrChannelNumber(builder, config);
response.add(builder.setCellConnectionStatus(
- convertConnectionStatusFromCellConnectionStatus(config.base.status))
+ RILUtils.convertHalCellConnectionStatus(config.base.status))
.setCellBandwidthDownlinkKhz(config.base.cellBandwidthDownlink)
.setNetworkType(
ServiceState.rilRadioTechnologyToNetworkType(config.rat))
@@ -1303,7 +1243,7 @@
PhysicalChannelConfig.Builder builder = new PhysicalChannelConfig.Builder();
setBandToBuilder(builder, config);
response.add(builder.setCellConnectionStatus(
- convertConnectionStatusFromCellConnectionStatus(config.status))
+ RILUtils.convertHalCellConnectionStatus(config.status))
.setDownlinkChannelNumber(config.downlinkChannelNumber)
.setUplinkChannelNumber(config.uplinkChannelNumber)
.setCellBandwidthDownlinkKhz(config.cellBandwidthDownlinkKhz)
@@ -1332,32 +1272,33 @@
}
private void responseNetworkScan(int indicationType,
- android.hardware.radio.V1_1.NetworkScanResult result) {
+ android.hardware.radio.V1_1.NetworkScanResult result) {
mRil.processIndication(indicationType);
- NetworkScanResult nsr = null;
- ArrayList<CellInfo> infos = RIL.convertHalCellInfoList(result.networkInfos);
- nsr = new NetworkScanResult(result.status, result.error, infos);
+ ArrayList<CellInfo> cellInfos =
+ RILUtils.convertHalCellInfoList(new ArrayList<>(result.networkInfos));
+ NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr);
mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null));
}
private void responseNetworkScan_1_2(int indicationType,
- android.hardware.radio.V1_2.NetworkScanResult result) {
+ android.hardware.radio.V1_2.NetworkScanResult result) {
mRil.processIndication(indicationType);
- NetworkScanResult nsr = null;
- ArrayList<CellInfo> infos = RIL.convertHalCellInfoList_1_2(result.networkInfos);
- nsr = new NetworkScanResult(result.status, result.error, infos);
+ ArrayList<CellInfo> cellInfos =
+ RILUtils.convertHalCellInfoList(new ArrayList<>(result.networkInfos));
+ NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr);
mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null));
}
private void responseNetworkScan_1_4(int indicationType,
- android.hardware.radio.V1_4.NetworkScanResult result) {
+ android.hardware.radio.V1_4.NetworkScanResult result) {
mRil.processIndication(indicationType);
- ArrayList<CellInfo> cellInfos = RIL.convertHalCellInfoList_1_4(result.networkInfos);
+ ArrayList<CellInfo> cellInfos =
+ RILUtils.convertHalCellInfoList(new ArrayList<>(result.networkInfos));
NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr);
mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null));
@@ -1367,7 +1308,8 @@
android.hardware.radio.V1_5.NetworkScanResult result) {
mRil.processIndication(indicationType);
- ArrayList<CellInfo> cellInfos = RIL.convertHalCellInfoList_1_5(result.networkInfos);
+ ArrayList<CellInfo> cellInfos =
+ RILUtils.convertHalCellInfoList(new ArrayList<>(result.networkInfos));
NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr);
mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null));
@@ -1377,7 +1319,8 @@
android.hardware.radio.V1_6.NetworkScanResult result) {
mRil.processIndication(indicationType);
- ArrayList<CellInfo> cellInfos = RIL.convertHalCellInfoList_1_6(result.networkInfos);
+ ArrayList<CellInfo> cellInfos =
+ RILUtils.convertHalCellInfoList(new ArrayList<>(result.networkInfos));
NetworkScanResult nsr = new NetworkScanResult(result.status, result.error, cellInfos);
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_NETWORK_SCAN_RESULT, nsr);
mRil.mRilNetworkScanResultRegistrants.notifyRegistrants(new AsyncResult(null, nsr, null));
@@ -1388,7 +1331,7 @@
if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList);
- ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList);
+ ArrayList<DataCallResponse> response = RILUtils.convertHalDataCallResultList(dcList);
mRil.mDataCallListChangedRegistrants.notifyRegistrants(
new AsyncResult(null, response, null));
}
diff --git a/src/java/com/android/internal/telephony/RadioResponse.java b/src/java/com/android/internal/telephony/RadioResponse.java
index c81dd3a..89005fe 100644
--- a/src/java/com/android/internal/telephony/RadioResponse.java
+++ b/src/java/com/android/internal/telephony/RadioResponse.java
@@ -18,9 +18,7 @@
import android.content.Context;
import android.hardware.radio.V1_0.ActivityStatsInfo;
-import android.hardware.radio.V1_0.AppStatus;
import android.hardware.radio.V1_0.CardStatus;
-import android.hardware.radio.V1_0.Carrier;
import android.hardware.radio.V1_0.CarrierRestrictions;
import android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo;
import android.hardware.radio.V1_0.DataRegStateResult;
@@ -41,8 +39,6 @@
import android.os.AsyncResult;
import android.os.Message;
import android.os.SystemClock;
-import android.service.carrier.CarrierIdentifier;
-import android.telephony.AccessNetworkConstants;
import android.telephony.AnomalyReporter;
import android.telephony.BarringInfo;
import android.telephony.CarrierRestrictionRules;
@@ -51,7 +47,6 @@
import android.telephony.ModemActivityInfo;
import android.telephony.NeighboringCellInfo;
import android.telephony.NetworkScanRequest;
-import android.telephony.PhoneNumberUtils;
import android.telephony.RadioAccessFamily;
import android.telephony.RadioAccessSpecifier;
import android.telephony.SignalStrength;
@@ -64,10 +59,8 @@
import com.android.internal.telephony.dataconnection.KeepaliveStatus;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
import com.android.internal.telephony.uicc.AdnCapacity;
-import com.android.internal.telephony.uicc.IccCardApplicationStatus;
import com.android.internal.telephony.uicc.IccCardStatus;
import com.android.internal.telephony.uicc.IccIoResult;
-import com.android.internal.telephony.uicc.IccUtils;
import java.util.ArrayList;
import java.util.Collections;
@@ -540,9 +533,7 @@
* @param numeric is 5 or 6 digit numeric code (MCC + MNC) or empty string if unregistered
*/
public void getOperatorResponse(RadioResponseInfo responseInfo,
- String longName,
- String shortName,
- String numeric) {
+ String longName, String shortName, String numeric) {
responseStrings(responseInfo, longName, shortName, numeric);
}
@@ -595,8 +586,7 @@
* @param sms Response to sms sent as defined by SendSmsResult in 1.6/types.hal
*/
public void sendSmsExpectMoreResponse_1_6(
- android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
- SendSmsResult sms) {
+ android.hardware.radio.V1_6.RadioResponseInfo responseInfo, SendSmsResult sms) {
responseSms_1_6(responseInfo, sms);
}
@@ -661,9 +651,8 @@
@Override
public void getAllowedNetworkTypesBitmapResponse(
- android.hardware.radio.V1_6.RadioResponseInfo info,
- int halRadioAccessFamilyBitmap) {
- int networkTypeBitmask = RIL.convertToNetworkTypeBitMask(halRadioAccessFamilyBitmap);
+ android.hardware.radio.V1_6.RadioResponseInfo info, int halRadioAccessFamilyBitmap) {
+ int networkTypeBitmask = RILUtils.convertHalNetworkTypeBitMask(halRadioAccessFamilyBitmap);
mRil.mAllowedNetworkTypesBitmask = networkTypeBitmask;
responseInts_1_6(info, networkTypeBitmask);
}
@@ -713,8 +702,7 @@
* each distinct registered phone number.
*/
public void getCallForwardStatusResponse(RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_0.CallForwardInfo>
- callForwardInfos) {
+ ArrayList<android.hardware.radio.V1_0.CallForwardInfo> callForwardInfos) {
responseCallForwardInfo(responseInfo, callForwardInfos);
}
@@ -736,8 +724,7 @@
* and voice and disabled for everything else.
*/
public void getCallWaitingResponse(RadioResponseInfo responseInfo,
- boolean enable,
- int serviceClass) {
+ boolean enable, int serviceClass) {
responseInts(responseInfo, enable ? 1 : 0, serviceClass);
}
@@ -833,8 +820,7 @@
* types.hal
*/
public void getAvailableNetworksResponse(RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_0.OperatorInfo>
- networkInfos) {
+ ArrayList<android.hardware.radio.V1_0.OperatorInfo> networkInfos) {
responseOperatorInfos(responseInfo, networkInfos);
}
@@ -1065,7 +1051,7 @@
public void getPreferredNetworkTypeBitmapResponse(
RadioResponseInfo responseInfo, int halRadioAccessFamilyBitmap) {
- int networkTypeBitmask = RIL.convertToNetworkTypeBitMask(halRadioAccessFamilyBitmap);
+ int networkTypeBitmask = RILUtils.convertHalNetworkTypeBitMask(halRadioAccessFamilyBitmap);
mRil.mAllowedNetworkTypesBitmask = networkTypeBitmask;
responseInts(responseInfo, networkTypeBitmask);
}
@@ -1398,7 +1384,7 @@
public void getCellInfoListResponse_1_2(
RadioResponseInfo responseInfo,
ArrayList<android.hardware.radio.V1_2.CellInfo> cellInfo) {
- responseCellInfoList_1_2(responseInfo, cellInfo);
+ responseCellInfoList(responseInfo, cellInfo);
}
/**
@@ -1408,7 +1394,7 @@
public void getCellInfoListResponse_1_4(
RadioResponseInfo responseInfo,
ArrayList<android.hardware.radio.V1_4.CellInfo> cellInfo) {
- responseCellInfoList_1_4(responseInfo, cellInfo);
+ responseCellInfoList(responseInfo, cellInfo);
}
/**
@@ -1418,7 +1404,7 @@
public void getCellInfoListResponse_1_5(
RadioResponseInfo responseInfo,
ArrayList<android.hardware.radio.V1_5.CellInfo> cellInfo) {
- responseCellInfoList_1_5(responseInfo, cellInfo);
+ responseCellInfoList(responseInfo, cellInfo);
}
/**
@@ -1623,7 +1609,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- RadioCapability ret = RIL.convertHalRadioCapability(rc, mRil);
+ RadioCapability ret = RILUtils.convertHalRadioCapability(rc, mRil);
if (responseInfo.error == RadioError.REQUEST_NOT_SUPPORTED
|| responseInfo.error == RadioError.GENERIC_FAILURE) {
// we should construct the RAF bitmask the radio
@@ -1851,7 +1837,6 @@
responseVoid(responseInfo);
}
-
/**
* @param responseInfo Response info struct containing response type, serial no. and error
* @param keepaliveStatus status of the keepalive with a handle for the session
@@ -1866,7 +1851,8 @@
try {
switch(responseInfo.error) {
case RadioError.NONE:
- int convertedStatus = convertHalKeepaliveStatusCode(keepaliveStatus.code);
+ int convertedStatus = RILUtils.convertHalKeepaliveStatusCode(
+ keepaliveStatus.code);
if (convertedStatus < 0) {
ret = new KeepaliveStatus(KeepaliveStatus.ERROR_UNSUPPORTED);
} else {
@@ -1910,96 +1896,6 @@
}
}
- private int convertHalKeepaliveStatusCode(int halCode) {
- switch (halCode) {
- case android.hardware.radio.V1_1.KeepaliveStatusCode.ACTIVE:
- return KeepaliveStatus.STATUS_ACTIVE;
- case android.hardware.radio.V1_1.KeepaliveStatusCode.INACTIVE:
- return KeepaliveStatus.STATUS_INACTIVE;
- case android.hardware.radio.V1_1.KeepaliveStatusCode.PENDING:
- return KeepaliveStatus.STATUS_PENDING;
- default:
- mRil.riljLog("Invalid Keepalive Status" + halCode);
- return -1;
- }
- }
-
- private IccCardStatus convertHalCardStatus(CardStatus cardStatus) {
- IccCardStatus iccCardStatus = new IccCardStatus();
- iccCardStatus.setCardState(cardStatus.cardState);
- iccCardStatus.setUniversalPinState(cardStatus.universalPinState);
- iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus.gsmUmtsSubscriptionAppIndex;
- iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus.cdmaSubscriptionAppIndex;
- iccCardStatus.mImsSubscriptionAppIndex = cardStatus.imsSubscriptionAppIndex;
- int numApplications = cardStatus.applications.size();
-
- // limit to maximum allowed applications
- if (numApplications
- > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) {
- numApplications =
- com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS;
- }
- iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications];
- for (int i = 0; i < numApplications; i++) {
- AppStatus rilAppStatus = cardStatus.applications.get(i);
- IccCardApplicationStatus appStatus = new IccCardApplicationStatus();
- appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.appType);
- appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.appState);
- appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(
- rilAppStatus.persoSubstate);
- appStatus.aid = rilAppStatus.aidPtr;
- appStatus.app_label = rilAppStatus.appLabelPtr;
- appStatus.pin1_replaced = rilAppStatus.pin1Replaced;
- appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.pin1);
- appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.pin2);
- iccCardStatus.mApplications[i] = appStatus;
- mRil.riljLog("IccCardApplicationStatus " + i + ":" + appStatus.toString());
- }
- return iccCardStatus;
- }
-
- private IccCardStatus convertHalCardStatus_1_5(
- android.hardware.radio.V1_5.CardStatus cardStatus) {
- IccCardStatus iccCardStatus = new IccCardStatus();
- iccCardStatus.setCardState(cardStatus.base.base.base.cardState);
- iccCardStatus.setUniversalPinState(cardStatus.base.base.base.universalPinState);
- iccCardStatus.mGsmUmtsSubscriptionAppIndex =
- cardStatus.base.base.base.gsmUmtsSubscriptionAppIndex;
- iccCardStatus.mCdmaSubscriptionAppIndex =
- cardStatus.base.base.base.cdmaSubscriptionAppIndex;
- iccCardStatus.mImsSubscriptionAppIndex =
- cardStatus.base.base.base.imsSubscriptionAppIndex;
- iccCardStatus.physicalSlotIndex = cardStatus.base.base.physicalSlotId;
- iccCardStatus.atr = cardStatus.base.base.atr;
- iccCardStatus.iccid = cardStatus.base.base.iccid;
- iccCardStatus.eid = cardStatus.base.eid;
- int numApplications = cardStatus.applications.size();
-
- // limit to maximum allowed applications
- if (numApplications
- > com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS) {
- numApplications =
- com.android.internal.telephony.uicc.IccCardStatus.CARD_MAX_APPS;
- }
- iccCardStatus.mApplications = new IccCardApplicationStatus[numApplications];
- for (int i = 0; i < numApplications; i++) {
- android.hardware.radio.V1_5.AppStatus rilAppStatus = cardStatus.applications.get(i);
- IccCardApplicationStatus appStatus = new IccCardApplicationStatus();
- appStatus.app_type = appStatus.AppTypeFromRILInt(rilAppStatus.base.appType);
- appStatus.app_state = appStatus.AppStateFromRILInt(rilAppStatus.base.appState);
- appStatus.perso_substate = appStatus.PersoSubstateFromRILInt(
- rilAppStatus.persoSubstate);
- appStatus.aid = rilAppStatus.base.aidPtr;
- appStatus.app_label = rilAppStatus.base.appLabelPtr;
- appStatus.pin1_replaced = rilAppStatus.base.pin1Replaced;
- appStatus.pin1 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin1);
- appStatus.pin2 = appStatus.PinStateFromRILInt(rilAppStatus.base.pin2);
- iccCardStatus.mApplications[i] = appStatus;
- mRil.riljLog("IccCardApplicationStatus " + i + ":" + appStatus.toString());
- }
- return iccCardStatus;
- }
-
/**
* @param responseInfo Response info struct containing response type, serial no. and error.
*/
@@ -2045,7 +1941,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- IccCardStatus iccCardStatus = convertHalCardStatus(cardStatus);
+ IccCardStatus iccCardStatus = RILUtils.convertHalCardStatus(cardStatus);
mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, iccCardStatus);
@@ -2059,7 +1955,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- IccCardStatus iccCardStatus = convertHalCardStatus(cardStatus.base);
+ IccCardStatus iccCardStatus = RILUtils.convertHalCardStatus(cardStatus.base);
iccCardStatus.physicalSlotIndex = cardStatus.physicalSlotId;
iccCardStatus.atr = cardStatus.atr;
iccCardStatus.iccid = cardStatus.iccid;
@@ -2076,7 +1972,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- IccCardStatus iccCardStatus = convertHalCardStatus(cardStatus.base.base);
+ IccCardStatus iccCardStatus = RILUtils.convertHalCardStatus(cardStatus.base.base);
iccCardStatus.physicalSlotIndex = cardStatus.base.physicalSlotId;
iccCardStatus.atr = cardStatus.base.atr;
iccCardStatus.iccid = cardStatus.base.iccid;
@@ -2094,7 +1990,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- IccCardStatus iccCardStatus = convertHalCardStatus_1_5(cardStatus);
+ IccCardStatus iccCardStatus = RILUtils.convertHalCardStatus(cardStatus);
mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, iccCardStatus);
@@ -2168,7 +2064,7 @@
DriverCall dc;
for (int i = 0; i < num; i++) {
- dc = convertToDriverCall(calls.get(i));
+ dc = RILUtils.convertToDriverCall(calls.get(i));
dcCalls.add(dc);
@@ -2208,7 +2104,7 @@
DriverCall dc;
for (int i = 0; i < num; i++) {
- dc = convertToDriverCall_1_2(calls.get(i));
+ dc = RILUtils.convertToDriverCall(calls.get(i));
dcCalls.add(dc);
@@ -2249,7 +2145,7 @@
DriverCall dc;
for (int i = 0; i < num; i++) {
- dc = convertToDriverCall_1_6(calls.get(i));
+ dc = RILUtils.convertToDriverCall(calls.get(i));
dcCalls.add(dc);
@@ -2279,62 +2175,6 @@
}
}
- private DriverCall convertToDriverCall(android.hardware.radio.V1_0.Call call) {
- DriverCall dc = new DriverCall();
- // TODO: change name of function stateFromCLCC() in DriverCall.java to name
- // clarifying what is CLCC
- dc.state = DriverCall.stateFromCLCC((int) (call.state));
- dc.index = call.index;
- dc.TOA = call.toa;
- dc.isMpty = call.isMpty;
- dc.isMT = call.isMT;
- dc.als = call.als;
- dc.isVoice = call.isVoice;
- dc.isVoicePrivacy = call.isVoicePrivacy;
- dc.number = call.number;
- dc.numberPresentation = DriverCall.presentationFromCLIP((int) (call.numberPresentation));
- dc.name = call.name;
- dc.namePresentation = DriverCall.presentationFromCLIP((int) (call.namePresentation));
- if (call.uusInfo.size() == 1) {
- dc.uusInfo = new UUSInfo();
- dc.uusInfo.setType(call.uusInfo.get(0).uusType);
- dc.uusInfo.setDcs(call.uusInfo.get(0).uusDcs);
- if (!TextUtils.isEmpty(call.uusInfo.get(0).uusData)) {
- byte[] userData = call.uusInfo.get(0).uusData.getBytes();
- dc.uusInfo.setUserData(userData);
- } else {
- mRil.riljLog("convertToDriverCall: uusInfo data is null or empty");
- }
-
- mRil.riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d",
- dc.uusInfo.getType(), dc.uusInfo.getDcs(),
- dc.uusInfo.getUserData().length));
- mRil.riljLogv("Incoming UUS : data (hex): "
- + IccUtils.bytesToHexString(dc.uusInfo.getUserData()));
- } else {
- mRil.riljLogv("Incoming UUS : NOT present!");
- }
-
- // Make sure there's a leading + on addresses with a TOA of 145
- dc.number = PhoneNumberUtils.stringFromStringAndTOA(dc.number, dc.TOA);
-
- return dc;
- }
-
- private DriverCall convertToDriverCall_1_2(android.hardware.radio.V1_2.Call call) {
- android.hardware.radio.V1_0.Call earlierVersionCall = call.base;
- DriverCall dc = convertToDriverCall(earlierVersionCall);
- dc.audioQuality = (int) (call.audioQuality);
- return dc;
- }
-
- private DriverCall convertToDriverCall_1_6(android.hardware.radio.V1_6.Call call) {
- android.hardware.radio.V1_2.Call earlierVersionCall = call.base;
- DriverCall dc = convertToDriverCall_1_2(earlierVersionCall);
- dc.forwardedNumber = call.forwardedNumber;
- return dc;
- }
-
private void responseVoid(RadioResponseInfo responseInfo) {
RILRequest rr = mRil.processResponse(responseInfo);
@@ -2497,7 +2337,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- DataCallResponse response = RIL.convertDataCallResult(setupDataCallResult);
+ DataCallResponse response = RILUtils.convertHalDataCallResult(setupDataCallResult);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, response);
}
@@ -2511,7 +2351,7 @@
RILRequest rr = mRil.processResponse_1_6(responseInfo);
if (rr != null) {
- DataCallResponse response = RIL.convertDataCallResult(setupDataCallResult);
+ DataCallResponse response = RILUtils.convertHalDataCallResult(setupDataCallResult);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, response);
}
@@ -2554,20 +2394,6 @@
}
}
- private static String convertOpertatorInfoToString(int status) {
- if (status == android.hardware.radio.V1_0.OperatorStatus.UNKNOWN) {
- return "unknown";
- } else if (status == android.hardware.radio.V1_0.OperatorStatus.AVAILABLE) {
- return "available";
- } else if (status == android.hardware.radio.V1_0.OperatorStatus.CURRENT) {
- return "current";
- } else if (status == android.hardware.radio.V1_0.OperatorStatus.FORBIDDEN) {
- return "forbidden";
- } else {
- return "";
- }
- }
-
private void responseOperatorInfos(RadioResponseInfo responseInfo,
ArrayList<android.hardware.radio.V1_0.OperatorInfo>
networkInfos) {
@@ -2578,7 +2404,7 @@
for (int i = 0; i < networkInfos.size(); i++) {
ret.add(new OperatorInfo(networkInfos.get(i).alphaLong,
networkInfos.get(i).alphaShort, networkInfos.get(i).operatorNumeric,
- convertOpertatorInfoToString(networkInfos.get(i).status)));
+ RILUtils.convertHalOperatorStatus(networkInfos.get(i).status)));
}
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
@@ -2626,7 +2452,7 @@
if (rr != null) {
ArrayList<DataCallResponse> response =
- RIL.convertDataCallResultList(dataCallResultList);
+ RILUtils.convertHalDataCallResultList(dataCallResultList);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, response);
}
@@ -2640,7 +2466,7 @@
if (rr != null) {
ArrayList<DataCallResponse> response =
- RIL.convertDataCallResultList(dataCallResultList);
+ RILUtils.convertHalDataCallResultList(dataCallResultList);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, response);
}
@@ -2745,52 +2571,11 @@
}
private void responseCellInfoList(RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_0.CellInfo> cellInfo) {
+ ArrayList<? extends Object> cellInfo) {
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList(cellInfo);
- if (responseInfo.error == RadioError.NONE) {
- sendMessageResponse(rr.mResult, ret);
- }
- mRil.processResponseDone(rr, responseInfo, ret);
- }
- }
-
- private void responseCellInfoList_1_2(
- RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_2.CellInfo> cellInfo) {
- RILRequest rr = mRil.processResponse(responseInfo);
-
- if (rr != null) {
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_2(cellInfo);
- if (responseInfo.error == RadioError.NONE) {
- sendMessageResponse(rr.mResult, ret);
- }
- mRil.processResponseDone(rr, responseInfo, ret);
- }
- }
-
- private void responseCellInfoList_1_4(
- RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_4.CellInfo> cellInfo) {
- RILRequest rr = mRil.processResponse(responseInfo);
-
- if (rr != null) {
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_4(cellInfo);
- if (responseInfo.error == RadioError.NONE) {
- sendMessageResponse(rr.mResult, ret);
- }
- mRil.processResponseDone(rr, responseInfo, ret);
- }
- }
-
- private void responseCellInfoList_1_5(RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_5.CellInfo> cellInfo) {
- RILRequest rr = mRil.processResponse(responseInfo);
-
- if (rr != null) {
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_5(cellInfo);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList((ArrayList<Object>) cellInfo);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
}
@@ -2800,11 +2585,11 @@
private void responseCellInfoList_1_6(
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
- ArrayList<android.hardware.radio.V1_6.CellInfo> cellInfo) {
+ ArrayList<? extends Object> cellInfo) {
RILRequest rr = mRil.processResponse_1_6(responseInfo);
if (rr != null) {
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_6(cellInfo);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList((ArrayList<Object>) cellInfo);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
}
@@ -2844,7 +2629,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- ArrayList<HardwareConfig> ret = RIL.convertHalHwConfigList(config, mRil);
+ ArrayList<HardwareConfig> ret = RILUtils.convertHalHardwareConfigList(config);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
}
@@ -2857,7 +2642,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- RadioCapability ret = RIL.convertHalRadioCapability(rc, mRil);
+ RadioCapability ret = RILUtils.convertHalRadioCapability(rc, mRil);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
}
@@ -2869,7 +2654,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- ArrayList<Integer> ret = new ArrayList<Integer>();
+ ArrayList<Integer> ret = new ArrayList<>();
ret.add(statusInfo.lceStatus);
ret.add(Byte.toUnsignedInt(statusInfo.actualIntervalMs));
if (responseInfo.error == RadioError.NONE) {
@@ -2883,7 +2668,7 @@
RILRequest rr = mRil.processResponse(responseInfo);
if (rr != null) {
- List<LinkCapacityEstimate> ret = RIL.convertHalLceData(lceInfo, mRil);
+ List<LinkCapacityEstimate> ret = RILUtils.convertHalLceData(lceInfo);
if (responseInfo.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
}
@@ -2891,28 +2676,6 @@
}
}
- private static List<CarrierIdentifier> convertCarrierList(List<Carrier> carrierList) {
- List<CarrierIdentifier> ret = new ArrayList<>();
- for (int i = 0; i < carrierList.size(); i++) {
- String mcc = carrierList.get(i).mcc;
- String mnc = carrierList.get(i).mnc;
- String spn = null, imsi = null, gid1 = null, gid2 = null;
- int matchType = carrierList.get(i).matchType;
- String matchData = carrierList.get(i).matchData;
- if (matchType == CarrierIdentifier.MatchType.SPN) {
- spn = matchData;
- } else if (matchType == CarrierIdentifier.MatchType.IMSI_PREFIX) {
- imsi = matchData;
- } else if (matchType == CarrierIdentifier.MatchType.GID1) {
- gid1 = matchData;
- } else if (matchType == CarrierIdentifier.MatchType.GID2) {
- gid2 = matchData;
- }
- ret.add(new CarrierIdentifier(mcc, mnc, spn, imsi, gid1, gid2));
- }
- return ret;
- }
-
private void responseCarrierRestrictions(RadioResponseInfo responseInfo, boolean allAllowed,
CarrierRestrictionsWithPriority carriers,
int multiSimPolicy) {
@@ -2938,8 +2701,8 @@
}
ret = CarrierRestrictionRules.newBuilder()
- .setAllowedCarriers(convertCarrierList(carriers.allowedCarriers))
- .setExcludedCarriers(convertCarrierList(carriers.excludedCarriers))
+ .setAllowedCarriers(RILUtils.convertHalCarrierList(carriers.allowedCarriers))
+ .setExcludedCarriers(RILUtils.convertHalCarrierList(carriers.excludedCarriers))
.setDefaultCarrierRestriction(carrierRestrictionDefault)
.setMultiSimPolicy(policy)
.build();
@@ -3087,29 +2850,12 @@
halBands = specifier.bands.ngranBands();
break;
}
- return new RadioAccessSpecifier(convertRanToAnt(specifier.radioAccessNetwork),
+ return new RadioAccessSpecifier(
+ RILUtils.convertHalRadioAccessNetworks(specifier.radioAccessNetwork),
halBands.stream().mapToInt(Integer::intValue).toArray(),
specifier.channels.stream().mapToInt(Integer::intValue).toArray());
}
- private static int convertRanToAnt(int ran) {
- switch (ran) {
- case android.hardware.radio.V1_5.RadioAccessNetworks.GERAN:
- return AccessNetworkConstants.AccessNetworkType.GERAN;
- case android.hardware.radio.V1_5.RadioAccessNetworks.UTRAN:
- return AccessNetworkConstants.AccessNetworkType.UTRAN;
- case android.hardware.radio.V1_5.RadioAccessNetworks.EUTRAN:
- return AccessNetworkConstants.AccessNetworkType.EUTRAN;
- case android.hardware.radio.V1_5.RadioAccessNetworks.NGRAN:
- return AccessNetworkConstants.AccessNetworkType.NGRAN;
- case android.hardware.radio.V1_5.RadioAccessNetworks.CDMA2000:
- return AccessNetworkConstants.AccessNetworkType.CDMA2000;
- case android.hardware.radio.V1_5.RadioAccessNetworks.UNKNOWN:
- default:
- return AccessNetworkConstants.AccessNetworkType.UNKNOWN;
- }
- }
-
/**
* @param responseInfo Response info struct containing response type, serial no. and error.
* @param cellIdentity CellIdentity for the barringInfos.
@@ -3177,7 +2923,7 @@
RILRequest rr = mRil.processResponse_1_6(info);
if (rr != null) {
- SlicingConfig ret = new SlicingConfig(slicingConfig);
+ SlicingConfig ret = RILUtils.convertHalSlicingConfig(slicingConfig);
if (info.error == RadioError.NONE) {
sendMessageResponse(rr.mResult, ret);
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/RILTest.java b/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
index d8b601b..5b98660 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
@@ -159,6 +159,7 @@
import android.telephony.data.DataCallResponse;
import android.telephony.data.DataProfile;
import android.telephony.data.EpsQos;
+import android.telephony.data.Qos;
import android.telephony.data.QosBearerFilter;
import android.telephony.data.QosBearerSession;
import android.telephony.data.TrafficDescriptor;
@@ -299,8 +300,7 @@
} catch (RuntimeException e) {
}
Context context = new ContextFixture().getTestDouble();
- doReturn(true).when(mConnectionManager)
- .isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
+ doReturn(true).when(mConnectionManager).isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
doReturn(mConnectionManager).when(context)
.getSystemService(Context.CONNECTIVITY_SERVICE);
doReturn(mTelephonyManager).when(context)
@@ -311,9 +311,8 @@
doReturn(powerManager).when(context).getSystemService(Context.POWER_SERVICE);
doReturn(new ApplicationInfo()).when(context).getApplicationInfo();
- mRILInstance = new RIL(context,
- RadioAccessFamily.getRafFromNetworkType(RILConstants.PREFERRED_NETWORK_MODE),
- Phone.PREFERRED_CDMA_SUBSCRIPTION, 0);
+ mRILInstance = new RIL(context, RadioAccessFamily.getRafFromNetworkType(
+ RILConstants.PREFERRED_NETWORK_MODE), Phone.PREFERRED_CDMA_SUBSCRIPTION, 0);
mRILUnderTest = spy(mRILInstance);
doReturn(mRadioProxy).when(mRILUnderTest).getRadioProxy(any());
doReturn(mOemHookProxy).when(mRILUnderTest).getOemHookProxy(any());
@@ -1396,7 +1395,7 @@
byte[] data = new byte[]{1, 2, 3};
mRILUnderTest.invokeOemRilRequestRaw(data, obtainMessage());
verify(mOemHookProxy).sendRequestRaw(
- mSerialNumberCaptor.capture(), eq(mRILUnderTest.primitiveArrayToArrayList(data)));
+ mSerialNumberCaptor.capture(), eq(RILUtils.primitiveArrayToArrayList(data)));
}
private Message obtainMessage() {
@@ -1512,11 +1511,10 @@
record.timeStampType = RIL_TIMESTAMP_TYPE_OEM_RIL;
record.timeStamp = TIMESTAMP;
record.lte.add(lte);
- ArrayList<android.hardware.radio.V1_0.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_0.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList(records);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList(records);
assertEquals(1, ret.size());
CellInfoLte cellInfoLte = (CellInfoLte) ret.get(0);
@@ -1554,11 +1552,10 @@
record.timeStampType = RIL_TIMESTAMP_TYPE_OEM_RIL;
record.timeStamp = TIMESTAMP;
record.gsm.add(cellinfo);
- ArrayList<android.hardware.radio.V1_0.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_0.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList(records);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList(records);
assertEquals(1, ret.size());
CellInfoGsm cellInfoGsm = (CellInfoGsm) ret.get(0);
@@ -1595,11 +1592,10 @@
record.timeStampType = RIL_TIMESTAMP_TYPE_OEM_RIL;
record.timeStamp = TIMESTAMP;
record.wcdma.add(cellinfo);
- ArrayList<android.hardware.radio.V1_0.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_0.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList(records);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList(records);
assertEquals(1, ret.size());
CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) ret.get(0);
@@ -1645,11 +1641,10 @@
record.timeStampType = RIL_TIMESTAMP_TYPE_OEM_RIL;
record.timeStamp = TIMESTAMP;
record.tdscdma.add(cellinfo);
- ArrayList<android.hardware.radio.V1_2.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_2.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_2(records);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList(records);
assertEquals(1, ret.size());
CellInfoTdscdma cellInfoTdscdma = (CellInfoTdscdma) ret.get(0);
@@ -1688,11 +1683,10 @@
record.timeStampType = RIL_TIMESTAMP_TYPE_OEM_RIL;
record.timeStamp = TIMESTAMP;
record.cdma.add(cellinfo);
- ArrayList<android.hardware.radio.V1_0.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_0.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList(records);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList(records);
assertEquals(1, ret.size());
CellInfoCdma cellInfoCdma = (CellInfoCdma) ret.get(0);
@@ -1975,10 +1969,10 @@
android.hardware.radio.V1_4.CellInfo record = new android.hardware.radio.V1_4.CellInfo();
record.info.nr(cellinfo);
- ArrayList<android.hardware.radio.V1_4.CellInfo> records = new ArrayList<>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- ArrayList<CellInfo> ret = RIL.convertHalCellInfoList_1_4(records);
+ ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList(records);
CellInfoNr cellInfoNr = (CellInfoNr) ret.get(0);
CellIdentityNr cellIdentityNr = (CellIdentityNr) cellInfoNr.getCellIdentity();
@@ -2059,8 +2053,7 @@
initializeCellIdentityWcdma_1_2(id.base);
if (addAdditionalPlmns) {
- id.additionalPlmns = new ArrayList<>(
- Arrays.asList(ADDITIONAL_PLMNS));
+ id.additionalPlmns = new ArrayList<>(Arrays.asList(ADDITIONAL_PLMNS));
}
if (addCsgInfo) {
@@ -2105,8 +2098,7 @@
initializeCellIdentityTdscdma_1_2(id.base);
if (addAdditionalPlmns) {
- id.additionalPlmns = new ArrayList<>(
- Arrays.asList(ADDITIONAL_PLMNS));
+ id.additionalPlmns = new ArrayList<>(Arrays.asList(ADDITIONAL_PLMNS));
}
if (addCsgInfo) {
@@ -2186,7 +2178,7 @@
.setTrafficDescriptors(new ArrayList<>())
.build();
- assertEquals(response, RIL.convertDataCallResult(result10));
+ assertEquals(response, RILUtils.convertHalDataCallResult(result10));
// Test V1.4 SetupDataCallResult
android.hardware.radio.V1_4.SetupDataCallResult result14 =
@@ -2205,7 +2197,7 @@
"fd00:976a:c206:20::6", "fd00:976a:c206:20::9", "fd00:976a:c202:1d::9"));
result14.mtu = 1500;
- assertEquals(response, RIL.convertDataCallResult(result14));
+ assertEquals(response, RILUtils.convertHalDataCallResult(result14));
// Test V1.5 SetupDataCallResult
android.hardware.radio.V1_5.SetupDataCallResult result15 =
@@ -2261,7 +2253,7 @@
.setTrafficDescriptors(new ArrayList<>())
.build();
- assertEquals(response, RIL.convertDataCallResult(result15));
+ assertEquals(response, RILUtils.convertHalDataCallResult(result15));
// Test V1.6 SetupDataCallResult
android.hardware.radio.V1_6.SetupDataCallResult result16 =
@@ -2325,7 +2317,7 @@
result16.qosSessions = new ArrayList<>(Arrays.asList(halQosSession));
- EpsQos epsQos = new EpsQos(halEpsQos);
+ EpsQos epsQos = new EpsQos(new Qos.QosBandwidth(4, 7), new Qos.QosBandwidth(5, 8), 4);
QosBearerFilter qosFilter = new QosBearerFilter(
Arrays.asList(
new LinkAddress(InetAddresses.parseNumericAddress("122.22.22.22"), 32)),
@@ -2350,7 +2342,7 @@
android.hardware.radio.V1_6.OptionalOsAppId halOsAppId =
new android.hardware.radio.V1_6.OptionalOsAppId();
android.hardware.radio.V1_6.OsAppId osAppId = new android.hardware.radio.V1_6.OsAppId();
- osAppId.osAppId = mRILUnderTest.primitiveArrayToArrayList("OS_APP_ID".getBytes());
+ osAppId.osAppId = RILUtils.primitiveArrayToArrayList("OS_APP_ID".getBytes());
halOsAppId.value(osAppId);
halTrafficDescriptor.dnn = halDnn;
@@ -2386,7 +2378,7 @@
.setTrafficDescriptors(trafficDescriptors)
.build();
- assertEquals(response, RIL.convertDataCallResult(result16));
+ assertEquals(response, RILUtils.convertHalDataCallResult(result16));
}
@Test
@@ -2415,8 +2407,7 @@
@Test
public void testCellInfoTimestamp_1_4() {
- ArrayList<android.hardware.radio.V1_4.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_4.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
for (int i = 0; i < 5 /* arbitrary */; i++) {
android.hardware.radio.V1_4.CellInfo record =
@@ -2428,7 +2419,7 @@
records.add(record);
}
- List<CellInfo> cil = RIL.convertHalCellInfoList_1_4(records);
+ List<CellInfo> cil = RILUtils.convertHalCellInfoList(records);
// Check that all timestamps are set to a valid number and are equal
final long ts = cil.get(0).getTimeStamp();
@@ -2440,8 +2431,7 @@
@Test
public void testCellInfoTimestamp_1_2() {
- ArrayList<android.hardware.radio.V1_2.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_2.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
for (int i = 0; i < 5 /* arbitrary */; i++) {
android.hardware.radio.V1_2.CellInfo record =
@@ -2456,7 +2446,7 @@
records.add(record);
}
- List<CellInfo> cil = RIL.convertHalCellInfoList_1_2(records);
+ List<CellInfo> cil = RILUtils.convertHalCellInfoList(records);
// Check that all timestamps are set to a valid number and are equal
final long ts = cil.get(0).getTimeStamp();
@@ -2511,10 +2501,9 @@
record.timeStamp = TIMESTAMP;
record.lte.add(lte);
record.connectionStatus = 0;
- ArrayList<android.hardware.radio.V1_2.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_2.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- return RIL.convertHalCellInfoList_1_2(records);
+ return RILUtils.convertHalCellInfoList(records);
}
private ArrayList<CellInfo> getCellInfoListForGSM(
@@ -2539,11 +2528,10 @@
record.timeStamp = TIMESTAMP;
record.gsm.add(cellinfo);
record.connectionStatus = 0;
- ArrayList<android.hardware.radio.V1_2.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_2.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- return RIL.convertHalCellInfoList_1_2(records);
+ return RILUtils.convertHalCellInfoList(records);
}
private static void initializeCellIdentityWcdma_1_2(
@@ -2582,11 +2570,10 @@
record.timeStamp = TIMESTAMP;
record.wcdma.add(cellinfo);
record.connectionStatus = 0;
- ArrayList<android.hardware.radio.V1_2.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_2.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- return RIL.convertHalCellInfoList_1_2(records);
+ return RILUtils.convertHalCellInfoList(records);
}
private ArrayList<CellInfo> getCellInfoListForCdma(String alphaLong, String alphaShort) {
@@ -2611,11 +2598,10 @@
record.timeStamp = TIMESTAMP;
record.cdma.add(cellinfo);
record.connectionStatus = 0;
- ArrayList<android.hardware.radio.V1_2.CellInfo> records =
- new ArrayList<android.hardware.radio.V1_2.CellInfo>();
+ ArrayList<Object> records = new ArrayList<>();
records.add(record);
- return RIL.convertHalCellInfoList_1_2(records);
+ return RILUtils.convertHalCellInfoList(records);
}
@Test
@@ -2750,7 +2736,7 @@
expected.add(c4);
expected.add(c5);
- ArrayList<Carrier> result = RIL.createCarrierRestrictionList(carriers);
+ ArrayList<Carrier> result = RILUtils.convertToHalCarrierRestrictionList(carriers);
assertTrue(result.equals(expected));
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java b/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java
index 95e2f06..7669090 100755
--- a/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java
@@ -61,7 +61,7 @@
import com.android.internal.telephony.LastCallFailCause;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.RIL;
+import com.android.internal.telephony.RILUtils;
import com.android.internal.telephony.RadioCapability;
import com.android.internal.telephony.SmsResponse;
import com.android.internal.telephony.UUSInfo;
@@ -69,12 +69,12 @@
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
import com.android.internal.telephony.gsm.SuppServiceNotification;
import com.android.internal.telephony.uicc.AdnCapacity;
-import com.android.internal.telephony.uicc.ReceivedPhonebookRecords;
-import com.android.internal.telephony.uicc.SimPhonebookRecord;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState;
import com.android.internal.telephony.uicc.IccCardStatus;
import com.android.internal.telephony.uicc.IccIoResult;
import com.android.internal.telephony.uicc.IccSlotStatus;
+import com.android.internal.telephony.uicc.ReceivedPhonebookRecords;
+import com.android.internal.telephony.uicc.SimPhonebookRecord;
import com.android.telephony.Rlog;
import java.util.ArrayList;
@@ -1218,7 +1218,7 @@
}
}
- DataCallResponse response = RIL.convertDataCallResult(mSetupDataCallResult);
+ DataCallResponse response = RILUtils.convertHalDataCallResult(mSetupDataCallResult);
if (mDcSuccess) {
resultSuccess(result, response);
} else {
diff --git a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataCallResponseTest.java b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataCallResponseTest.java
index d28c2e8..3a0e056 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataCallResponseTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataCallResponseTest.java
@@ -28,6 +28,7 @@
import android.telephony.data.ApnSetting;
import android.telephony.data.DataCallResponse;
import android.telephony.data.EpsQos;
+import android.telephony.data.Qos;
import android.telephony.data.TrafficDescriptor;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
@@ -56,7 +57,8 @@
Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)))
.setMtuV4(1440)
.setMtuV6(1440)
- .setDefaultQos(new EpsQos())
+ .setDefaultQos(new EpsQos(
+ new Qos.QosBandwidth(-1, -1), new Qos.QosBandwidth(-1, -1), -1))
.setQosBearerSessions(new ArrayList<>())
.setTrafficDescriptors(
Arrays.asList(new TrafficDescriptor(FAKE_DNN, FAKE_OS_APP_ID)))
diff --git a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java
index e7c4db4..85ea1b2 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java
@@ -16,12 +16,8 @@
package com.android.internal.telephony.dataconnection;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
@@ -30,13 +26,11 @@
import android.annotation.NonNull;
import android.net.InetAddresses;
import android.net.LinkAddress;
-import android.net.Network;
-import android.net.NetworkAgent;
import android.telephony.data.EpsBearerQosSessionAttributes;
import android.telephony.data.EpsQos;
+import android.telephony.data.Qos;
import android.telephony.data.QosBearerFilter;
import android.telephony.data.QosBearerSession;
-
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -47,15 +41,12 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
-import java.lang.reflect.Field;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
@@ -118,7 +109,8 @@
halEpsQos.uplink.maxBitrateKbps = ulMbr;
halEpsQos.uplink.guaranteedBitrateKbps = ulGbr;
- return new EpsQos(halEpsQos);
+ return new EpsQos(
+ new Qos.QosBandwidth(dlMbr, dlGbr), new Qos.QosBandwidth(ulMbr, ulGbr), 4);
}
private QosBearerFilter createIpv4QosFilter(String localAddress,
@@ -126,7 +118,7 @@
return new QosBearerFilter(
Arrays.asList(
new LinkAddress(InetAddresses.parseNumericAddress(localAddress), 32)),
- new ArrayList<LinkAddress>(), localPort, null, QosBearerFilter.QOS_PROTOCOL_TCP,
+ new ArrayList<>(), localPort, null, QosBearerFilter.QOS_PROTOCOL_TCP,
7, 987, 678, QosBearerFilter.QOS_FILTER_DIRECTION_BIDIRECTIONAL, precedence);
}