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