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
17package com.android.internal.telephony.metrics;
18
19import com.android.internal.telephony.TelephonyProto.ImsCapabilities;
20import com.android.internal.telephony.TelephonyProto.ImsConnectionState;
21import com.android.internal.telephony.TelephonyProto.ImsReasonInfo;
22import com.android.internal.telephony.TelephonyProto.RilDataCall;
23import com.android.internal.telephony.TelephonyProto.TelephonyCallSession;
24import com.android.internal.telephony.TelephonyProto.TelephonyServiceState;
25import com.android.internal.telephony.TelephonyProto.TelephonySettings;
26
27public class CallSessionEventBuilder {
28    private final TelephonyCallSession.Event mEvent = new TelephonyCallSession.Event();
29
30    public TelephonyCallSession.Event build() {
31        return mEvent;
32    }
33
34    public CallSessionEventBuilder(int type) {
35        mEvent.setType(type);
36    }
37
38    public CallSessionEventBuilder setDelay(int delay) {
39        mEvent.setDelay(delay);
40        return this;
41    }
42
43    public CallSessionEventBuilder setRilRequest(int rilRequestType) {
44        mEvent.setRilRequest(rilRequestType);
45        return this;
46    }
47
48    public CallSessionEventBuilder setRilRequestId(int rilRequestId) {
49        mEvent.setRilRequestId(rilRequestId);
50        return this;
51    }
52
53    public CallSessionEventBuilder setRilError(int rilError) {
54        mEvent.setError(rilError);
55        return this;
56    }
57
58    public CallSessionEventBuilder setCallIndex(int callIndex) {
59        mEvent.setCallIndex(callIndex);
60        return this;
61    }
62
63    public CallSessionEventBuilder setCallState(int state) {
64        mEvent.setCallState(state);
65        return this;
66    }
67
68    public CallSessionEventBuilder setSrvccState(int srvccState) {
69        mEvent.setSrvccState(srvccState);
70        return this;
71    }
72
73    public CallSessionEventBuilder setImsCommand(int imsCommand) {
74        mEvent.setImsCommand(imsCommand);
75        return this;
76    }
77
78    public CallSessionEventBuilder setImsReasonInfo(ImsReasonInfo reasonInfo) {
79        mEvent.reasonInfo = reasonInfo;
80        return this;
81    }
82
83    public CallSessionEventBuilder setSrcAccessTech(int tech) {
84        mEvent.setSrcAccessTech(tech);
85        return this;
86    }
87
88    public CallSessionEventBuilder setTargetAccessTech(int tech) {
89        mEvent.setTargetAccessTech(tech);
90        return this;
91    }
92
93    public CallSessionEventBuilder setSettings(TelephonySettings settings) {
94        mEvent.settings = settings;
95        return this;
96    }
97
98    public CallSessionEventBuilder setServiceState(TelephonyServiceState state) {
99        mEvent.serviceState = state;
100        return this;
101    }
102
103    public CallSessionEventBuilder setImsConnectionState(ImsConnectionState state) {
104        mEvent.imsConnectionState = state;
105        return this;
106    }
107
108    public CallSessionEventBuilder setImsCapabilities(ImsCapabilities capabilities) {
109        mEvent.imsCapabilities = capabilities;
110        return this;
111    }
112
113    public CallSessionEventBuilder setDataCalls(RilDataCall[] dataCalls) {
114        mEvent.dataCalls = dataCalls;
115        return this;
116    }
117
118    public CallSessionEventBuilder setPhoneState(int phoneState) {
119        mEvent.setPhoneState(phoneState);
120        return this;
121    }
122
123    public CallSessionEventBuilder setNITZ(long timestamp) {
124        mEvent.setNitzTimestampMillis(timestamp);
125        return this;
126    }
127}
128