1f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu/*
2f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * Copyright (C) 2016 The Android Open Source Project
3f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu *
4f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * Licensed under the Apache License, Version 2.0 (the "License");
5f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * you may not use this file except in compliance with the License.
6f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * You may obtain a copy of the License at
7f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu *
8f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu *      http://www.apache.org/licenses/LICENSE-2.0
9f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu *
10f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * Unless required by applicable law or agreed to in writing, software
11f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * distributed under the License is distributed on an "AS IS" BASIS,
12f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * See the License for the specific language governing permissions and
14f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu * limitations under the License.
15f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu */
16f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
17f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yupackage com.android.internal.telephony.metrics;
18f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
199460a22f3c1ae70dde80e34557d7011be113b39aTamas Berghammerimport com.android.internal.telephony.nano.TelephonyProto.ImsCapabilities;
209460a22f3c1ae70dde80e34557d7011be113b39aTamas Berghammerimport com.android.internal.telephony.nano.TelephonyProto.ImsConnectionState;
219460a22f3c1ae70dde80e34557d7011be113b39aTamas Berghammerimport com.android.internal.telephony.nano.TelephonyProto.RilDataCall;
229460a22f3c1ae70dde80e34557d7011be113b39aTamas Berghammerimport com.android.internal.telephony.nano.TelephonyProto.SmsSession;
239460a22f3c1ae70dde80e34557d7011be113b39aTamas Berghammerimport com.android.internal.telephony.nano.TelephonyProto.TelephonyServiceState;
249460a22f3c1ae70dde80e34557d7011be113b39aTamas Berghammerimport com.android.internal.telephony.nano.TelephonyProto.TelephonySettings;
25f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
26f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yupublic class SmsSessionEventBuilder {
27f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    SmsSession.Event mEvent = new SmsSession.Event();
28f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
29f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSession.Event build() {
30f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return mEvent;
31f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
32f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
33f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder(int type) {
34da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.type = type;
35f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
36f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
37f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setDelay(int delay) {
38da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.delay = delay;
39f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
40f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
41f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
42f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setTech(int tech) {
43da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.tech = tech;
44f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
45f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
46f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
47f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setErrorCode(int code) {
48da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.errorCode = code;
49f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
50f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
51f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
52f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setRilErrno(int errno) {
53da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.error = errno;
54f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
55f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
56f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
57f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setSettings(TelephonySettings settings) {
58f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        mEvent.settings = settings;
59f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
60f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
61f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
62f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setServiceState(TelephonyServiceState state) {
63f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        mEvent.serviceState = state;
64f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
65f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
66f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
67f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setImsConnectionState(ImsConnectionState state) {
68f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        mEvent.imsConnectionState = state;
69f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
70f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
71f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
72f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setImsCapabilities(ImsCapabilities capabilities) {
73f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        mEvent.imsCapabilities = capabilities;
74f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
75f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
76f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
77f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setDataCalls(RilDataCall[] dataCalls) {
78f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        mEvent.dataCalls = dataCalls;
79f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
80f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
81f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
82f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setRilRequestId(int id) {
83da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.rilRequestId = id;
84f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
85f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
86f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu
87f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    public SmsSessionEventBuilder setFormat(int format) {
88da243aa6e2c4285975feb44524603e8b20093e70Jack Yu        mEvent.format = format;
89f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu        return this;
90f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu    }
91f2d0fa64860a12423fb8709766d6af90fba5e6cfJack Yu}
92