Add Network Scan helper class
Add a helper class that builds the common interface and performs the
network scan for two different network scan APIs.
Bug: 115401728
Test: Builds & manual test
Merged-In: I48c743270a8adee9a18628f95a8724ea3a40e41d
Change-Id: I48c743270a8adee9a18628f95a8724ea3a40e41d
diff --git a/src/com/android/phone/CellInfoUtil.java b/src/com/android/phone/CellInfoUtil.java
index 462cafe..8272029 100644
--- a/src/com/android/phone/CellInfoUtil.java
+++ b/src/com/android/phone/CellInfoUtil.java
@@ -127,6 +127,35 @@
return oi;
}
+ /**
+ * Creates a CellInfo object from OperatorInfo. GsmCellInfo is used here only because
+ * operatorInfo does not contain technology type while CellInfo is an abstract object that
+ * requires to specify technology type. It doesn't matter which CellInfo type to use here, since
+ * we only want to wrap the operator info and PLMN to a CellInfo object.
+ */
+ public static CellInfo convertOperatorInfoToCellInfo(OperatorInfo operatorInfo) {
+ String operatorNumeric = operatorInfo.getOperatorNumeric();
+ String mcc = null;
+ String mnc = null;
+ if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
+ mcc = operatorNumeric.substring(0, 3);
+ mnc = operatorNumeric.substring(3);
+ }
+ CellIdentityGsm cig = new CellIdentityGsm(
+ Integer.MAX_VALUE /* lac */,
+ Integer.MAX_VALUE /* cid */,
+ Integer.MAX_VALUE /* arfcn */,
+ Integer.MAX_VALUE /* bsic */,
+ mcc,
+ mnc,
+ operatorInfo.getOperatorAlphaLong(),
+ operatorInfo.getOperatorAlphaShort());
+
+ CellInfoGsm ci = new CellInfoGsm();
+ ci.setCellIdentity(cig);
+ return ci;
+ }
+
/** Checks whether the network operator is forbidden. */
public static boolean isForbidden(CellInfo cellInfo, List<String> forbiddenPlmns) {
String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();