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