Migrate convertHalCellIdentityToCellIdentity()

Remove convertHalCellIdentityToCellIdentity() in
CellularNetworkService, and introduce create() in CellIdentity
for CellIdentity 1.0 and 1.2.

Bug: 146498725
Test: atest CellularNetworkServiceTest
Change-Id: Ibf07f770b377c383ea0c4d3ef2d1d991a37854a9
This commit is contained in:
Mingming Cai
2019-12-19 10:09:38 -08:00
parent 3f5478a3a0
commit f55983a5d5

View File

@@ -16,16 +16,17 @@
package android.telephony;
import com.android.telephony.Rlog;
import android.annotation.CallSuper;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.hardware.radio.V1_0.CellInfoType;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import com.android.telephony.Rlog;
import java.util.Objects;
import java.util.UUID;
@@ -323,6 +324,86 @@ public abstract class CellIdentity implements Parcelable {
return true;
}
/** @hide */
public static CellIdentity create(android.hardware.radio.V1_0.CellIdentity cellIdentity) {
if (cellIdentity == null) return null;
switch(cellIdentity.cellInfoType) {
case CellInfoType.GSM: {
if (cellIdentity.cellIdentityGsm.size() == 1) {
return new CellIdentityGsm(cellIdentity.cellIdentityGsm.get(0));
}
break;
}
case CellInfoType.WCDMA: {
if (cellIdentity.cellIdentityWcdma.size() == 1) {
return new CellIdentityWcdma(cellIdentity.cellIdentityWcdma.get(0));
}
break;
}
case CellInfoType.TD_SCDMA: {
if (cellIdentity.cellIdentityTdscdma.size() == 1) {
return new CellIdentityTdscdma(cellIdentity.cellIdentityTdscdma.get(0));
}
break;
}
case CellInfoType.LTE: {
if (cellIdentity.cellIdentityLte.size() == 1) {
return new CellIdentityLte(cellIdentity.cellIdentityLte.get(0));
}
break;
}
case CellInfoType.CDMA: {
if (cellIdentity.cellIdentityCdma.size() == 1) {
return new CellIdentityCdma(cellIdentity.cellIdentityCdma.get(0));
}
break;
}
case CellInfoType.NONE: break;
default: break;
}
return null;
}
/** @hide */
public static CellIdentity create(android.hardware.radio.V1_2.CellIdentity cellIdentity) {
if (cellIdentity == null) return null;
switch(cellIdentity.cellInfoType) {
case CellInfoType.GSM: {
if (cellIdentity.cellIdentityGsm.size() == 1) {
return new CellIdentityGsm(cellIdentity.cellIdentityGsm.get(0));
}
break;
}
case CellInfoType.WCDMA: {
if (cellIdentity.cellIdentityWcdma.size() == 1) {
return new CellIdentityWcdma(cellIdentity.cellIdentityWcdma.get(0));
}
break;
}
case CellInfoType.TD_SCDMA: {
if (cellIdentity.cellIdentityTdscdma.size() == 1) {
return new CellIdentityTdscdma(cellIdentity.cellIdentityTdscdma.get(0));
}
break;
}
case CellInfoType.LTE: {
if (cellIdentity.cellIdentityLte.size() == 1) {
return new CellIdentityLte(cellIdentity.cellIdentityLte.get(0));
}
break;
}
case CellInfoType.CDMA: {
if (cellIdentity.cellIdentityCdma.size() == 1) {
return new CellIdentityCdma(cellIdentity.cellIdentityCdma.get(0));
}
break;
}
case CellInfoType.NONE: break;
default: break;
}
return null;
}
/** @hide */
public static CellIdentity create(android.hardware.radio.V1_5.CellIdentity ci) {
if (ci == null) return null;