1ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian/** 2ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * Copyright (C) 2017 The Android Open Source Project 3ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * 4ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * Licensed under the Apache License, Version 2.0 (the "License"); 5ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * you may not use this file except in compliance with the License. 6ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * You may obtain a copy of the License at 7ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * 8ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * http://www.apache.org/licenses/LICENSE-2.0 9ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * 10ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * Unless required by applicable law or agreed to in writing, software 11ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * distributed under the License is distributed on an "AS IS" BASIS, 12ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * See the License for the specific language governing permissions and 14ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * limitations under the License. 15ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian */ 16ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 17ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qianpackage com.android.internal.telephony; 18ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 19ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qianimport android.hardware.radio.deprecated.V1_0.IOemHookResponse; 20ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qianimport android.hardware.radio.V1_0.RadioError; 21ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qianimport android.hardware.radio.V1_0.RadioResponseInfo; 22ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 23ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qianimport java.util.ArrayList; 24ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 25ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian/** 26ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * Class containing oem hook response callbacks 27ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian */ 28ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qianpublic class OemHookResponse extends IOemHookResponse.Stub { 29ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian RIL mRil; 30ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 31ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian public OemHookResponse(RIL ril) { 32ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian mRil = ril; 33ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian } 34ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 35ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian /** 36ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * @param responseInfo Response info struct containing response type, serial no. and error 37ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * @param data Data returned by oem 38ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian */ 39ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian public void sendRequestRawResponse(RadioResponseInfo responseInfo, ArrayList<Byte> data) { 40ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian RILRequest rr = mRil.processResponse(responseInfo); 41ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 42ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian if (rr != null) { 43ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian byte[] ret = null; 44ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian if (responseInfo.error == RadioError.NONE) { 45ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian ret = RIL.arrayListToPrimitiveArray(data); 46ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian RadioResponse.sendMessageResponse(rr.mResult, ret); 47ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian } 48ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian mRil.processResponseDone(rr, responseInfo, ret); 49ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian } 50ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian } 51ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian 52ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian /** 53ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * @param responseInfo Response info struct containing response type, serial no. and error 54ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian * @param data Data returned by oem 55ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian */ 56ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian public void sendRequestStringsResponse(RadioResponseInfo responseInfo, ArrayList<String> data) { 57ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian RadioResponse.responseStringArrayList(mRil, responseInfo, data); 58ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian } 59ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian} 60