Loading telephony/java/android/telephony/CellIdentity.java +19 −0 Original line number Original line Diff line number Diff line Loading @@ -243,4 +243,23 @@ public abstract class CellIdentity implements Parcelable { protected void log(String s) { protected void log(String s) { Rlog.w(mTag, s); Rlog.w(mTag, s); } } /** @hide */ protected static final int inRangeOrUnavailable(int value, int rangeMin, int rangeMax) { if (value < rangeMin || value > rangeMax) return CellInfo.UNAVAILABLE; return value; } /** @hide */ protected static final long inRangeOrUnavailable(long value, long rangeMin, long rangeMax) { if (value < rangeMin || value > rangeMax) return CellInfo.UNAVAILABLE_LONG; return value; } /** @hide */ protected static final int inRangeOrUnavailable( int value, int rangeMin, int rangeMax, int special) { if ((value < rangeMin || value > rangeMax) && value != special) return CellInfo.UNAVAILABLE; return value; } } } telephony/java/android/telephony/CellIdentityCdma.java +20 −3 Original line number Original line Diff line number Diff line Loading @@ -28,12 +28,25 @@ public final class CellIdentityCdma extends CellIdentity { private static final String TAG = CellIdentityCdma.class.getSimpleName(); private static final String TAG = CellIdentityCdma.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = false; private static final int NETWORK_ID_MAX = 65535; private static final int SYSTEM_ID_MAX = 32767; private static final int BASESTATION_ID_MAX = 65535; private static final int LONGITUDE_MIN = -2592000; private static final int LONGITUDE_MAX = 2592000; private static final int LATITUDE_MIN = -1296000; private static final int LATITUDE_MAX = 1296000; // Network Id 0..65535 // Network Id 0..65535 private final int mNetworkId; private final int mNetworkId; // CDMA System Id 0..32767 // CDMA System Id 0..32767 private final int mSystemId; private final int mSystemId; // Base Station Id 0..65535 // Base Station Id 0..65535 private final int mBasestationId; private final int mBasestationId; /** /** * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * It is represented in units of 0.25 seconds and ranges from -2592000 * It is represented in units of 0.25 seconds and ranges from -2592000 Loading @@ -41,6 +54,7 @@ public final class CellIdentityCdma extends CellIdentity { * to +180 degrees). * to +180 degrees). */ */ private final int mLongitude; private final int mLongitude; /** /** * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * It is represented in units of 0.25 seconds and ranges from -1296000 * It is represented in units of 0.25 seconds and ranges from -1296000 Loading Loading @@ -78,9 +92,12 @@ public final class CellIdentityCdma extends CellIdentity { public CellIdentityCdma( public CellIdentityCdma( int nid, int sid, int bid, int lon, int lat, String alphal, String alphas) { int nid, int sid, int bid, int lon, int lat, String alphal, String alphas) { super(TAG, CellInfo.TYPE_CDMA, null, null, alphal, alphas); super(TAG, CellInfo.TYPE_CDMA, null, null, alphal, alphas); mNetworkId = nid; mNetworkId = inRangeOrUnavailable(nid, 0, NETWORK_ID_MAX); mSystemId = sid; mSystemId = inRangeOrUnavailable(sid, 0, SYSTEM_ID_MAX); mBasestationId = bid; mBasestationId = inRangeOrUnavailable(bid, 0, BASESTATION_ID_MAX); lat = inRangeOrUnavailable(lat, LATITUDE_MIN, LATITUDE_MAX); lon = inRangeOrUnavailable(lon, LONGITUDE_MIN, LONGITUDE_MAX); if (!isNullIsland(lat, lon)) { if (!isNullIsland(lat, lon)) { mLongitude = lon; mLongitude = lon; mLatitude = lat; mLatitude = lat; Loading telephony/java/android/telephony/CellIdentityGsm.java +9 −4 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,11 @@ public final class CellIdentityGsm extends CellIdentity { private static final String TAG = CellIdentityGsm.class.getSimpleName(); private static final String TAG = CellIdentityGsm.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = false; private static final int MAX_LAC = 65535; private static final int MAX_CID = 65535; private static final int MAX_ARFCN = 65535; private static final int MAX_BSIC = 63; // 16-bit Location Area Code, 0..65535 // 16-bit Location Area Code, 0..65535 private final int mLac; private final int mLac; // 16-bit GSM Cell Identity described in TS 27.007, 0..65535 // 16-bit GSM Cell Identity described in TS 27.007, 0..65535 Loading Loading @@ -68,10 +73,10 @@ public final class CellIdentityGsm extends CellIdentity { public CellIdentityGsm(int lac, int cid, int arfcn, int bsic, String mccStr, public CellIdentityGsm(int lac, int cid, int arfcn, int bsic, String mccStr, String mncStr, String alphal, String alphas) { String mncStr, String alphal, String alphas) { super(TAG, CellInfo.TYPE_GSM, mccStr, mncStr, alphal, alphas); super(TAG, CellInfo.TYPE_GSM, mccStr, mncStr, alphal, alphas); mLac = lac; mLac = inRangeOrUnavailable(lac, 0, MAX_LAC); mCid = cid; mCid = inRangeOrUnavailable(cid, 0, MAX_CID); mArfcn = arfcn; mArfcn = inRangeOrUnavailable(arfcn, 0, MAX_ARFCN); mBsic = bsic; mBsic = inRangeOrUnavailable(bsic, 0, MAX_BSIC); } } /** @hide */ /** @hide */ Loading telephony/java/android/telephony/CellIdentityLte.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,12 @@ public final class CellIdentityLte extends CellIdentity { private static final String TAG = CellIdentityLte.class.getSimpleName(); private static final String TAG = CellIdentityLte.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = false; private static final int MAX_CI = 268435455; private static final int MAX_PCI = 503; private static final int MAX_TAC = 65535; private static final int MAX_EARFCN = 262143; private static final int MAX_BANDWIDTH = 20000; // 28-bit cell identity // 28-bit cell identity private final int mCi; private final int mCi; // physical cell id 0..503 // physical cell id 0..503 Loading Loading @@ -89,11 +95,11 @@ public final class CellIdentityLte extends CellIdentity { public CellIdentityLte(int ci, int pci, int tac, int earfcn, int bandwidth, String mccStr, public CellIdentityLte(int ci, int pci, int tac, int earfcn, int bandwidth, String mccStr, String mncStr, String alphal, String alphas) { String mncStr, String alphal, String alphas) { super(TAG, CellInfo.TYPE_LTE, mccStr, mncStr, alphal, alphas); super(TAG, CellInfo.TYPE_LTE, mccStr, mncStr, alphal, alphas); mCi = ci; mCi = inRangeOrUnavailable(ci, 0, MAX_CI); mPci = pci; mPci = inRangeOrUnavailable(pci, 0, MAX_PCI); mTac = tac; mTac = inRangeOrUnavailable(tac, 0, MAX_TAC); mEarfcn = earfcn; mEarfcn = inRangeOrUnavailable(earfcn, 0, MAX_EARFCN); mBandwidth = bandwidth; mBandwidth = inRangeOrUnavailable(bandwidth, 0, MAX_BANDWIDTH); } } /** @hide */ /** @hide */ Loading telephony/java/android/telephony/CellIdentityNr.java +10 −4 Original line number Original line Diff line number Diff line Loading @@ -29,6 +29,11 @@ import java.util.Objects; public final class CellIdentityNr extends CellIdentity { public final class CellIdentityNr extends CellIdentity { private static final String TAG = "CellIdentityNr"; private static final String TAG = "CellIdentityNr"; private static final int MAX_PCI = 1007; private static final int MAX_TAC = 65535; private static final int MAX_NRARFCN = 3279165; private static final long MAX_NCI = 68719476735L; private final int mNrArfcn; private final int mNrArfcn; private final int mPci; private final int mPci; private final int mTac; private final int mTac; Loading @@ -41,6 +46,7 @@ public final class CellIdentityNr extends CellIdentity { * @param nrArfcn NR Absolute Radio Frequency Channel Number, in range [0, 3279165]. * @param nrArfcn NR Absolute Radio Frequency Channel Number, in range [0, 3279165]. * @param mccStr 3-digit Mobile Country Code in string format. * @param mccStr 3-digit Mobile Country Code in string format. * @param mncStr 2 or 3-digit Mobile Network Code in string format. * @param mncStr 2 or 3-digit Mobile Network Code in string format. * @param nci The 36-bit NR Cell Identity in range [0, 68719476735]. * @param alphal long alpha Operator Name String or Enhanced Operator Name String. * @param alphal long alpha Operator Name String or Enhanced Operator Name String. * @param alphas short alpha Operator Name String or Enhanced Operator Name String. * @param alphas short alpha Operator Name String or Enhanced Operator Name String. * * Loading @@ -49,10 +55,10 @@ public final class CellIdentityNr extends CellIdentity { public CellIdentityNr(int pci, int tac, int nrArfcn, String mccStr, String mncStr, public CellIdentityNr(int pci, int tac, int nrArfcn, String mccStr, String mncStr, long nci, String alphal, String alphas) { long nci, String alphal, String alphas) { super(TAG, CellInfo.TYPE_NR, mccStr, mncStr, alphal, alphas); super(TAG, CellInfo.TYPE_NR, mccStr, mncStr, alphal, alphas); mPci = pci; mPci = inRangeOrUnavailable(pci, 0, MAX_PCI); mTac = tac; mTac = inRangeOrUnavailable(tac, 0, MAX_TAC); mNrArfcn = nrArfcn; mNrArfcn = inRangeOrUnavailable(nrArfcn, 0, MAX_NRARFCN); mNci = nci; mNci = inRangeOrUnavailable(nci, 0, MAX_NCI); } } /** @hide */ /** @hide */ Loading Loading
telephony/java/android/telephony/CellIdentity.java +19 −0 Original line number Original line Diff line number Diff line Loading @@ -243,4 +243,23 @@ public abstract class CellIdentity implements Parcelable { protected void log(String s) { protected void log(String s) { Rlog.w(mTag, s); Rlog.w(mTag, s); } } /** @hide */ protected static final int inRangeOrUnavailable(int value, int rangeMin, int rangeMax) { if (value < rangeMin || value > rangeMax) return CellInfo.UNAVAILABLE; return value; } /** @hide */ protected static final long inRangeOrUnavailable(long value, long rangeMin, long rangeMax) { if (value < rangeMin || value > rangeMax) return CellInfo.UNAVAILABLE_LONG; return value; } /** @hide */ protected static final int inRangeOrUnavailable( int value, int rangeMin, int rangeMax, int special) { if ((value < rangeMin || value > rangeMax) && value != special) return CellInfo.UNAVAILABLE; return value; } } }
telephony/java/android/telephony/CellIdentityCdma.java +20 −3 Original line number Original line Diff line number Diff line Loading @@ -28,12 +28,25 @@ public final class CellIdentityCdma extends CellIdentity { private static final String TAG = CellIdentityCdma.class.getSimpleName(); private static final String TAG = CellIdentityCdma.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = false; private static final int NETWORK_ID_MAX = 65535; private static final int SYSTEM_ID_MAX = 32767; private static final int BASESTATION_ID_MAX = 65535; private static final int LONGITUDE_MIN = -2592000; private static final int LONGITUDE_MAX = 2592000; private static final int LATITUDE_MIN = -1296000; private static final int LATITUDE_MAX = 1296000; // Network Id 0..65535 // Network Id 0..65535 private final int mNetworkId; private final int mNetworkId; // CDMA System Id 0..32767 // CDMA System Id 0..32767 private final int mSystemId; private final int mSystemId; // Base Station Id 0..65535 // Base Station Id 0..65535 private final int mBasestationId; private final int mBasestationId; /** /** * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * It is represented in units of 0.25 seconds and ranges from -2592000 * It is represented in units of 0.25 seconds and ranges from -2592000 Loading @@ -41,6 +54,7 @@ public final class CellIdentityCdma extends CellIdentity { * to +180 degrees). * to +180 degrees). */ */ private final int mLongitude; private final int mLongitude; /** /** * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. * It is represented in units of 0.25 seconds and ranges from -1296000 * It is represented in units of 0.25 seconds and ranges from -1296000 Loading Loading @@ -78,9 +92,12 @@ public final class CellIdentityCdma extends CellIdentity { public CellIdentityCdma( public CellIdentityCdma( int nid, int sid, int bid, int lon, int lat, String alphal, String alphas) { int nid, int sid, int bid, int lon, int lat, String alphal, String alphas) { super(TAG, CellInfo.TYPE_CDMA, null, null, alphal, alphas); super(TAG, CellInfo.TYPE_CDMA, null, null, alphal, alphas); mNetworkId = nid; mNetworkId = inRangeOrUnavailable(nid, 0, NETWORK_ID_MAX); mSystemId = sid; mSystemId = inRangeOrUnavailable(sid, 0, SYSTEM_ID_MAX); mBasestationId = bid; mBasestationId = inRangeOrUnavailable(bid, 0, BASESTATION_ID_MAX); lat = inRangeOrUnavailable(lat, LATITUDE_MIN, LATITUDE_MAX); lon = inRangeOrUnavailable(lon, LONGITUDE_MIN, LONGITUDE_MAX); if (!isNullIsland(lat, lon)) { if (!isNullIsland(lat, lon)) { mLongitude = lon; mLongitude = lon; mLatitude = lat; mLatitude = lat; Loading
telephony/java/android/telephony/CellIdentityGsm.java +9 −4 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,11 @@ public final class CellIdentityGsm extends CellIdentity { private static final String TAG = CellIdentityGsm.class.getSimpleName(); private static final String TAG = CellIdentityGsm.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = false; private static final int MAX_LAC = 65535; private static final int MAX_CID = 65535; private static final int MAX_ARFCN = 65535; private static final int MAX_BSIC = 63; // 16-bit Location Area Code, 0..65535 // 16-bit Location Area Code, 0..65535 private final int mLac; private final int mLac; // 16-bit GSM Cell Identity described in TS 27.007, 0..65535 // 16-bit GSM Cell Identity described in TS 27.007, 0..65535 Loading Loading @@ -68,10 +73,10 @@ public final class CellIdentityGsm extends CellIdentity { public CellIdentityGsm(int lac, int cid, int arfcn, int bsic, String mccStr, public CellIdentityGsm(int lac, int cid, int arfcn, int bsic, String mccStr, String mncStr, String alphal, String alphas) { String mncStr, String alphal, String alphas) { super(TAG, CellInfo.TYPE_GSM, mccStr, mncStr, alphal, alphas); super(TAG, CellInfo.TYPE_GSM, mccStr, mncStr, alphal, alphas); mLac = lac; mLac = inRangeOrUnavailable(lac, 0, MAX_LAC); mCid = cid; mCid = inRangeOrUnavailable(cid, 0, MAX_CID); mArfcn = arfcn; mArfcn = inRangeOrUnavailable(arfcn, 0, MAX_ARFCN); mBsic = bsic; mBsic = inRangeOrUnavailable(bsic, 0, MAX_BSIC); } } /** @hide */ /** @hide */ Loading
telephony/java/android/telephony/CellIdentityLte.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,12 @@ public final class CellIdentityLte extends CellIdentity { private static final String TAG = CellIdentityLte.class.getSimpleName(); private static final String TAG = CellIdentityLte.class.getSimpleName(); private static final boolean DBG = false; private static final boolean DBG = false; private static final int MAX_CI = 268435455; private static final int MAX_PCI = 503; private static final int MAX_TAC = 65535; private static final int MAX_EARFCN = 262143; private static final int MAX_BANDWIDTH = 20000; // 28-bit cell identity // 28-bit cell identity private final int mCi; private final int mCi; // physical cell id 0..503 // physical cell id 0..503 Loading Loading @@ -89,11 +95,11 @@ public final class CellIdentityLte extends CellIdentity { public CellIdentityLte(int ci, int pci, int tac, int earfcn, int bandwidth, String mccStr, public CellIdentityLte(int ci, int pci, int tac, int earfcn, int bandwidth, String mccStr, String mncStr, String alphal, String alphas) { String mncStr, String alphal, String alphas) { super(TAG, CellInfo.TYPE_LTE, mccStr, mncStr, alphal, alphas); super(TAG, CellInfo.TYPE_LTE, mccStr, mncStr, alphal, alphas); mCi = ci; mCi = inRangeOrUnavailable(ci, 0, MAX_CI); mPci = pci; mPci = inRangeOrUnavailable(pci, 0, MAX_PCI); mTac = tac; mTac = inRangeOrUnavailable(tac, 0, MAX_TAC); mEarfcn = earfcn; mEarfcn = inRangeOrUnavailable(earfcn, 0, MAX_EARFCN); mBandwidth = bandwidth; mBandwidth = inRangeOrUnavailable(bandwidth, 0, MAX_BANDWIDTH); } } /** @hide */ /** @hide */ Loading
telephony/java/android/telephony/CellIdentityNr.java +10 −4 Original line number Original line Diff line number Diff line Loading @@ -29,6 +29,11 @@ import java.util.Objects; public final class CellIdentityNr extends CellIdentity { public final class CellIdentityNr extends CellIdentity { private static final String TAG = "CellIdentityNr"; private static final String TAG = "CellIdentityNr"; private static final int MAX_PCI = 1007; private static final int MAX_TAC = 65535; private static final int MAX_NRARFCN = 3279165; private static final long MAX_NCI = 68719476735L; private final int mNrArfcn; private final int mNrArfcn; private final int mPci; private final int mPci; private final int mTac; private final int mTac; Loading @@ -41,6 +46,7 @@ public final class CellIdentityNr extends CellIdentity { * @param nrArfcn NR Absolute Radio Frequency Channel Number, in range [0, 3279165]. * @param nrArfcn NR Absolute Radio Frequency Channel Number, in range [0, 3279165]. * @param mccStr 3-digit Mobile Country Code in string format. * @param mccStr 3-digit Mobile Country Code in string format. * @param mncStr 2 or 3-digit Mobile Network Code in string format. * @param mncStr 2 or 3-digit Mobile Network Code in string format. * @param nci The 36-bit NR Cell Identity in range [0, 68719476735]. * @param alphal long alpha Operator Name String or Enhanced Operator Name String. * @param alphal long alpha Operator Name String or Enhanced Operator Name String. * @param alphas short alpha Operator Name String or Enhanced Operator Name String. * @param alphas short alpha Operator Name String or Enhanced Operator Name String. * * Loading @@ -49,10 +55,10 @@ public final class CellIdentityNr extends CellIdentity { public CellIdentityNr(int pci, int tac, int nrArfcn, String mccStr, String mncStr, public CellIdentityNr(int pci, int tac, int nrArfcn, String mccStr, String mncStr, long nci, String alphal, String alphas) { long nci, String alphal, String alphas) { super(TAG, CellInfo.TYPE_NR, mccStr, mncStr, alphal, alphas); super(TAG, CellInfo.TYPE_NR, mccStr, mncStr, alphal, alphas); mPci = pci; mPci = inRangeOrUnavailable(pci, 0, MAX_PCI); mTac = tac; mTac = inRangeOrUnavailable(tac, 0, MAX_TAC); mNrArfcn = nrArfcn; mNrArfcn = inRangeOrUnavailable(nrArfcn, 0, MAX_NRARFCN); mNci = nci; mNci = inRangeOrUnavailable(nci, 0, MAX_NCI); } } /** @hide */ /** @hide */ Loading