From 45fb10525e8a90860dcef32e0e6ccd51a9e596cb Mon Sep 17 00:00:00 2001 From: Nathan Harold Date: Mon, 4 Dec 2017 09:55:56 -0800 Subject: [PATCH] Construct NeighboringCellInfo from CellInfo As part of removing neighboring cell info this CL adds support for constructing a NeighboringCellInfo object from a CellInfo object. Bug: 62490173 Test: tested manually using SL4A with both O-MR1 and current target SDKs Change-Id: I278487e506b07ab97589da85f69f1188c73b6eb9 --- .../telephony/NeighboringCellInfo.java | 43 ++++++++++++++++--- .../android/telephony/TelephonyManager.java | 2 +- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/telephony/java/android/telephony/NeighboringCellInfo.java b/telephony/java/android/telephony/NeighboringCellInfo.java index 25851e32f6c6b..b7ccee5871d0b 100644 --- a/telephony/java/android/telephony/NeighboringCellInfo.java +++ b/telephony/java/android/telephony/NeighboringCellInfo.java @@ -16,16 +16,16 @@ package android.telephony; -import android.os.Parcel; -import android.os.Parcelable; -import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; import static android.telephony.TelephonyManager.NETWORK_TYPE_EDGE; import static android.telephony.TelephonyManager.NETWORK_TYPE_GPRS; -import static android.telephony.TelephonyManager.NETWORK_TYPE_UMTS; import static android.telephony.TelephonyManager.NETWORK_TYPE_HSDPA; -import static android.telephony.TelephonyManager.NETWORK_TYPE_HSUPA; import static android.telephony.TelephonyManager.NETWORK_TYPE_HSPA; +import static android.telephony.TelephonyManager.NETWORK_TYPE_HSUPA; +import static android.telephony.TelephonyManager.NETWORK_TYPE_UMTS; +import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; +import android.os.Parcel; +import android.os.Parcelable; /** @@ -100,6 +100,39 @@ public class NeighboringCellInfo implements Parcelable mCid = cid; } + /** @hide */ + public NeighboringCellInfo(final CellInfoGsm info) { + mNetworkType = TelephonyManager.NETWORK_TYPE_GPRS; + + mRssi = info.getCellSignalStrength().getAsuLevel(); + if (mRssi == Integer.MAX_VALUE) mRssi = UNKNOWN_RSSI; + + mLac = info.getCellIdentity().getLac(); + if (mLac == Integer.MAX_VALUE) mLac = UNKNOWN_CID; + + mCid = info.getCellIdentity().getCid(); + if (mCid == Integer.MAX_VALUE) mCid = UNKNOWN_CID; + + mPsc = UNKNOWN_CID; + } + + /** @hide */ + public NeighboringCellInfo(final CellInfoWcdma info) { + mNetworkType = TelephonyManager.NETWORK_TYPE_UMTS; + + mRssi = info.getCellSignalStrength().getAsuLevel(); + if (mRssi == Integer.MAX_VALUE) mRssi = UNKNOWN_RSSI; + + mLac = info.getCellIdentity().getLac(); + if (mLac == Integer.MAX_VALUE) mLac = UNKNOWN_CID; + + mCid = info.getCellIdentity().getCid(); + if (mCid == Integer.MAX_VALUE) mCid = UNKNOWN_CID; + + mPsc = info.getCellIdentity().getPsc(); + if (mPsc == Integer.MAX_VALUE) mPsc = UNKNOWN_CID; + } + /** * Initialize the object from rssi, location string, and radioType * radioType is one of following diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 37d56eed7434f..694edcab679ad 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -1462,7 +1462,7 @@ public class TelephonyManager { * @return List of NeighboringCellInfo or null if info unavailable. * * @deprecated Use {@link #getAllCellInfo} which returns a superset of the information - * from NeighboringCellInfo. + * from NeighboringCellInfo, including LTE cell information. */ @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)