2772 lines
109 KiB
Java
2772 lines
109 KiB
Java
/*
|
|
* Copyright (C) 2016 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.content.Context;
|
|
import android.hardware.radio.V1_0.ActivityStatsInfo;
|
|
import android.hardware.radio.V1_0.CardStatus;
|
|
import android.hardware.radio.V1_0.CarrierRestrictions;
|
|
import android.hardware.radio.V1_0.CdmaBroadcastSmsConfigInfo;
|
|
import android.hardware.radio.V1_0.DataRegStateResult;
|
|
import android.hardware.radio.V1_0.GsmBroadcastSmsConfigInfo;
|
|
import android.hardware.radio.V1_0.LastCallFailCauseInfo;
|
|
import android.hardware.radio.V1_0.LceDataInfo;
|
|
import android.hardware.radio.V1_0.LceStatusInfo;
|
|
import android.hardware.radio.V1_0.NeighboringCell;
|
|
import android.hardware.radio.V1_0.RadioError;
|
|
import android.hardware.radio.V1_0.RadioResponseInfo;
|
|
import android.hardware.radio.V1_0.RadioTechnologyFamily;
|
|
import android.hardware.radio.V1_0.SendSmsResult;
|
|
import android.hardware.radio.V1_0.VoiceRegStateResult;
|
|
import android.hardware.radio.V1_4.CarrierRestrictionsWithPriority;
|
|
import android.hardware.radio.V1_4.SimLockMultiSimPolicy;
|
|
import android.hardware.radio.V1_6.IRadioResponse;
|
|
import android.hardware.radio.V1_6.SetupDataCallResult;
|
|
import android.os.AsyncResult;
|
|
import android.os.Message;
|
|
import android.os.SystemClock;
|
|
import android.telephony.AnomalyReporter;
|
|
import android.telephony.BarringInfo;
|
|
import android.telephony.CarrierRestrictionRules;
|
|
import android.telephony.CellInfo;
|
|
import android.telephony.ModemActivityInfo;
|
|
import android.telephony.NeighboringCellInfo;
|
|
import android.telephony.NetworkScanRequest;
|
|
import android.telephony.RadioAccessSpecifier;
|
|
import android.telephony.SignalStrength;
|
|
import android.telephony.SubscriptionManager;
|
|
import android.telephony.TelephonyManager;
|
|
import android.telephony.data.DataCallResponse;
|
|
import android.telephony.data.NetworkSlicingConfig;
|
|
import android.text.TextUtils;
|
|
|
|
import com.android.internal.telephony.data.KeepaliveStatus;
|
|
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
|
|
import com.android.internal.telephony.uicc.AdnCapacity;
|
|
import com.android.internal.telephony.uicc.IccCardStatus;
|
|
import com.android.internal.telephony.uicc.IccIoResult;
|
|
import com.android.internal.telephony.uicc.IccSlotPortMapping;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
public class RadioResponse extends IRadioResponse.Stub {
|
|
RIL mRil;
|
|
|
|
public RadioResponse(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
|
|
*/
|
|
static void sendMessageResponse(Message msg, Object ret) {
|
|
if (msg != null) {
|
|
AsyncResult.forMessage(msg, ret, null);
|
|
msg.sendToTarget();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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 cardStatus ICC card status as defined by CardStatus in types.hal
|
|
*/
|
|
public void getIccCardStatusResponse(RadioResponseInfo responseInfo, CardStatus cardStatus) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param cardStatus ICC card status as defined by CardStatus in 1.2/types.hal
|
|
*/
|
|
public void getIccCardStatusResponse_1_2(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_2.CardStatus cardStatus) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param cardStatus ICC card status as defined by CardStatus in 1.4/types.hal
|
|
*/
|
|
public void getIccCardStatusResponse_1_4(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_4.CardStatus cardStatus) {
|
|
responseIccCardStatus(responseInfo, cardStatus);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param cardStatus ICC card status as defined by CardStatus in 1.5/types.hal
|
|
*/
|
|
public void getIccCardStatusResponse_1_5(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_5.CardStatus cardStatus) {
|
|
responseIccCardStatus_1_5(responseInfo, cardStatus);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void supplyIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) {
|
|
responseInts(responseInfo, remainingAttempts);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void supplyIccPukForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) {
|
|
responseInts(responseInfo, remainingAttempts);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void supplyIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) {
|
|
responseInts(responseInfo, remainingAttempts);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void supplyIccPuk2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) {
|
|
responseInts(responseInfo, remainingAttempts);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void changeIccPinForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) {
|
|
responseInts(responseInfo, remainingAttempts);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param remainingAttempts Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void changeIccPin2ForAppResponse(RadioResponseInfo responseInfo, int remainingAttempts) {
|
|
responseInts(responseInfo, remainingAttempts);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param retriesRemaining Number of retries remaining, must be equal to -1 if unknown.
|
|
*/
|
|
public void supplyNetworkDepersonalizationResponse(RadioResponseInfo responseInfo,
|
|
int retriesRemaining) {
|
|
responseInts(responseInfo, retriesRemaining);
|
|
}
|
|
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
* @param persoType SIM Personalisation type
|
|
* @param remainingRetries postiive values indicates number of retries remaining,
|
|
* must be equal to -1 if number of retries is infinite.
|
|
*/
|
|
public void supplySimDepersonalizationResponse(RadioResponseInfo info,
|
|
int persoType, int remainingRetries) {
|
|
responseInts(info, persoType, remainingRetries);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param calls Current call list
|
|
*/
|
|
public void getCurrentCallsResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.Call> calls) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param calls Current call list
|
|
*/
|
|
public void getCurrentCallsResponse_1_2(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_2.Call> calls) {
|
|
responseCurrentCalls(responseInfo, calls);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param calls Current call list
|
|
*/
|
|
public void getCurrentCallsResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_6.Call> calls) {
|
|
responseCurrentCalls_1_6(responseInfo, calls);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void dialResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param imsi String containing the IMSI
|
|
*/
|
|
public void getIMSIForAppResponse(RadioResponseInfo responseInfo, String imsi) {
|
|
responseString(responseInfo, imsi);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void hangupConnectionResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void hangupWaitingOrBackgroundResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void hangupForegroundResumeBackgroundResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void switchWaitingOrHoldingAndActiveResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void conferenceResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void rejectCallResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param fcInfo Contains LastCallFailCause and vendor cause code. GSM failure reasons
|
|
* are mapped to cause codes defined in TS 24.008 Annex H where possible. CDMA
|
|
* failure reasons are derived from the possible call failure scenarios
|
|
* described in the "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard.
|
|
*/
|
|
public void getLastCallFailCauseResponse(RadioResponseInfo responseInfo,
|
|
LastCallFailCauseInfo fcInfo) {
|
|
responseLastCallFailCauseInfo(responseInfo, fcInfo);
|
|
}
|
|
|
|
public void getSignalStrengthResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.SignalStrength sigStrength) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param signalStrength Current signal strength of camped/connected cells
|
|
*/
|
|
public void getSignalStrengthResponse_1_2(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_2.SignalStrength signalStrength) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param signalStrength Current signal strength of camped/connected cells
|
|
*/
|
|
public void getSignalStrengthResponse_1_4(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_4.SignalStrength signalStrength) {
|
|
responseSignalStrength(responseInfo, signalStrength);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param signalStrength Current signal strength of camped/connected cells
|
|
*/
|
|
public void getSignalStrengthResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_6.SignalStrength signalStrength) {
|
|
responseSignalStrength_1_6(responseInfo, signalStrength);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult
|
|
* in types.hal
|
|
*/
|
|
public void getVoiceRegistrationStateResponse(RadioResponseInfo responseInfo,
|
|
VoiceRegStateResult voiceRegResponse) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult
|
|
* in 1.2/types.hal
|
|
*/
|
|
public void getVoiceRegistrationStateResponse_1_2(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_2.VoiceRegStateResult voiceRegResponse) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, voiceRegResponse);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, voiceRegResponse);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult
|
|
* in 1.5/types.hal
|
|
*/
|
|
public void getVoiceRegistrationStateResponse_1_5(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_5.RegStateResult voiceRegResponse) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr == null) {
|
|
return;
|
|
}
|
|
|
|
if (responseInfo.error == RadioError.REQUEST_NOT_SUPPORTED) {
|
|
// Move the data needed for fallback call from rr which will be released soon
|
|
final int request = rr.getRequest();
|
|
final Message result = rr.getResult();
|
|
|
|
mRil.mRilHandler.post(() -> {
|
|
mRil.setCompatVersion(request, RIL.RADIO_HAL_VERSION_1_4);
|
|
mRil.getVoiceRegistrationState(result);
|
|
});
|
|
|
|
mRil.processResponseFallback(rr, responseInfo, voiceRegResponse);
|
|
return;
|
|
} else if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, voiceRegResponse);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, voiceRegResponse);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult
|
|
* in 1.6/types.hal
|
|
*/
|
|
public void getVoiceRegistrationStateResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_6.RegStateResult voiceRegResponse) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, voiceRegResponse);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, voiceRegResponse);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param dataRegResponse Current Data registration response as defined by DataRegStateResult in
|
|
* types.hal
|
|
*/
|
|
public void getDataRegistrationStateResponse(RadioResponseInfo responseInfo,
|
|
DataRegStateResult dataRegResponse) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param dataRegResponse Current Data registration response as defined by DataRegStateResult in
|
|
* 1.2/types.hal
|
|
*/
|
|
public void getDataRegistrationStateResponse_1_2(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_2.DataRegStateResult dataRegResponse) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param dataRegResponse Current Data registration response as defined by DataRegStateResult in
|
|
* 1.4/types.hal
|
|
*/
|
|
public void getDataRegistrationStateResponse_1_4(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_4.DataRegStateResult dataRegResponse) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, dataRegResponse);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, dataRegResponse);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param dataRegResponse Current Data registration response as defined by DataRegStateResult in
|
|
* 1.5/types.hal
|
|
*/
|
|
public void getDataRegistrationStateResponse_1_5(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_5.RegStateResult dataRegResponse) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr == null) {
|
|
return;
|
|
}
|
|
|
|
if (responseInfo.error == RadioError.REQUEST_NOT_SUPPORTED) {
|
|
// Move the data needed for fallback call from rr which will be released soon
|
|
final int request = rr.getRequest();
|
|
final Message result = rr.getResult();
|
|
|
|
mRil.mRilHandler.post(() -> {
|
|
mRil.setCompatVersion(request, RIL.RADIO_HAL_VERSION_1_4);
|
|
mRil.getDataRegistrationState(result);
|
|
});
|
|
|
|
mRil.processResponseFallback(rr, responseInfo, dataRegResponse);
|
|
return;
|
|
} else if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, dataRegResponse);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, dataRegResponse);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param dataRegResponse Current Data registration response as defined by DataRegStateResult in
|
|
* 1.6/types.hal
|
|
*/
|
|
public void getDataRegistrationStateResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_6.RegStateResult dataRegResponse) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, dataRegResponse);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, dataRegResponse);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param longName is long alpha ONS or EONS or empty string if unregistered
|
|
* @param shortName is short alpha ONS or EONS or empty string if unregistered
|
|
* @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) {
|
|
responseStrings(responseInfo, longName, shortName, numeric);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setRadioPowerResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
mRil.mLastRadioPowerResult = responseInfo.error;
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void sendDtmfResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param sms Response to sms sent as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendSmsResponse(RadioResponseInfo responseInfo, SendSmsResult sms) {
|
|
responseSms(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error which
|
|
* is defined in 1.6/types.hal
|
|
* @param sms Response to sms sent as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendSmsResponse_1_6(android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
SendSmsResult sms) {
|
|
responseSms_1_6(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param sms Response to sms sent as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendSMSExpectMoreResponse(RadioResponseInfo responseInfo,
|
|
SendSmsResult sms) {
|
|
responseSms(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error which
|
|
* is defined in 1.6/types.hal
|
|
* @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) {
|
|
responseSms_1_6(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param setupDataCallResult Response to data call setup as defined by setupDataCallResult in
|
|
* types.hal
|
|
*/
|
|
public void setupDataCallResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.SetupDataCallResult setupDataCallResult) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param setupDataCallResult Response to data call setup as defined by setupDataCallResult in
|
|
* 1.4/types.hal
|
|
*/
|
|
public void setupDataCallResponse_1_4(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_4.SetupDataCallResult setupDataCallResult) {
|
|
responseSetupDataCall(responseInfo, setupDataCallResult);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param setupDataCallResult Response to data call setup as defined by setupDataCallResult in
|
|
* 1.5/types.hal
|
|
*/
|
|
public void setupDataCallResponse_1_5(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_5.SetupDataCallResult setupDataCallResult) {
|
|
responseSetupDataCall(responseInfo, setupDataCallResult);
|
|
}
|
|
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param setupDataCallResult Response to data call setup as defined by setupDataCallResult in
|
|
* 1.6/types.hal
|
|
*/
|
|
public void setupDataCallResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_6.SetupDataCallResult setupDataCallResult) {
|
|
responseSetupDataCall_1_6(responseInfo, setupDataCallResult);
|
|
}
|
|
|
|
@Override
|
|
public void getDataCallListResponse_1_6(android.hardware.radio.V1_6.RadioResponseInfo info,
|
|
ArrayList<SetupDataCallResult> dcResponse) {
|
|
responseDataCallList(info, dcResponse);
|
|
}
|
|
|
|
@Override
|
|
public void setSimCardPowerResponse_1_6(android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
}
|
|
|
|
@Override
|
|
public void setAllowedNetworkTypesBitmapResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
}
|
|
|
|
@Override
|
|
public void getAllowedNetworkTypesBitmapResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo info, int halRadioAccessFamilyBitmap) {
|
|
int networkTypeBitmask = RILUtils.convertHalNetworkTypeBitMask(halRadioAccessFamilyBitmap);
|
|
mRil.mAllowedNetworkTypesBitmask = networkTypeBitmask;
|
|
responseInts_1_6(info, networkTypeBitmask);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param iccIo ICC io operation response as defined by IccIoResult in types.hal
|
|
*/
|
|
public void iccIOForAppResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.IccIoResult iccIo) {
|
|
responseIccIo(responseInfo, iccIo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void sendUssdResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void cancelPendingUssdResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param n is "n" parameter from TS 27.007 7.7
|
|
* @param m is "m" parameter from TS 27.007 7.7
|
|
*/
|
|
public void getClirResponse(RadioResponseInfo responseInfo, int n, int m) {
|
|
responseInts(responseInfo, n, m);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setClirResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param callForwardInfos points to a vector of CallForwardInfo, one for
|
|
* each distinct registered phone number.
|
|
*/
|
|
public void getCallForwardStatusResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.CallForwardInfo> callForwardInfos) {
|
|
responseCallForwardInfo(responseInfo, callForwardInfos);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCallForwardResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param enable If current call waiting state is disabled, enable = false else true
|
|
* @param serviceClass If enable, then callWaitingResp[1]
|
|
* must follow, with the TS 27.007 service class bit vector of services
|
|
* for which call waiting is enabled.
|
|
* For example, if callWaitingResp[0] is 1 and
|
|
* callWaitingResp[1] is 3, then call waiting is enabled for data
|
|
* and voice and disabled for everything else.
|
|
*/
|
|
public void getCallWaitingResponse(RadioResponseInfo responseInfo,
|
|
boolean enable, int serviceClass) {
|
|
responseInts(responseInfo, enable ? 1 : 0, serviceClass);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCallWaitingResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void acknowledgeLastIncomingGsmSmsResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void acceptCallResponse(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 response 0 is the TS 27.007 service class bit vector of
|
|
* services for which the specified barring facility
|
|
* is active. "0" means "disabled for all"
|
|
*/
|
|
public void getFacilityLockForAppResponse(RadioResponseInfo responseInfo, int response) {
|
|
responseInts(responseInfo, response);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param retry 0 is the number of retries remaining, or -1 if unknown
|
|
*/
|
|
public void setFacilityLockForAppResponse(RadioResponseInfo responseInfo, int retry) {
|
|
responseInts(responseInfo, retry);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setBarringPasswordResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param selection false for automatic selection, true for manual selection
|
|
*/
|
|
public void getNetworkSelectionModeResponse(RadioResponseInfo responseInfo, boolean selection) {
|
|
responseInts(responseInfo, selection ? 1 : 0);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setNetworkSelectionModeAutomaticResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setNetworkSelectionModeManualResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setNetworkSelectionModeManualResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param networkInfos List of network operator information as OperatorInfos defined in
|
|
* types.hal
|
|
*/
|
|
public void getAvailableNetworksResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.OperatorInfo> networkInfos) {
|
|
responseOperatorInfos(responseInfo, networkInfos);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void startNetworkScanResponse(RadioResponseInfo responseInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* The same method as startNetworkScanResponse, except disallowing error codes
|
|
* OPERATION_NOT_ALLOWED.
|
|
*
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void startNetworkScanResponse_1_4(RadioResponseInfo responseInfo) {
|
|
responseScanStatus(responseInfo, null /*fallbackHalVersion*/);
|
|
}
|
|
|
|
/**
|
|
* The same method as startNetworkScanResponse_1_4.
|
|
*
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void startNetworkScanResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseScanStatus(responseInfo, RIL.RADIO_HAL_VERSION_1_4);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void stopNetworkScanResponse(RadioResponseInfo responseInfo) {
|
|
responseScanStatus(responseInfo, null /*fallbackHalVersion*/);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void startDtmfResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void stopDtmfResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param version string containing version string for log reporting
|
|
*/
|
|
public void getBasebandVersionResponse(RadioResponseInfo responseInfo, String version) {
|
|
responseString(responseInfo, version);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void separateConnectionResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setMuteResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param enable true for "mute enabled" and false for "mute disabled"
|
|
*/
|
|
public void getMuteResponse(RadioResponseInfo responseInfo, boolean enable) {
|
|
responseInts(responseInfo, enable ? 1 : 0);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param status indicates CLIP status
|
|
*/
|
|
public void getClipResponse(RadioResponseInfo responseInfo, int status) {
|
|
responseInts(responseInfo, status);
|
|
}
|
|
|
|
/**
|
|
* @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,
|
|
ArrayList<android.hardware.radio.V1_0.SetupDataCallResult> dataCallResultList) {
|
|
responseNotSupported(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
|
|
* 1.4/types.hal
|
|
*/
|
|
public void getDataCallListResponse_1_4(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_4.SetupDataCallResult> dataCallResultList) {
|
|
responseDataCallList(responseInfo, dataCallResultList);
|
|
}
|
|
|
|
/**
|
|
* @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
|
|
* 1.5/types.hal
|
|
*/
|
|
public void getDataCallListResponse_1_5(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_5.SetupDataCallResult> dataCallResultList) {
|
|
responseDataCallList(responseInfo, dataCallResultList);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setSuppServiceNotificationsResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param index record index where the message is stored
|
|
*/
|
|
public void writeSmsToSimResponse(RadioResponseInfo responseInfo, int index) {
|
|
responseInts(responseInfo, index);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void deleteSmsOnSimResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setBandModeResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param bandModes List of RadioBandMode listing supported modes
|
|
*/
|
|
public void getAvailableBandModesResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<Integer> bandModes) {
|
|
responseIntArrayList(responseInfo, bandModes);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param commandResponse SAT/USAT response in hexadecimal format
|
|
* string starting with first byte of response
|
|
*/
|
|
public void sendEnvelopeResponse(RadioResponseInfo responseInfo, String commandResponse) {
|
|
responseString(responseInfo, commandResponse);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void sendTerminalResponseToSimResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void handleStkCallSetupRequestFromSimResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void explicitCallTransferResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setPreferredNetworkTypeResponse(RadioResponseInfo responseInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* Callback of setPreferredNetworkTypeBitmap defined in IRadio.hal.
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setPreferredNetworkTypeBitmapResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param nwType RadioPreferredNetworkType defined in types.hal
|
|
*/
|
|
public void getPreferredNetworkTypeResponse(RadioResponseInfo responseInfo, int nwType) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* Callback of the getPreferredNetworkTypeBitmap defined in the IRadio.hal.
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param halRadioAccessFamilyBitmap a 32-bit bitmap of
|
|
* {@link android.hardware.radio.V1_0.RadioAccessFamily}.
|
|
*/
|
|
public void getPreferredNetworkTypeBitmapResponse(
|
|
RadioResponseInfo responseInfo, int halRadioAccessFamilyBitmap) {
|
|
int networkTypeBitmask = RILUtils.convertHalNetworkTypeBitMask(halRadioAccessFamilyBitmap);
|
|
mRil.mAllowedNetworkTypesBitmask = networkTypeBitmask;
|
|
responseInts(responseInfo, networkTypeBitmask);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param cells Vector of neighboring radio cell information
|
|
*/
|
|
public void getNeighboringCidsResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<NeighboringCell> cells) {
|
|
responseCellList(responseInfo, cells);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setLocationUpdatesResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCdmaSubscriptionSourceResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCdmaRoamingPreferenceResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param type CdmaRoamingType defined in types.hal
|
|
*/
|
|
public void getCdmaRoamingPreferenceResponse(RadioResponseInfo responseInfo, int type) {
|
|
responseInts(responseInfo, type);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setTTYModeResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param mode TTY mode
|
|
*/
|
|
public void getTTYModeResponse(RadioResponseInfo responseInfo, int mode) {
|
|
responseInts(responseInfo, mode);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setPreferredVoicePrivacyResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param enable false for Standard Privacy Mode (Public Long Code Mask)
|
|
* true for Enhanced Privacy Mode (Private Long Code Mask)
|
|
*/
|
|
public void getPreferredVoicePrivacyResponse(RadioResponseInfo responseInfo, boolean enable) {
|
|
responseInts(responseInfo, enable ? 1 : 0);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void sendCDMAFeatureCodeResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void sendBurstDtmfResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param sms Sms result struct as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendCdmaSmsResponse(RadioResponseInfo responseInfo, SendSmsResult sms) {
|
|
responseSms(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error which
|
|
* is defined in 1.6/types.hal
|
|
* @param sms Sms result struct as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendCdmaSmsResponse_1_6(android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
SendSmsResult sms) {
|
|
responseSms_1_6(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param sms Response to sms sent as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendCdmaSmsExpectMoreResponse(RadioResponseInfo responseInfo,
|
|
SendSmsResult sms) {
|
|
responseSms(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error which
|
|
* is defined in 1.6/types.hal
|
|
* @param sms Sms result struct as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendCdmaSmsExpectMoreResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo, SendSmsResult sms) {
|
|
responseSms_1_6(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setDataThrottlingResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo) {
|
|
responseVoid_1_6(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void acknowledgeLastIncomingCdmaSmsResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param configs Vector of GSM/WCDMA Cell broadcast configs
|
|
*/
|
|
public void getGsmBroadcastConfigResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<GsmBroadcastSmsConfigInfo> configs) {
|
|
responseGmsBroadcastConfig(responseInfo, configs);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setGsmBroadcastConfigResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setGsmBroadcastActivationResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param configs Vector of CDMA Broadcast SMS configs.
|
|
*/
|
|
public void getCdmaBroadcastConfigResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<CdmaBroadcastSmsConfigInfo> configs) {
|
|
responseCdmaBroadcastConfig(responseInfo, configs);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCdmaBroadcastConfigResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCdmaBroadcastActivationResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param mdn MDN if CDMA subscription is available
|
|
* @param hSid is a comma separated list of H_SID (Home SID) if
|
|
* CDMA subscription is available, in decimal format
|
|
* @param hNid is a comma separated list of H_NID (Home NID) if
|
|
* CDMA subscription is available, in decimal format
|
|
* @param min MIN (10 digits, MIN2+MIN1) if CDMA subscription is available
|
|
* @param prl PRL version if CDMA subscription is available
|
|
*/
|
|
public void getCDMASubscriptionResponse(RadioResponseInfo responseInfo, String mdn,
|
|
String hSid, String hNid, String min, String prl) {
|
|
responseStrings(responseInfo, mdn, hSid, hNid, min, prl);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param index record index where the cmda sms message is stored
|
|
*/
|
|
public void writeSmsToRuimResponse(RadioResponseInfo responseInfo, int index) {
|
|
responseInts(responseInfo, index);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void deleteSmsOnRuimResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param imei IMEI if GSM subscription is available
|
|
* @param imeisv IMEISV if GSM subscription is available
|
|
* @param esn ESN if CDMA subscription is available
|
|
* @param meid MEID if CDMA subscription is available
|
|
*/
|
|
public void getDeviceIdentityResponse(RadioResponseInfo responseInfo, String imei,
|
|
String imeisv, String esn, String meid) {
|
|
responseStrings(responseInfo, imei, imeisv, esn, meid);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void exitEmergencyCallbackModeResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param smsc Short Message Service Center address on the device
|
|
*/
|
|
public void getSmscAddressResponse(RadioResponseInfo responseInfo, String smsc) {
|
|
responseString(responseInfo, smsc);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setSmscAddressResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void reportSmsMemoryStatusResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void reportStkServiceIsRunningResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param source CDMA subscription source
|
|
*/
|
|
public void getCdmaSubscriptionSourceResponse(RadioResponseInfo responseInfo, int source) {
|
|
responseInts(responseInfo, source);
|
|
}
|
|
|
|
/**
|
|
* This method is deprecated and should not be used.
|
|
*
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param response response string of the challenge/response algo for ISIM auth in base64 format
|
|
*/
|
|
public void requestIsimAuthenticationResponse(RadioResponseInfo responseInfo, String response) {
|
|
throw new RuntimeException("Inexplicable response received for requestIsimAuthentication");
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void acknowledgeIncomingGsmSmsWithPduResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param iccIo IccIoResult as defined in types.hal corresponding to ICC IO response
|
|
*/
|
|
public void sendEnvelopeWithStatusResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.IccIoResult iccIo) {
|
|
responseIccIo(responseInfo, iccIo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param rat Current voice RAT
|
|
*/
|
|
public void getVoiceRadioTechnologyResponse(RadioResponseInfo responseInfo, int rat) {
|
|
responseInts(responseInfo, rat);
|
|
}
|
|
|
|
public void getCellInfoListResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.CellInfo> cellInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param cellInfo List of current cell information known to radio
|
|
*/
|
|
public void getCellInfoListResponse_1_2(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_2.CellInfo> cellInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param cellInfo List of current cell information known to radio.
|
|
*/
|
|
public void getCellInfoListResponse_1_4(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_4.CellInfo> cellInfo) {
|
|
responseCellInfoList(responseInfo, cellInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param cellInfo List of current cell information known to radio.
|
|
*/
|
|
public void getCellInfoListResponse_1_5(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_5.CellInfo> cellInfo) {
|
|
responseCellInfoList(responseInfo, cellInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param cellInfo List of current cell information known to radio.
|
|
*/
|
|
public void getCellInfoListResponse_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_6.CellInfo> cellInfo) {
|
|
responseCellInfoList_1_6(responseInfo, cellInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCellInfoListRateResponse(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
|
|
*/
|
|
public void setInitialAttachApnResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param isRegistered false = not registered, true = registered
|
|
* @param ratFamily RadioTechnologyFamily as defined in types.hal. This value is valid only if
|
|
* isRegistered is true.
|
|
*/
|
|
public void getImsRegistrationStateResponse(RadioResponseInfo responseInfo,
|
|
boolean isRegistered, int ratFamily) {
|
|
responseInts(responseInfo, isRegistered ? 1 : 0,
|
|
ratFamily == RadioTechnologyFamily.THREE_GPP ? PhoneConstants.PHONE_TYPE_GSM
|
|
: PhoneConstants.PHONE_TYPE_CDMA);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param sms Response to sms sent as defined by SendSmsResult in types.hal
|
|
*/
|
|
public void sendImsSmsResponse(RadioResponseInfo responseInfo, SendSmsResult sms) {
|
|
responseSms(responseInfo, sms);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param result IccIoResult as defined in types.hal
|
|
*/
|
|
public void iccTransmitApduBasicChannelResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.IccIoResult result) {
|
|
responseIccIo(responseInfo, result);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param channelId session id of the logical channel.
|
|
* @param selectResponse Contains the select response for the open channel command with one
|
|
* byte per integer
|
|
*/
|
|
public void iccOpenLogicalChannelResponse(RadioResponseInfo responseInfo, int channelId,
|
|
ArrayList<Byte> selectResponse) {
|
|
ArrayList<Integer> arr = new ArrayList<>();
|
|
arr.add(channelId);
|
|
for (int i = 0; i < selectResponse.size(); i++) {
|
|
arr.add((int) selectResponse.get(i));
|
|
}
|
|
responseIntArrayList(responseInfo, arr);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void iccCloseLogicalChannelResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param result IccIoResult as defined in types.hal
|
|
*/
|
|
public void iccTransmitApduLogicalChannelResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.IccIoResult result) {
|
|
responseIccIo(responseInfo, result);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param result string containing the contents of the NV item
|
|
*/
|
|
public void nvReadItemResponse(RadioResponseInfo responseInfo, String result) {
|
|
responseString(responseInfo, result);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void nvWriteItemResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void nvWriteCdmaPrlResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void nvResetConfigResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setUiccSubscriptionResponse(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 getHardwareConfigResponse(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.HardwareConfig> config) {
|
|
responseHardwareConfig(responseInfo, config);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param result IccIoResult as defined in types.hal
|
|
*/
|
|
public void requestIccSimAuthenticationResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.IccIoResult result) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
IccIoResult ret = new IccIoResult(result.sw1, result.sw2,
|
|
TextUtils.isEmpty(result.simResponse) ? null : result.simResponse.getBytes());
|
|
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 setDataProfileResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setDataProfileResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void requestShutdownResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
public void getRadioCapabilityResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.RadioCapability rc) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
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
|
|
// supports based on preferred network bitmasks
|
|
ret = mRil.makeStaticRadioCapability();
|
|
responseInfo.error = RadioError.NONE;
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
public void setRadioCapabilityResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.RadioCapability rc) {
|
|
responseRadioCapability(responseInfo, rc);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param statusInfo LceStatusInfo indicating LCE status
|
|
*/
|
|
public void startLceServiceResponse(RadioResponseInfo responseInfo, LceStatusInfo statusInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param statusInfo LceStatusInfo indicating LCE status
|
|
*/
|
|
public void stopLceServiceResponse(RadioResponseInfo responseInfo, LceStatusInfo statusInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
public void pullLceDataResponse(RadioResponseInfo responseInfo, LceDataInfo lceInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param activityInfo modem activity information
|
|
*/
|
|
public void getModemActivityInfoResponse(RadioResponseInfo responseInfo,
|
|
ActivityStatsInfo activityInfo) {
|
|
responseActivityData(responseInfo, activityInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param isEnabled Indicates whether NR dual connectivity is enabled or not, True if enabled
|
|
* else false.
|
|
*/
|
|
public void isNrDualConnectivityEnabledResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
boolean isEnabled) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, isEnabled);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, isEnabled);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setNrDualConnectivityStateResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param numAllowed number of allowed carriers which have been set correctly.
|
|
* On success, it must match the length of list Carriers->allowedCarriers.
|
|
* if Length of allowed carriers list is 0, numAllowed = 0.
|
|
*/
|
|
public void setAllowedCarriersResponse(RadioResponseInfo responseInfo, int numAllowed) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setAllowedCarriersResponse_1_4(RadioResponseInfo responseInfo) {
|
|
int ret = TelephonyManager.SET_CARRIER_RESTRICTION_ERROR;
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr != null) {
|
|
mRil.riljLog("setAllowedCarriersResponse_1_4 - error = " + responseInfo.error);
|
|
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
ret = TelephonyManager.SET_CARRIER_RESTRICTION_SUCCESS;
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param allAllowed true only when all carriers are allowed. Ignore "carriers" struct.
|
|
* If false, consider "carriers" struct
|
|
* @param carriers Carrier restriction information.
|
|
*/
|
|
public void getAllowedCarriersResponse(RadioResponseInfo responseInfo, boolean allAllowed,
|
|
CarrierRestrictions carriers) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param carrierRestrictions Carrier restriction information.
|
|
* @param multiSimPolicy Policy for multi-sim devices.
|
|
*/
|
|
public void getAllowedCarriersResponse_1_4(RadioResponseInfo responseInfo,
|
|
CarrierRestrictionsWithPriority carrierRestrictions, int multiSimPolicy) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr == null) {
|
|
return;
|
|
}
|
|
|
|
int policy = CarrierRestrictionRules.MULTISIM_POLICY_NONE;
|
|
if (multiSimPolicy == SimLockMultiSimPolicy.ONE_VALID_SIM_MUST_BE_PRESENT) {
|
|
policy = CarrierRestrictionRules.MULTISIM_POLICY_ONE_VALID_SIM_MUST_BE_PRESENT;
|
|
}
|
|
|
|
int carrierRestrictionDefault =
|
|
CarrierRestrictionRules.CARRIER_RESTRICTION_DEFAULT_NOT_ALLOWED;
|
|
if (!carrierRestrictions.allowedCarriersPrioritized) {
|
|
carrierRestrictionDefault = CarrierRestrictionRules.CARRIER_RESTRICTION_DEFAULT_ALLOWED;
|
|
}
|
|
|
|
CarrierRestrictionRules ret = CarrierRestrictionRules.newBuilder()
|
|
.setAllowedCarriers(RILUtils.convertHalCarrierList(
|
|
carrierRestrictions.allowedCarriers))
|
|
.setExcludedCarriers(RILUtils.convertHalCarrierList(
|
|
carrierRestrictions.excludedCarriers))
|
|
.setDefaultCarrierRestriction(carrierRestrictionDefault)
|
|
.setMultiSimPolicy(policy)
|
|
.build();
|
|
|
|
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 sendDeviceStateResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setCarrierInfoForImsiEncryptionResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setIndicationFilterResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setIndicationFilterResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setSimCardPowerResponse(RadioResponseInfo responseInfo) {
|
|
responseNotSupported(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setSignalStrengthReportingCriteriaResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setSignalStrengthReportingCriteriaResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setLinkCapacityReportingCriteriaResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setLinkCapacityReportingCriteriaResponse_1_5(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void setSimCardPowerResponse_1_1(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.V1_1.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);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
*/
|
|
public void getSimPhonebookRecordsResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo) {
|
|
responseVoid_1_6(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param pbCapacity Contains the adn, email, anr capacities in the sim card.
|
|
*/
|
|
public void getSimPhonebookCapacityResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_6.PhonebookCapacity pbCapacity) {
|
|
AdnCapacity capacity = RILUtils.convertHalPhonebookCapacity(pbCapacity);
|
|
responseAdnCapacity(responseInfo, capacity);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param updatedRecordIndex The index of the updated record.
|
|
*/
|
|
public void updateSimPhonebookRecordsResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
int updatedRecordIndex) {
|
|
responseInts_1_6(responseInfo, updatedRecordIndex);
|
|
}
|
|
|
|
private void responseAdnCapacity(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
AdnCapacity capacity) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, capacity);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, capacity);
|
|
}
|
|
}
|
|
|
|
private void responseIccCardStatus(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_4.CardStatus cardStatus) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
IccCardStatus iccCardStatus = RILUtils.convertHalCardStatus(cardStatus.base.base);
|
|
IccSlotPortMapping slotPortMapping = new IccSlotPortMapping();
|
|
slotPortMapping.mPhysicalSlotIndex = cardStatus.base.physicalSlotId;
|
|
iccCardStatus.mSlotPortMapping = slotPortMapping;
|
|
iccCardStatus.atr = cardStatus.base.atr;
|
|
iccCardStatus.iccid = cardStatus.base.iccid;
|
|
iccCardStatus.eid = cardStatus.eid;
|
|
mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, iccCardStatus);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, iccCardStatus);
|
|
}
|
|
}
|
|
|
|
private void responseIccCardStatus_1_5(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_5.CardStatus cardStatus) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
IccCardStatus iccCardStatus = RILUtils.convertHalCardStatus(cardStatus);
|
|
mRil.riljLog("responseIccCardStatus: from HIDL: " + iccCardStatus);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, iccCardStatus);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, iccCardStatus);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void emergencyDialResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
private void responseInts(RadioResponseInfo responseInfo, int ...var) {
|
|
final ArrayList<Integer> ints = new ArrayList<>();
|
|
for (int i = 0; i < var.length; i++) {
|
|
ints.add(var[i]);
|
|
}
|
|
responseIntArrayList(responseInfo, ints);
|
|
}
|
|
|
|
private void responseInts_1_6(android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
int ...var) {
|
|
final ArrayList<Integer> ints = new ArrayList<>();
|
|
for (int i = 0; i < var.length; i++) {
|
|
ints.add(var[i]);
|
|
}
|
|
responseIntArrayList_1_6(responseInfo, ints);
|
|
}
|
|
|
|
/**
|
|
* Send int array response
|
|
* @param service radio service that received the response
|
|
* @param ril RIL to send response
|
|
* @param responseInfo responseInfo
|
|
* @param var response int array
|
|
*/
|
|
public static void responseInts(int service, RIL ril,
|
|
android.hardware.radio.RadioResponseInfo responseInfo, int ...var) {
|
|
final ArrayList<Integer> ints = new ArrayList<>();
|
|
for (int i = 0; i < var.length; i++) {
|
|
ints.add(var[i]);
|
|
}
|
|
responseIntArrayList(service, ril, responseInfo, ints);
|
|
}
|
|
|
|
private void responseIntArrayList(RadioResponseInfo responseInfo, ArrayList<Integer> var) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
int[] ret = new int[var.size()];
|
|
for (int i = 0; i < var.size(); i++) {
|
|
ret[i] = var.get(i);
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseIntArrayList_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo, ArrayList<Integer> var) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
int[] ret = new int[var.size()];
|
|
for (int i = 0; i < var.size(); i++) {
|
|
ret[i] = var.get(i);
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Send int array list response
|
|
* @param service radio service that received the response
|
|
* @param ril RIL to send response
|
|
* @param responseInfo responseInfo
|
|
* @param var response int array list
|
|
*/
|
|
public static void responseIntArrayList(int service, RIL ril,
|
|
android.hardware.radio.RadioResponseInfo responseInfo, ArrayList<Integer> var) {
|
|
RILRequest rr = ril.processResponse(service, responseInfo);
|
|
|
|
if (rr != null) {
|
|
int[] ret = new int[var.size()];
|
|
for (int i = 0; i < var.size(); i++) {
|
|
ret[i] = var.get(i);
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
ril.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseCurrentCalls(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_2.Call> calls) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
int num = calls.size();
|
|
ArrayList<DriverCall> dcCalls = new ArrayList<>(num);
|
|
DriverCall dc;
|
|
|
|
for (int i = 0; i < num; i++) {
|
|
dc = RILUtils.convertToDriverCall(calls.get(i));
|
|
|
|
dcCalls.add(dc);
|
|
|
|
if (dc.isVoicePrivacy) {
|
|
mRil.mVoicePrivacyOnRegistrants.notifyRegistrants();
|
|
mRil.riljLog("InCall VoicePrivacy is enabled");
|
|
} else {
|
|
mRil.mVoicePrivacyOffRegistrants.notifyRegistrants();
|
|
mRil.riljLog("InCall VoicePrivacy is disabled");
|
|
}
|
|
}
|
|
|
|
Collections.sort(dcCalls);
|
|
|
|
if ((num == 0) && mRil.mTestingEmergencyCall.getAndSet(false)) {
|
|
if (mRil.mEmergencyCallbackModeRegistrant != null) {
|
|
mRil.riljLog("responseCurrentCalls: call ended, testing emergency call,"
|
|
+ " notify ECM Registrants");
|
|
mRil.mEmergencyCallbackModeRegistrant.notifyRegistrant();
|
|
}
|
|
}
|
|
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, dcCalls);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, dcCalls);
|
|
}
|
|
}
|
|
|
|
private void responseCurrentCalls_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_6.Call> calls) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
int num = calls.size();
|
|
ArrayList<DriverCall> dcCalls = new ArrayList<DriverCall>(num);
|
|
DriverCall dc;
|
|
|
|
for (int i = 0; i < num; i++) {
|
|
dc = RILUtils.convertToDriverCall(calls.get(i));
|
|
|
|
dcCalls.add(dc);
|
|
|
|
if (dc.isVoicePrivacy) {
|
|
mRil.mVoicePrivacyOnRegistrants.notifyRegistrants();
|
|
mRil.riljLog("InCall VoicePrivacy is enabled");
|
|
} else {
|
|
mRil.mVoicePrivacyOffRegistrants.notifyRegistrants();
|
|
mRil.riljLog("InCall VoicePrivacy is disabled");
|
|
}
|
|
}
|
|
|
|
Collections.sort(dcCalls);
|
|
|
|
if ((num == 0) && mRil.mTestingEmergencyCall.getAndSet(false)) {
|
|
if (mRil.mEmergencyCallbackModeRegistrant != null) {
|
|
mRil.riljLog("responseCurrentCalls: call ended, testing emergency call,"
|
|
+ " notify ECM Registrants");
|
|
mRil.mEmergencyCallbackModeRegistrant.notifyRegistrant();
|
|
}
|
|
}
|
|
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, dcCalls);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, dcCalls);
|
|
}
|
|
}
|
|
|
|
private void responseNotSupported(RadioResponseInfo responseInfo) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr != null) {
|
|
mRil.riljLog(RILUtils.requestToString(rr.mRequest) + "not supported on IRadio < 1.4");
|
|
responseInfo.error = RadioError.REQUEST_NOT_SUPPORTED;
|
|
mRil.processResponseDone(rr, responseInfo, null);
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
private void responseVoid_1_6(android.hardware.radio.V1_6.RadioResponseInfo responseInfo) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
Object ret = null;
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Send void response
|
|
* @param service radio service that received the response
|
|
* @param ril RIL to send response
|
|
* @param responseInfo response void
|
|
*/
|
|
public static void responseVoid(int service, RIL ril,
|
|
android.hardware.radio.RadioResponseInfo responseInfo) {
|
|
RILRequest rr = ril.processResponse(service, responseInfo);
|
|
|
|
if (rr != null) {
|
|
Object ret = null;
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
ril.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseString(RadioResponseInfo responseInfo, String str) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, str);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, str);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Send string response
|
|
* @param service radio service that received the response
|
|
* @param ril RIL to send response
|
|
* @param responseInfo responseInfo
|
|
* @param str response string
|
|
*/
|
|
public static void responseString(int service, RIL ril,
|
|
android.hardware.radio.RadioResponseInfo responseInfo, String str) {
|
|
RILRequest rr = ril.processResponse(service, responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, str);
|
|
}
|
|
ril.processResponseDone(rr, responseInfo, str);
|
|
}
|
|
}
|
|
|
|
private void responseStrings(RadioResponseInfo responseInfo, String ...str) {
|
|
ArrayList<String> strings = new ArrayList<>();
|
|
for (int i = 0; i < str.length; i++) {
|
|
strings.add(str[i]);
|
|
}
|
|
responseStringArrayList(mRil, responseInfo, strings);
|
|
}
|
|
|
|
/**
|
|
* Send String array response
|
|
* @param service radio service that received the response
|
|
* @param ril RIL to send response
|
|
* @param responseInfo responseInfo
|
|
* @param str String array
|
|
*/
|
|
public static void responseStrings(int service, RIL ril,
|
|
android.hardware.radio.RadioResponseInfo responseInfo, String ...str) {
|
|
ArrayList<String> strings = new ArrayList<>();
|
|
for (int i = 0; i < str.length; i++) {
|
|
strings.add(str[i]);
|
|
}
|
|
responseStringArrayList(service, ril, responseInfo, strings);
|
|
}
|
|
|
|
static void responseStringArrayList(RIL ril, RadioResponseInfo responseInfo,
|
|
ArrayList<String> strings) {
|
|
RILRequest rr = ril.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
String[] ret = new String[strings.size()];
|
|
for (int i = 0; i < strings.size(); i++) {
|
|
ret[i] = strings.get(i);
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
ril.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private static void responseStringArrayList(int service, RIL ril,
|
|
android.hardware.radio.RadioResponseInfo responseInfo, ArrayList<String> strings) {
|
|
RILRequest rr = ril.processResponse(service, responseInfo);
|
|
|
|
if (rr != null) {
|
|
String[] ret = new String[strings.size()];
|
|
for (int i = 0; i < strings.size(); i++) {
|
|
ret[i] = strings.get(i);
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
ril.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseLastCallFailCauseInfo(RadioResponseInfo responseInfo,
|
|
LastCallFailCauseInfo fcInfo) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
LastCallFailCause ret = new LastCallFailCause();
|
|
ret.causeCode = fcInfo.causeCode;
|
|
ret.vendorCause = fcInfo.vendorCause;
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseSignalStrength(
|
|
RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_4.SignalStrength signalStrength) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
SignalStrength ret = RILUtils.convertHalSignalStrength(signalStrength);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseSignalStrength_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_6.SignalStrength signalStrength) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
SignalStrength ret = RILUtils.convertHalSignalStrength(signalStrength);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseSms(RadioResponseInfo responseInfo, SendSmsResult sms) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
long messageId = RIL.getOutgoingSmsMessageId(rr.mResult);
|
|
SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode, messageId);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseSms_1_6(android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
SendSmsResult sms) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
long messageId = RIL.getOutgoingSmsMessageId(rr.mResult);
|
|
SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode, messageId);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseSetupDataCall(RadioResponseInfo responseInfo,
|
|
Object 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);
|
|
}
|
|
}
|
|
|
|
private void responseSetupDataCall_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
Object setupDataCallResult) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
DataCallResponse response = RILUtils.convertHalDataCallResult(setupDataCallResult);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, response);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, response);
|
|
}
|
|
}
|
|
|
|
private void responseIccIo(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.IccIoResult result) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
IccIoResult ret = new IccIoResult(result.sw1, result.sw2, result.simResponse);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseCallForwardInfo(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.CallForwardInfo> callForwardInfos) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr != null) {
|
|
CallForwardInfo[] ret = new CallForwardInfo[callForwardInfos.size()];
|
|
for (int i = 0; i < callForwardInfos.size(); i++) {
|
|
ret[i] = new CallForwardInfo();
|
|
ret[i].status = callForwardInfos.get(i).status;
|
|
ret[i].reason = callForwardInfos.get(i).reason;
|
|
ret[i].serviceClass = callForwardInfos.get(i).serviceClass;
|
|
ret[i].toa = callForwardInfos.get(i).toa;
|
|
ret[i].number = callForwardInfos.get(i).number;
|
|
ret[i].timeSeconds = callForwardInfos.get(i).timeSeconds;
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseOperatorInfos(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.OperatorInfo> networkInfos) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ArrayList<OperatorInfo> ret = new ArrayList<OperatorInfo>();
|
|
for (int i = 0; i < networkInfos.size(); i++) {
|
|
ret.add(new OperatorInfo(networkInfos.get(i).alphaLong,
|
|
networkInfos.get(i).alphaShort, networkInfos.get(i).operatorNumeric,
|
|
RILUtils.convertHalOperatorStatus(networkInfos.get(i).status)));
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseScanStatus(RadioResponseInfo responseInfo, HalVersion fallbackHalVersion) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
if (rr == null) {
|
|
return;
|
|
}
|
|
|
|
final boolean needFallback = responseInfo.error == RadioError.REQUEST_NOT_SUPPORTED
|
|
&& fallbackHalVersion != null && rr.mArguments != null && rr.mArguments.length > 0
|
|
&& rr.mArguments[0] instanceof NetworkScanRequest;
|
|
if (needFallback) {
|
|
// Move the data needed for fallback call from rr which will be released soon
|
|
final int request = rr.getRequest();
|
|
final Message result = rr.getResult();
|
|
final NetworkScanRequest scanRequest = (NetworkScanRequest) rr.mArguments[0];
|
|
|
|
mRil.mRilHandler.post(() -> {
|
|
mRil.setCompatVersion(request, RIL.RADIO_HAL_VERSION_1_4);
|
|
mRil.startNetworkScan(scanRequest, result);
|
|
});
|
|
|
|
mRil.processResponseFallback(rr, responseInfo, null);
|
|
return;
|
|
}
|
|
|
|
NetworkScanResult nsr = null;
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
nsr = new NetworkScanResult(
|
|
NetworkScanResult.SCAN_STATUS_PARTIAL, RadioError.NONE, null);
|
|
sendMessageResponse(rr.mResult, nsr);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, nsr);
|
|
}
|
|
|
|
private void responseDataCallList(RadioResponseInfo responseInfo,
|
|
List<? extends Object> 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);
|
|
}
|
|
}
|
|
|
|
private void responseDataCallList(android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
List<? extends Object> dataCallResultList) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ArrayList<DataCallResponse> response =
|
|
RILUtils.convertHalDataCallResultList(dataCallResultList);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, response);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, response);
|
|
}
|
|
}
|
|
|
|
private void responseCellList(RadioResponseInfo responseInfo,
|
|
ArrayList<NeighboringCell> cells) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
int rssi;
|
|
String location;
|
|
ArrayList<NeighboringCellInfo> ret = new ArrayList<NeighboringCellInfo>();
|
|
NeighboringCellInfo cell;
|
|
|
|
int radioType = ((TelephonyManager) mRil.mContext.getSystemService(
|
|
Context.TELEPHONY_SERVICE)).getDataNetworkType(
|
|
SubscriptionManager.getSubscriptionId(mRil.mPhoneId));
|
|
|
|
if (radioType != TelephonyManager.NETWORK_TYPE_UNKNOWN) {
|
|
for (int i = 0; i < cells.size(); i++) {
|
|
rssi = cells.get(i).rssi;
|
|
location = cells.get(i).cid;
|
|
cell = new NeighboringCellInfo(rssi, location, radioType);
|
|
ret.add(cell);
|
|
}
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseGmsBroadcastConfig(RadioResponseInfo responseInfo,
|
|
ArrayList<GsmBroadcastSmsConfigInfo> configs) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ArrayList<SmsBroadcastConfigInfo> ret = new ArrayList<>();
|
|
for (int i = 0; i < configs.size(); i++) {
|
|
ret.add(new SmsBroadcastConfigInfo(configs.get(i).fromServiceId,
|
|
configs.get(i).toServiceId, configs.get(i).fromCodeScheme,
|
|
configs.get(i).toCodeScheme, configs.get(i).selected));
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseCdmaBroadcastConfig(RadioResponseInfo responseInfo,
|
|
ArrayList<CdmaBroadcastSmsConfigInfo> configs) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
int[] ret = null;
|
|
|
|
int numServiceCategories = configs.size();
|
|
|
|
if (numServiceCategories == 0) {
|
|
// TODO: The logic of providing default values should
|
|
// not be done by this transport layer. And needs to
|
|
// be done by the vendor ril or application logic.
|
|
int numInts;
|
|
numInts = RILUtils.CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES
|
|
* RILUtils.CDMA_BSI_NO_OF_INTS_STRUCT + 1;
|
|
ret = new int[numInts];
|
|
|
|
// Faking a default record for all possible records.
|
|
ret[0] = RILUtils.CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES;
|
|
|
|
// Loop over CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES set 'english' as
|
|
// default language and selection status to false for all.
|
|
for (int i = 1; i < numInts; i += RILUtils.CDMA_BSI_NO_OF_INTS_STRUCT) {
|
|
ret[i + 0] = i / RILUtils.CDMA_BSI_NO_OF_INTS_STRUCT;
|
|
ret[i + 1] = 1;
|
|
ret[i + 2] = 0;
|
|
}
|
|
} else {
|
|
int numInts;
|
|
numInts = (numServiceCategories * RILUtils.CDMA_BSI_NO_OF_INTS_STRUCT) + 1;
|
|
ret = new int[numInts];
|
|
|
|
ret[0] = numServiceCategories;
|
|
for (int i = 1, j = 0; j < configs.size();
|
|
j++, i = i + RILUtils.CDMA_BSI_NO_OF_INTS_STRUCT) {
|
|
ret[i] = configs.get(j).serviceCategory;
|
|
ret[i + 1] = configs.get(j).language;
|
|
ret[i + 2] = configs.get(j).selected ? 1 : 0;
|
|
}
|
|
}
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseCellInfoList(RadioResponseInfo responseInfo,
|
|
ArrayList<? extends Object> cellInfo) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList((ArrayList<Object>) cellInfo);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseCellInfoList_1_6(
|
|
android.hardware.radio.V1_6.RadioResponseInfo responseInfo,
|
|
ArrayList<? extends Object> cellInfo) {
|
|
RILRequest rr = mRil.processResponse_1_6(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ArrayList<CellInfo> ret = RILUtils.convertHalCellInfoList((ArrayList<Object>) cellInfo);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseActivityData(RadioResponseInfo responseInfo,
|
|
ActivityStatsInfo activityInfo) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ModemActivityInfo ret = null;
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
final int sleepModeTimeMs = activityInfo.sleepModeTimeMs;
|
|
final int idleModeTimeMs = activityInfo.idleModeTimeMs;
|
|
int [] txModeTimeMs = new int[ModemActivityInfo.getNumTxPowerLevels()];
|
|
for (int i = 0; i < ModemActivityInfo.getNumTxPowerLevels(); i++) {
|
|
txModeTimeMs[i] = activityInfo.txmModetimeMs[i];
|
|
}
|
|
final int rxModeTimeMs = activityInfo.rxModeTimeMs;
|
|
ret = new ModemActivityInfo(SystemClock.elapsedRealtime(), sleepModeTimeMs,
|
|
idleModeTimeMs, txModeTimeMs, rxModeTimeMs);
|
|
} else {
|
|
ret = new ModemActivityInfo(0, 0, 0,
|
|
new int[ModemActivityInfo.getNumTxPowerLevels()], 0);
|
|
responseInfo.error = RadioError.NONE;
|
|
}
|
|
sendMessageResponse(rr.mResult, ret);
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseHardwareConfig(RadioResponseInfo responseInfo,
|
|
ArrayList<android.hardware.radio.V1_0.HardwareConfig> config) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
ArrayList<HardwareConfig> ret = RILUtils.convertHalHardwareConfigList(config);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
private void responseRadioCapability(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_0.RadioCapability rc) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
RadioCapability ret = RILUtils.convertHalRadioCapability(rc, mRil);
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, ret);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial number and error.
|
|
*/
|
|
public void enableModemResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error
|
|
* @param isEnabled whether the modem stack is enabled.
|
|
*/
|
|
public void getModemStackStatusResponse(RadioResponseInfo responseInfo, boolean isEnabled) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, isEnabled);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, isEnabled);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial number and error.
|
|
*/
|
|
public void setSystemSelectionChannelsResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
*/
|
|
public void enableUiccApplicationsResponse(RadioResponseInfo responseInfo) {
|
|
responseVoid(responseInfo);
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param enabled whether Uicc applications are enabled.
|
|
*/
|
|
public void areUiccApplicationsEnabledResponse(RadioResponseInfo responseInfo,
|
|
boolean enabled) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, enabled);
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, enabled);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error.
|
|
*/
|
|
public void setRadioPowerResponse_1_5(RadioResponseInfo info) {
|
|
responseVoid(info);
|
|
mRil.mLastRadioPowerResult = info.error;
|
|
if (info.error != RadioError.RADIO_NOT_AVAILABLE && info.error != RadioError.NONE) {
|
|
AnomalyReporter.reportAnomaly(
|
|
UUID.fromString(RILUtils.RADIO_POWER_FAILURE_BUGREPORT_UUID),
|
|
"Radio power failure");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error.
|
|
*/
|
|
public void setRadioPowerResponse_1_6(android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
mRil.mLastRadioPowerResult = info.error;
|
|
if (info.error == android.hardware.radio.V1_6.RadioError.RF_HARDWARE_ISSUE) {
|
|
AnomalyReporter.reportAnomaly(
|
|
UUID.fromString(RILUtils.RADIO_POWER_FAILURE_RF_HARDWARE_ISSUE_UUID),
|
|
"RF HW damaged");
|
|
} else if (info.error == android.hardware.radio.V1_6.RadioError.NO_RF_CALIBRATION_INFO) {
|
|
AnomalyReporter.reportAnomaly(
|
|
UUID.fromString(RILUtils.RADIO_POWER_FAILURE_NO_RF_CALIBRATION_UUID),
|
|
"No RF calibration data");
|
|
} else if (info.error != android.hardware.radio.V1_6.RadioError.RADIO_NOT_AVAILABLE
|
|
&& info.error != android.hardware.radio.V1_6.RadioError.NONE) {
|
|
AnomalyReporter.reportAnomaly(
|
|
UUID.fromString(RILUtils.RADIO_POWER_FAILURE_BUGREPORT_UUID),
|
|
"Radio power failure");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error.
|
|
*/
|
|
public void setSystemSelectionChannelsResponse_1_5(RadioResponseInfo info) {
|
|
responseVoid(info);
|
|
}
|
|
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error.
|
|
* @param halSpecifiers List of RadioAccessSpecifiers that are scanned.
|
|
*/
|
|
public void getSystemSelectionChannelsResponse(
|
|
android.hardware.radio.V1_6.RadioResponseInfo info,
|
|
ArrayList<android.hardware.radio.V1_5.RadioAccessSpecifier> halSpecifiers) {
|
|
RILRequest rr = mRil.processResponse_1_6(info);
|
|
|
|
if (rr != null) {
|
|
ArrayList<RadioAccessSpecifier> specifiers = new ArrayList<>();
|
|
for (android.hardware.radio.V1_5.RadioAccessSpecifier specifier : halSpecifiers) {
|
|
specifiers.add(RILUtils.convertHalRadioAccessSpecifier(specifier));
|
|
}
|
|
mRil.riljLog("getSystemSelectionChannelsResponse: from HIDL: " + specifiers);
|
|
if (info.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, specifiers);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, info, specifiers);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param responseInfo Response info struct containing response type, serial no. and error.
|
|
* @param cellIdentity CellIdentity for the barringInfos.
|
|
* @param barringInfos List of BarringInfo for all the barring service types.
|
|
*/
|
|
public void getBarringInfoResponse(RadioResponseInfo responseInfo,
|
|
android.hardware.radio.V1_5.CellIdentity cellIdentity,
|
|
ArrayList<android.hardware.radio.V1_5.BarringInfo> barringInfos) {
|
|
RILRequest rr = mRil.processResponse(responseInfo);
|
|
|
|
if (rr != null) {
|
|
BarringInfo bi = new BarringInfo(RILUtils.convertHalCellIdentity(cellIdentity),
|
|
RILUtils.convertHalBarringInfoList(barringInfos));
|
|
if (responseInfo.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, bi);
|
|
// notify all registrants for the possible barring info change
|
|
mRil.mBarringInfoChangedRegistrants.notifyRegistrants(
|
|
new AsyncResult(null, bi, null));
|
|
}
|
|
mRil.processResponseDone(rr, responseInfo, bi);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
* @param id The pdu session id allocated
|
|
*/
|
|
public void allocatePduSessionIdResponse(android.hardware.radio.V1_6.RadioResponseInfo info,
|
|
int id) {
|
|
RILRequest rr = mRil.processResponse_1_6(info);
|
|
if (rr != null) {
|
|
if (info.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, id);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, info, id);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void releasePduSessionIdResponse(android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void startHandoverResponse(android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
*/
|
|
public void cancelHandoverResponse(android.hardware.radio.V1_6.RadioResponseInfo info) {
|
|
responseVoid_1_6(info);
|
|
}
|
|
|
|
/**
|
|
* @param info Response info struct containing response type, serial no. and error
|
|
* @param slicingConfig Current slicing configuration
|
|
*/
|
|
public void getSlicingConfigResponse(android.hardware.radio.V1_6.RadioResponseInfo info,
|
|
android.hardware.radio.V1_6.SlicingConfig slicingConfig) {
|
|
RILRequest rr = mRil.processResponse_1_6(info);
|
|
|
|
if (rr != null) {
|
|
NetworkSlicingConfig ret = RILUtils.convertHalSlicingConfig(slicingConfig);
|
|
if (info.error == RadioError.NONE) {
|
|
sendMessageResponse(rr.mResult, ret);
|
|
}
|
|
mRil.processResponseDone_1_6(rr, info, ret);
|
|
}
|
|
}
|
|
}
|