• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 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.telephony.qns.atoms;
18 
19 import android.util.StatsEvent;
20 
21 import com.android.telephony.qns.stats.QnsStatsLog;
22 import com.android.telephony.statslib.AtomsPushed;
23 
24 import java.util.Objects;
25 
26 /** AtomsQualifiedRatListChangedInfo class */
27 public class AtomsQualifiedRatListChangedInfo extends AtomsPushed {
28 
29     /** atom #1 : NetCapability of this Qualified RAT update */
30     private int mNetCapability;
31     /** atom #2 : The most preferred qualified RAT */
32     private int mFirstQualifiedRat;
33     /** atom #3 : Second preferred qualified RAT */
34     private int mSecondQualifiedRat;
35     /** atom #4 : Current actual transport type of Data session for this NetCapability */
36     private int mCurrentTransportType;
37     /** atom #5 : Indicates whether WFC is enabled */
38     private boolean mWfcEnabled;
39     /** atom #6 : Indicates the user's WFC mode */
40     private int mWfcMode;
41     /** atom #7 : Current Cellular AccessNetwork Type */
42     private int mCellularNetworkType;
43     /** atom #8 : Available IWLAN AccessNetwork */
44     private int mIwlanNetworkType;
45     /** atom #9 : Bit mask of restrictions on WWAN */
46     private int mRestrictionsOnWwan;
47     /** atom #10 : Bit mask of restrictions on WLAN */
48     private int mRestrictionsOnWlan;
49     /** atom #11 : Cellular network signal strength {e.g. SSRSRP in NR, RSRP in LTE} */
50     private int mSignalStrength;
51     /** atom #12 : Cellular network signal quality {e.g. SSRSRQ in NR, RSRQ in LTE} */
52     private int mSignalQuality;
53     /** atom #13 : Cellular network signal noise ratio {e.g. SSSINR in NR, RSSNR in LTE} */
54     private int mSignalNoise;
55     /** atom #14 : Iwlan network signal strength (Wi-Fi RSSI) */
56     private int mIwlanSignalStrength;
57     /** atom #15 : Reason for preferred RAT update */
58     private int mUpdateReason;
59     /** atom #16: IMS Call Type */
60     private int mImsCallType;
61     /** atom #17 : IMS Call Quality */
62     private int mImsCallQuality;
63     /** atom #18 : Slot Index */
64     private int mSlotIndex;
65 
66     /** Constructor of AtomsQualifiedRatListChangedInfo */
AtomsQualifiedRatListChangedInfo()67     public AtomsQualifiedRatListChangedInfo() {}
68 
69     /**
70      * Constructor of AtomsQualifiedRatListChangedInfo
71      *
72      * @param netCapability NetCapability of this Qualified RAT update
73      * @param firstQualifiedRat The most preferred qualified RAT
74      * @param secondQualifiedRat Second preferred qualified RAT
75      * @param currentTransportType Current actual transport type of Data session for this
76      *     NetCapability
77      * @param wfcEnabled Indicates whether WFC is enabled
78      * @param wfcMode Indicates the user's WFC mode
79      * @param cellularNetworkType Current Cellular AccessNetwork Type
80      * @param iwlanNetworkType Available IWLAN AccessNetwork
81      * @param restrictionsOnWwan Bit mask of restrictions on WWAN
82      * @param restrictionsOnWlan Bit mask of restrictions on WLAN
83      * @param signalStrength Cellular network signal strength {e.g. SSRSRP in NR, RSRP in LTE, RSCP
84      *     in UMTS}
85      * @param signalQuality Cellular network signal quality {e.g. SSRSRQ in NR, RSRQ in LTE}
86      * @param signalNoise Cellular network signal noise ratio {e.g. SSSINR in NR, RSSNR in LTE}
87      * @param iwlanSignalStrength Iwlan network signal strength (Wi-Fi RSSI)
88      * @param updateReason Reason for preferred RAT update
89      * @param imsCallType Ims Call Type {e.g. IDLE, VOICE, VIDEO, E-CALL}
90      * @param imsCallQuality Ims Call Quality
91      * @param slotIndex Index of sim slot
92      */
AtomsQualifiedRatListChangedInfo( int netCapability, int firstQualifiedRat, int secondQualifiedRat, int currentTransportType, boolean wfcEnabled, int wfcMode, int cellularNetworkType, int iwlanNetworkType, int restrictionsOnWwan, int restrictionsOnWlan, int signalStrength, int signalQuality, int signalNoise, int iwlanSignalStrength, int updateReason, int imsCallType, int imsCallQuality, int slotIndex)93     public AtomsQualifiedRatListChangedInfo(
94             int netCapability,
95             int firstQualifiedRat,
96             int secondQualifiedRat,
97             int currentTransportType,
98             boolean wfcEnabled,
99             int wfcMode,
100             int cellularNetworkType,
101             int iwlanNetworkType,
102             int restrictionsOnWwan,
103             int restrictionsOnWlan,
104             int signalStrength,
105             int signalQuality,
106             int signalNoise,
107             int iwlanSignalStrength,
108             int updateReason,
109             int imsCallType,
110             int imsCallQuality,
111             int slotIndex) {
112         mNetCapability = netCapability;
113         mFirstQualifiedRat = firstQualifiedRat;
114         mSecondQualifiedRat = secondQualifiedRat;
115         mCurrentTransportType = currentTransportType;
116         mWfcEnabled = wfcEnabled;
117         mWfcMode = wfcMode;
118         mCellularNetworkType = cellularNetworkType;
119         mIwlanNetworkType = iwlanNetworkType;
120         mRestrictionsOnWwan = restrictionsOnWwan;
121         mRestrictionsOnWlan = restrictionsOnWlan;
122         mSignalStrength = signalStrength;
123         mSignalQuality = signalQuality;
124         mSignalNoise = signalNoise;
125         mIwlanSignalStrength = iwlanSignalStrength;
126         mUpdateReason = updateReason;
127         mImsCallType = imsCallType;
128         mImsCallQuality = imsCallQuality;
129         mSlotIndex = slotIndex;
130     }
131 
132     /**
133      * Copy Constructor of AtomsQualifiedRatListChangedInfo
134      *
135      * @param info The info param to copy from.
136      */
AtomsQualifiedRatListChangedInfo(AtomsQualifiedRatListChangedInfo info)137     public AtomsQualifiedRatListChangedInfo(AtomsQualifiedRatListChangedInfo info) {
138         mNetCapability = info.mNetCapability;
139         mFirstQualifiedRat = info.mFirstQualifiedRat;
140         mSecondQualifiedRat = info.mSecondQualifiedRat;
141         mCurrentTransportType = info.mCurrentTransportType;
142         mWfcEnabled = info.mWfcEnabled;
143         mWfcMode = info.mWfcMode;
144         mCellularNetworkType = info.mCellularNetworkType;
145         mIwlanNetworkType = info.mIwlanNetworkType;
146         mRestrictionsOnWwan = info.mRestrictionsOnWwan;
147         mRestrictionsOnWlan = info.mRestrictionsOnWlan;
148         mSignalStrength = info.mSignalStrength;
149         mSignalQuality = info.mSignalQuality;
150         mSignalNoise = info.mSignalNoise;
151         mIwlanSignalStrength = info.mIwlanSignalStrength;
152         mUpdateReason = info.mUpdateReason;
153         mImsCallType = info.mImsCallType;
154         mImsCallQuality = info.mImsCallQuality;
155         mSlotIndex = info.mSlotIndex;
156     }
157 
158     /**
159      * Write the atom information to be recorded to the builder according to the type in order.
160      *
161      * @param builder Builder class for StatsEvent Builder object.
162      */
163     @Override
build(StatsEvent.Builder builder)164     public void build(StatsEvent.Builder builder) {
165         builder.writeInt(mNetCapability); // atom #1
166         builder.writeInt(mFirstQualifiedRat); // atom #2
167         builder.writeInt(mSecondQualifiedRat); // atom #3
168         builder.writeInt(mCurrentTransportType); // atom #4
169         builder.writeBoolean(mWfcEnabled); // atom #5
170         builder.writeInt(mWfcMode); // atom #6
171         builder.writeInt(mCellularNetworkType); // atom #7
172         builder.writeInt(mIwlanNetworkType); // atom #8
173         builder.writeInt(mRestrictionsOnWwan); // atom #9
174         builder.writeInt(mRestrictionsOnWlan); // atom #10
175         builder.writeInt(mSignalStrength); // atom #11
176         builder.writeInt(mSignalQuality); // atom #12
177         builder.writeInt(mSignalNoise); // atom #13
178         builder.writeInt(mIwlanSignalStrength); // atom #14
179         builder.writeInt(mUpdateReason); // atom #15
180         builder.writeInt(mImsCallType); // atom #16
181         builder.writeInt(mImsCallQuality); // atom #17
182         builder.writeInt(mSlotIndex); // atom #18
183     }
184 
185     /** Return atom id defined in proto. */
186     @Override
getStatsId()187     public int getStatsId() {
188         return QnsStatsLog.QUALIFIED_RAT_LIST_CHANGED;
189     }
190 
191     /** Return copy of the AtomsQualifiedRatListChangedInfo */
192     @Override
copy()193     public AtomsPushed copy() {
194         return new AtomsQualifiedRatListChangedInfo(this);
195     }
196 
getNetCapability()197     public int getNetCapability() {
198         return mNetCapability;
199     }
200 
setNetCapability(int netCapability)201     public void setNetCapability(int netCapability) {
202         mNetCapability = netCapability;
203     }
204 
getFirstQualifiedRat()205     public int getFirstQualifiedRat() {
206         return mFirstQualifiedRat;
207     }
208 
setFirstQualifiedRat(int firstQualifiedRat)209     public void setFirstQualifiedRat(int firstQualifiedRat) {
210         mFirstQualifiedRat = firstQualifiedRat;
211     }
212 
getSecondQualifiedRat()213     public int getSecondQualifiedRat() {
214         return mSecondQualifiedRat;
215     }
216 
setSecondQualifiedRat(int secondQualifiedRat)217     public void setSecondQualifiedRat(int secondQualifiedRat) {
218         mSecondQualifiedRat = secondQualifiedRat;
219     }
220 
getCurrentTransportType()221     public int getCurrentTransportType() {
222         return mCurrentTransportType;
223     }
224 
setCurrentTransportType(int currentTransportType)225     public void setCurrentTransportType(int currentTransportType) {
226         mCurrentTransportType = currentTransportType;
227     }
228 
getWfcEnabled()229     public boolean getWfcEnabled() {
230         return mWfcEnabled;
231     }
232 
setWfcEnabled(boolean wfcEnabled)233     public void setWfcEnabled(boolean wfcEnabled) {
234         mWfcEnabled = wfcEnabled;
235     }
236 
getWfcMode()237     public int getWfcMode() {
238         return mWfcMode;
239     }
240 
setWfcMode(int wfcMode)241     public void setWfcMode(int wfcMode) {
242         mWfcMode = wfcMode;
243     }
244 
getCellularNetworkType()245     public int getCellularNetworkType() {
246         return mCellularNetworkType;
247     }
248 
setCellularNetworkType(int cellularNetworkType)249     public void setCellularNetworkType(int cellularNetworkType) {
250         mCellularNetworkType = cellularNetworkType;
251     }
252 
getIwlanNetworkType()253     public int getIwlanNetworkType() {
254         return mIwlanNetworkType;
255     }
256 
setIwlanNetworkType(int iwlanNetworkType)257     public void setIwlanNetworkType(int iwlanNetworkType) {
258         mIwlanNetworkType = iwlanNetworkType;
259     }
260 
getRestrictionsOnWwan()261     public int getRestrictionsOnWwan() {
262         return mRestrictionsOnWwan;
263     }
264 
setRestrictionsOnWwan(int restrictionsOnWwan)265     public void setRestrictionsOnWwan(int restrictionsOnWwan) {
266         mRestrictionsOnWwan = restrictionsOnWwan;
267     }
268 
getRestrictionsOnWlan()269     public int getRestrictionsOnWlan() {
270         return mRestrictionsOnWlan;
271     }
272 
setRestrictionsOnWlan(int restrictionsOnWlan)273     public void setRestrictionsOnWlan(int restrictionsOnWlan) {
274         mRestrictionsOnWlan = restrictionsOnWlan;
275     }
276 
getSignalStrength()277     public int getSignalStrength() {
278         return mSignalStrength;
279     }
280 
setSignalStrength(int signalStrength)281     public void setSignalStrength(int signalStrength) {
282         mSignalStrength = signalStrength;
283     }
284 
getSignalQuality()285     public int getSignalQuality() {
286         return mSignalQuality;
287     }
288 
setSignalQuality(int signalQuality)289     public void setSignalQuality(int signalQuality) {
290         mSignalQuality = signalQuality;
291     }
292 
getSignalNoise()293     public int getSignalNoise() {
294         return mSignalNoise;
295     }
296 
setSignalNoise(int signalNoise)297     public void setSignalNoise(int signalNoise) {
298         mSignalNoise = signalNoise;
299     }
300 
getIwlanSignalStrength()301     public int getIwlanSignalStrength() {
302         return mIwlanSignalStrength;
303     }
304 
setIwlanSignalStrength(int iwlanSignalStrength)305     public void setIwlanSignalStrength(int iwlanSignalStrength) {
306         mIwlanSignalStrength = iwlanSignalStrength;
307     }
308 
getUpdateReason()309     public int getUpdateReason() {
310         return mUpdateReason;
311     }
312 
setUpdateReason(int updateReason)313     public void setUpdateReason(int updateReason) {
314         mUpdateReason = updateReason;
315     }
316 
getImsCallType()317     public int getImsCallType() {
318         return mImsCallType;
319     }
320 
setImsCallType(int imsCallType)321     public void setImsCallType(int imsCallType) {
322         mImsCallType = imsCallType;
323     }
324 
getImsCallQuality()325     public int getImsCallQuality() {
326         return mImsCallQuality;
327     }
328 
setImsCallQuality(int imsCallQuality)329     public void setImsCallQuality(int imsCallQuality) {
330         mImsCallQuality = imsCallQuality;
331     }
332 
getSlotIndex()333     public int getSlotIndex() {
334         return mSlotIndex;
335     }
336 
setSlotIndex(int slotIndex)337     public void setSlotIndex(int slotIndex) {
338         mSlotIndex = slotIndex;
339     }
340 
341     @Override
toString()342     public String toString() {
343         return "AtomsQualifiedRatListChangedInfo{"
344                 + "mNetCapability="
345                 + mNetCapability
346                 + ", mFirstQualifiedRat="
347                 + mFirstQualifiedRat
348                 + ", mSecondQualifiedRat="
349                 + mSecondQualifiedRat
350                 + ", mCurrentTransportType="
351                 + mCurrentTransportType
352                 + ", mWfcEnabled="
353                 + mWfcEnabled
354                 + ", mWfcMode="
355                 + mWfcMode
356                 + ", mCellularNetworkType="
357                 + mCellularNetworkType
358                 + ", mIwlanNetworkType="
359                 + mIwlanNetworkType
360                 + ", mRestrictionsOnWwan="
361                 + mRestrictionsOnWwan
362                 + ", mRestrictionsOnWlan="
363                 + mRestrictionsOnWlan
364                 + ", mSignalStrength="
365                 + mSignalStrength
366                 + ", mSignalQuality="
367                 + mSignalQuality
368                 + ", mSignalNoise="
369                 + mSignalNoise
370                 + ", mIwlanSignalStrength="
371                 + mIwlanSignalStrength
372                 + ", mUpdateReason="
373                 + mUpdateReason
374                 + ", mImsCallType="
375                 + mImsCallType
376                 + ", mImsCallQuality="
377                 + mImsCallQuality
378                 + ", mSlotIndex="
379                 + mSlotIndex
380                 + '}';
381     }
382 
383     @Override
equals(Object o)384     public boolean equals(Object o) {
385         if (this == o) return true;
386         if (!(o instanceof AtomsQualifiedRatListChangedInfo)) return false;
387         AtomsQualifiedRatListChangedInfo that = (AtomsQualifiedRatListChangedInfo) o;
388         return mNetCapability == that.mNetCapability
389                 && mFirstQualifiedRat == that.mFirstQualifiedRat
390                 && mSecondQualifiedRat == that.mSecondQualifiedRat
391                 && mCurrentTransportType == that.mCurrentTransportType
392                 && mWfcEnabled == that.mWfcEnabled
393                 && mWfcMode == that.mWfcMode
394                 && mCellularNetworkType == that.mCellularNetworkType
395                 && mIwlanNetworkType == that.mIwlanNetworkType
396                 && mRestrictionsOnWwan == that.mRestrictionsOnWwan
397                 && mRestrictionsOnWlan == that.mRestrictionsOnWlan
398                 && mSignalStrength == that.mSignalStrength
399                 && mSignalQuality == that.mSignalQuality
400                 && mSignalNoise == that.mSignalNoise
401                 && mIwlanSignalStrength == that.mIwlanSignalStrength
402                 && mUpdateReason == that.mUpdateReason
403                 && mImsCallType == that.mImsCallType
404                 && mImsCallQuality == that.mImsCallQuality
405                 && mSlotIndex == that.mSlotIndex;
406     }
407 
408     @Override
hashCode()409     public int hashCode() {
410         return Objects.hash(
411                 mNetCapability,
412                 mFirstQualifiedRat,
413                 mSecondQualifiedRat,
414                 mCurrentTransportType,
415                 mWfcEnabled,
416                 mWfcMode,
417                 mCellularNetworkType,
418                 mIwlanNetworkType,
419                 mRestrictionsOnWwan,
420                 mRestrictionsOnWlan,
421                 mSignalStrength,
422                 mSignalQuality,
423                 mSignalNoise,
424                 mIwlanSignalStrength,
425                 mUpdateReason,
426                 mImsCallType,
427                 mImsCallQuality,
428                 mSlotIndex);
429     }
430 }
431