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