aboutsummaryrefslogtreecommitdiff
path: root/shadows/framework/src/main/java/org/robolectric/shadows/CellSignalStrengthNrBuilder.java
blob: 4f3f859bc58ef39198f849c8ffbe68e81958017e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package org.robolectric.shadows;

import static org.robolectric.util.reflector.Reflector.reflector;

import android.os.Build;
import android.telephony.CellInfo;
import android.telephony.CellSignalStrengthNr;
import androidx.annotation.RequiresApi;
import java.util.ArrayList;
import java.util.List;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.reflector.Constructor;
import org.robolectric.util.reflector.ForType;

/** Builder for {@link android.telephony.CellSignalStrengthNr} */
@RequiresApi(Build.VERSION_CODES.Q)
public class CellSignalStrengthNrBuilder {

  private int csiRrsp = CellInfo.UNAVAILABLE;
  private int csiRsrq = CellInfo.UNAVAILABLE;
  private int csiSinr = CellInfo.UNAVAILABLE;
  private int csiCqiTableIndex = CellInfo.UNAVAILABLE;
  private List<Byte> csiCqiReport = new ArrayList<>();
  private int ssRsrp = CellInfo.UNAVAILABLE;
  private int ssRsrq = CellInfo.UNAVAILABLE;
  private int ssSinr = CellInfo.UNAVAILABLE;
  private int timingAdvance = CellInfo.UNAVAILABLE;

  private CellSignalStrengthNrBuilder() {}

  public static CellSignalStrengthNrBuilder newBuilder() {
    return new CellSignalStrengthNrBuilder();
  }

  protected static CellSignalStrengthNr getDefaultInstance() {
    return reflector(CellSignalStrengthNrReflector.class).newCellSignalStrengthNr();
  }

  public CellSignalStrengthNrBuilder setCsiRsrp(int csiRrsp) {
    this.csiRrsp = csiRrsp;
    return this;
  }

  public CellSignalStrengthNrBuilder setCsiRsrq(int csiRsrq) {
    this.csiRsrq = csiRsrq;
    return this;
  }

  public CellSignalStrengthNrBuilder setCsiSinr(int csiSinr) {
    this.csiSinr = csiSinr;
    return this;
  }

  public CellSignalStrengthNrBuilder setCsiCqiTableIndex(int csiCqiTableIndex) {
    this.csiCqiTableIndex = csiCqiTableIndex;
    return this;
  }

  public CellSignalStrengthNrBuilder setCsiCqiReport(List<Byte> csiCqiReport) {
    this.csiCqiReport = csiCqiReport;
    return this;
  }

  public CellSignalStrengthNrBuilder setSsRsrp(int ssRsrp) {
    this.ssRsrp = ssRsrp;
    return this;
  }

  public CellSignalStrengthNrBuilder setSsRsrq(int ssRsrq) {
    this.ssRsrq = ssRsrq;
    return this;
  }

  public CellSignalStrengthNrBuilder setSsSinr(int ssSinr) {
    this.ssSinr = ssSinr;
    return this;
  }

  public CellSignalStrengthNrBuilder setTimingAdvance(int timingAdvance) {
    this.timingAdvance = timingAdvance;
    return this;
  }

  public CellSignalStrengthNr build() {
    CellSignalStrengthNrReflector cellSignalStrengthReflector =
        reflector(CellSignalStrengthNrReflector.class);
    if (RuntimeEnvironment.getApiLevel() < Build.VERSION_CODES.TIRAMISU) {
      return cellSignalStrengthReflector.newCellSignalStrengthNr(
          csiRrsp, csiRsrq, csiSinr, ssRsrp, ssRsrq, ssSinr);
    } else if (RuntimeEnvironment.getApiLevel() == Build.VERSION_CODES.TIRAMISU) {
      return cellSignalStrengthReflector.newCellSignalStrengthNr(
          csiRrsp, csiRsrq, csiSinr, csiCqiTableIndex, csiCqiReport, ssRsrp, ssRsrq, ssSinr);
    } else {
      return cellSignalStrengthReflector.newCellSignalStrengthNr(
          csiRrsp,
          csiRsrq,
          csiSinr,
          csiCqiTableIndex,
          csiCqiReport,
          ssRsrp,
          ssRsrq,
          ssSinr,
          timingAdvance);
    }
  }

  @ForType(CellSignalStrengthNr.class)
  private interface CellSignalStrengthNrReflector {

    @Constructor
    CellSignalStrengthNr newCellSignalStrengthNr();

    @Constructor
    CellSignalStrengthNr newCellSignalStrengthNr(
        int csRsrp, int csiRsrq, int csiSinr, int ssRsrp, int ssRsrq, int ssSinr);

    @Constructor
    CellSignalStrengthNr newCellSignalStrengthNr(
        int csRsrp,
        int csiRsrq,
        int csiSinr,
        int csiCqiTableIndex,
        List<Byte> csiCqiReport,
        int ssRsrp,
        int ssRsrq,
        int ssSinr);

    @Constructor
    CellSignalStrengthNr newCellSignalStrengthNr(
        int csRsrp,
        int csiRsrq,
        int csiSinr,
        int csiCqiTableIndex,
        List<Byte> csiCqiReport,
        int ssRsrp,
        int ssRsrq,
        int ssSinr,
        int timingAdvance);
  }
}