1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.telephony.metrics;
18 
19 import com.android.internal.telephony.nano.TelephonyProto.ImsCapabilities;
20 import com.android.internal.telephony.nano.TelephonyProto.ImsConnectionState;
21 import com.android.internal.telephony.nano.TelephonyProto.ImsReasonInfo;
22 import com.android.internal.telephony.nano.TelephonyProto.RilDataCall;
23 import com.android.internal.telephony.nano.TelephonyProto.TelephonyCallSession;
24 import com.android.internal.telephony.nano.TelephonyProto.TelephonyCallSession.Event.RilCall;
25 import com.android.internal.telephony.nano.TelephonyProto.TelephonyServiceState;
26 import com.android.internal.telephony.nano.TelephonyProto.TelephonySettings;
27 
28 public class CallSessionEventBuilder {
29     private final TelephonyCallSession.Event mEvent = new TelephonyCallSession.Event();
30 
build()31     public TelephonyCallSession.Event build() {
32         return mEvent;
33     }
34 
CallSessionEventBuilder(int type)35     public CallSessionEventBuilder(int type) {
36         mEvent.type = type;
37     }
38 
setDelay(int delay)39     public CallSessionEventBuilder setDelay(int delay) {
40         mEvent.delay = delay;
41         return this;
42     }
43 
setRilRequest(int rilRequestType)44     public CallSessionEventBuilder setRilRequest(int rilRequestType) {
45         mEvent.rilRequest = rilRequestType;
46         return this;
47     }
48 
setRilRequestId(int rilRequestId)49     public CallSessionEventBuilder setRilRequestId(int rilRequestId) {
50         mEvent.rilRequestId = rilRequestId;
51         return this;
52     }
53 
setRilError(int rilError)54     public CallSessionEventBuilder setRilError(int rilError) {
55         mEvent.error = rilError;
56         return this;
57     }
58 
setCallIndex(int callIndex)59     public CallSessionEventBuilder setCallIndex(int callIndex) {
60         mEvent.callIndex = callIndex;
61         return this;
62     }
63 
setCallState(int state)64     public CallSessionEventBuilder setCallState(int state) {
65         mEvent.callState = state;
66         return this;
67     }
68 
setSrvccState(int srvccState)69     public CallSessionEventBuilder setSrvccState(int srvccState) {
70         mEvent.srvccState = srvccState;
71         return this;
72     }
73 
setImsCommand(int imsCommand)74     public CallSessionEventBuilder setImsCommand(int imsCommand) {
75         mEvent.imsCommand = imsCommand;
76         return this;
77     }
78 
setImsReasonInfo(ImsReasonInfo reasonInfo)79     public CallSessionEventBuilder setImsReasonInfo(ImsReasonInfo reasonInfo) {
80         mEvent.reasonInfo = reasonInfo;
81         return this;
82     }
83 
setSrcAccessTech(int tech)84     public CallSessionEventBuilder setSrcAccessTech(int tech) {
85         mEvent.srcAccessTech = tech;
86         return this;
87     }
88 
setTargetAccessTech(int tech)89     public CallSessionEventBuilder setTargetAccessTech(int tech) {
90         mEvent.targetAccessTech = tech;
91         return this;
92     }
93 
setSettings(TelephonySettings settings)94     public CallSessionEventBuilder setSettings(TelephonySettings settings) {
95         mEvent.settings = settings;
96         return this;
97     }
98 
setServiceState(TelephonyServiceState state)99     public CallSessionEventBuilder setServiceState(TelephonyServiceState state) {
100         mEvent.serviceState = state;
101         return this;
102     }
103 
setImsConnectionState(ImsConnectionState state)104     public CallSessionEventBuilder setImsConnectionState(ImsConnectionState state) {
105         mEvent.imsConnectionState = state;
106         return this;
107     }
108 
setImsCapabilities(ImsCapabilities capabilities)109     public CallSessionEventBuilder setImsCapabilities(ImsCapabilities capabilities) {
110         mEvent.imsCapabilities = capabilities;
111         return this;
112     }
113 
setDataCalls(RilDataCall[] dataCalls)114     public CallSessionEventBuilder setDataCalls(RilDataCall[] dataCalls) {
115         mEvent.dataCalls = dataCalls;
116         return this;
117     }
118 
setPhoneState(int phoneState)119     public CallSessionEventBuilder setPhoneState(int phoneState) {
120         mEvent.phoneState = phoneState;
121         return this;
122     }
123 
setNITZ(long timestamp)124     public CallSessionEventBuilder setNITZ(long timestamp) {
125         mEvent.nitzTimestampMillis = timestamp;
126         return this;
127     }
128 
setRilCalls(RilCall[] rilCalls)129     public CallSessionEventBuilder setRilCalls(RilCall[] rilCalls) {
130         mEvent.calls = rilCalls;
131         return this;
132     }
133 }
134