Merge "Add Class-Filtered getCellSignalStrengths"

am: c020cf5291

Change-Id: Ie0ac23b554267ab39078ed28ba220986d4773599
This commit is contained in:
Nathan Harold
2019-02-22 13:19:17 -08:00
committed by android-build-merger
2 changed files with 47 additions and 7 deletions

View File

@@ -42762,6 +42762,7 @@ package android.telephony {
method @Deprecated public int getCdmaDbm();
method @Deprecated public int getCdmaEcio();
method @NonNull public java.util.List<android.telephony.CellSignalStrength> getCellSignalStrengths();
method public <T extends android.telephony.CellSignalStrength> java.util.List<T> getCellSignalStrengths(@NonNull Class<T>);
method @Deprecated public int getEvdoDbm();
method @Deprecated public int getEvdoEcio();
method @Deprecated public int getEvdoSnr();

View File

@@ -215,13 +215,52 @@ public class SignalStrength implements Parcelable {
* @see android.telephony#CellSignalStrengthGsm
*/
public @NonNull List<CellSignalStrength> getCellSignalStrengths() {
List<CellSignalStrength> cssList = new ArrayList<>(2); // Usually have 2 or fewer elems
if (mLte.isValid()) cssList.add(mLte);
if (mCdma.isValid()) cssList.add(mCdma);
if (mTdscdma.isValid()) cssList.add(mTdscdma);
if (mWcdma.isValid()) cssList.add(mWcdma);
if (mGsm.isValid()) cssList.add(mGsm);
if (mNr.isValid()) cssList.add(mNr);
return getCellSignalStrengths(CellSignalStrength.class);
}
/**
* Returns a List of CellSignalStrength Components of this SignalStrength Report.
*
* Use this API to access underlying
* {@link android.telephony#CellSignalStrength CellSignalStrength} objects that provide more
* granular information about the SignalStrength report. Only valid (non-empty)
* CellSignalStrengths will be returned. The order of any returned elements is not guaranteed,
* and the list may contain more than one instance of a CellSignalStrength type.
*
* @param clazz a class type that extends
* {@link android.telephony.CellSignalStrength CellSignalStrength} to filter possible
* return values.
* @return a List of CellSignalStrength or an empty List if there are no valid measurements.
*
* @see android.telephony#CellSignalStrength
* @see android.telephony#CellSignalStrengthNr
* @see android.telephony#CellSignalStrengthLte
* @see android.telephony#CellSignalStrengthTdscdma
* @see android.telephony#CellSignalStrengthWcdma
* @see android.telephony#CellSignalStrengthCdma
* @see android.telephony#CellSignalStrengthGsm
*/
public <T extends CellSignalStrength> @NonNull List<T> getCellSignalStrengths(
@NonNull Class<T> clazz) {
List<T> cssList = new ArrayList<>(2); // Usually have 2 or fewer elems
if (mLte.isValid() && clazz.isAssignableFrom(CellSignalStrengthLte.class)) {
cssList.add((T) mLte);
}
if (mCdma.isValid() && clazz.isAssignableFrom(CellSignalStrengthCdma.class)) {
cssList.add((T) mCdma);
}
if (mTdscdma.isValid() && clazz.isAssignableFrom(CellSignalStrengthTdscdma.class)) {
cssList.add((T) mTdscdma);
}
if (mWcdma.isValid() && clazz.isAssignableFrom(CellSignalStrengthWcdma.class)) {
cssList.add((T) mWcdma);
}
if (mGsm.isValid() && clazz.isAssignableFrom(CellSignalStrengthGsm.class)) {
cssList.add((T) mGsm);
}
if (mNr.isValid() && clazz.isAssignableFrom(CellSignalStrengthNr.class)) {
cssList.add((T) mNr);
}
return cssList;
}