Merge changes from topic "tdscdma-rscp"
* changes: Fix getLevel for CellSignalStrengthTdscdma Rename LevelCalculationMethod Constant
This commit is contained in:
@@ -34,14 +34,14 @@ public final class CellSignalStrengthTdscdma extends CellSignalStrength implemen
|
|||||||
private static final String LOG_TAG = "CellSignalStrengthTdscdma";
|
private static final String LOG_TAG = "CellSignalStrengthTdscdma";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
|
|
||||||
private static final int TDSCDMA_RSSI_MAX = -51;
|
// These levels are arbitrary but carried over from SignalStrength.java for consistency.
|
||||||
private static final int TDSCDMA_RSSI_GREAT = -77;
|
|
||||||
private static final int TDSCDMA_RSSI_GOOD = -87;
|
|
||||||
private static final int TDSCDMA_RSSI_MODERATE = -97;
|
|
||||||
private static final int TDSCDMA_RSSI_POOR = -107;
|
|
||||||
|
|
||||||
private static final int TDSCDMA_RSCP_MIN = -120;
|
|
||||||
private static final int TDSCDMA_RSCP_MAX = -24;
|
private static final int TDSCDMA_RSCP_MAX = -24;
|
||||||
|
private static final int TDSCDMA_RSCP_GREAT = -49;
|
||||||
|
private static final int TDSCDMA_RSCP_GOOD = -73;
|
||||||
|
private static final int TDSCDMA_RSCP_MODERATE = -97;
|
||||||
|
private static final int TDSCDMA_RSCP_POOR = -110;
|
||||||
|
private static final int TDSCDMA_RSCP_MIN = -120;
|
||||||
|
|
||||||
|
|
||||||
private int mRssi; // in dBm [-113, -51], CellInfo.UNAVAILABLE
|
private int mRssi; // in dBm [-113, -51], CellInfo.UNAVAILABLE
|
||||||
|
|
||||||
@@ -135,11 +135,11 @@ public final class CellSignalStrengthTdscdma extends CellSignalStrength implemen
|
|||||||
/** @hide */
|
/** @hide */
|
||||||
@Override
|
@Override
|
||||||
public void updateLevel(PersistableBundle cc, ServiceState ss) {
|
public void updateLevel(PersistableBundle cc, ServiceState ss) {
|
||||||
if (mRssi > TDSCDMA_RSSI_MAX) mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
|
if (mRscp > TDSCDMA_RSCP_MAX) mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
|
||||||
else if (mRssi >= TDSCDMA_RSSI_GREAT) mLevel = SIGNAL_STRENGTH_GREAT;
|
else if (mRscp >= TDSCDMA_RSCP_GREAT) mLevel = SIGNAL_STRENGTH_GREAT;
|
||||||
else if (mRssi >= TDSCDMA_RSSI_GOOD) mLevel = SIGNAL_STRENGTH_GOOD;
|
else if (mRscp >= TDSCDMA_RSCP_GOOD) mLevel = SIGNAL_STRENGTH_GOOD;
|
||||||
else if (mRssi >= TDSCDMA_RSSI_MODERATE) mLevel = SIGNAL_STRENGTH_MODERATE;
|
else if (mRscp >= TDSCDMA_RSCP_MODERATE) mLevel = SIGNAL_STRENGTH_MODERATE;
|
||||||
else if (mRssi >= TDSCDMA_RSSI_POOR) mLevel = SIGNAL_STRENGTH_POOR;
|
else if (mRscp >= TDSCDMA_RSCP_POOR) mLevel = SIGNAL_STRENGTH_POOR;
|
||||||
else mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
|
else mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,6 +158,23 @@ public final class CellSignalStrengthTdscdma extends CellSignalStrength implemen
|
|||||||
return mRscp;
|
return mRscp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the RSSI as dBm value -113..-51dBm or {@link CellInfo#UNAVAILABLE UNAVAILABLE}.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public int getRssi() {
|
||||||
|
return mRssi;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the BER as an ASU value 0..7, 99, or {@link CellInfo#UNAVAILABLE UNAVAILABLE}.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public int getBitErrorRate() {
|
||||||
|
return mBitErrorRate;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the RSCP in ASU.
|
* Get the RSCP in ASU.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public final class CellSignalStrengthWcdma extends CellSignalStrength implements
|
|||||||
public static final String LEVEL_CALCULATION_METHOD_RSCP = "rscp";
|
public static final String LEVEL_CALCULATION_METHOD_RSCP = "rscp";
|
||||||
|
|
||||||
// Default to RSSI for backwards compatibility with older devices
|
// Default to RSSI for backwards compatibility with older devices
|
||||||
private static final String sLevelCalculationMethod = LEVEL_CALCULATION_METHOD_RSSI;
|
private static final String DEFAULT_LEVEL_CALCULATION_METHOD = LEVEL_CALCULATION_METHOD_RSSI;
|
||||||
|
|
||||||
private int mRssi; // in dBm [-113, 51] or CellInfo.UNAVAILABLE if unknown
|
private int mRssi; // in dBm [-113, 51] or CellInfo.UNAVAILABLE if unknown
|
||||||
private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 or
|
private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 or
|
||||||
@@ -161,14 +161,14 @@ public final class CellSignalStrengthWcdma extends CellSignalStrength implements
|
|||||||
int[] rscpThresholds;
|
int[] rscpThresholds;
|
||||||
|
|
||||||
if (cc == null) {
|
if (cc == null) {
|
||||||
calcMethod = sLevelCalculationMethod;
|
calcMethod = DEFAULT_LEVEL_CALCULATION_METHOD;
|
||||||
rscpThresholds = sRscpThresholds;
|
rscpThresholds = sRscpThresholds;
|
||||||
} else {
|
} else {
|
||||||
// TODO: abstract this entire thing into a series of functions
|
// TODO: abstract this entire thing into a series of functions
|
||||||
calcMethod = cc.getString(
|
calcMethod = cc.getString(
|
||||||
CarrierConfigManager.KEY_WCDMA_DEFAULT_SIGNAL_STRENGTH_MEASUREMENT_STRING,
|
CarrierConfigManager.KEY_WCDMA_DEFAULT_SIGNAL_STRENGTH_MEASUREMENT_STRING,
|
||||||
sLevelCalculationMethod);
|
DEFAULT_LEVEL_CALCULATION_METHOD);
|
||||||
if (TextUtils.isEmpty(calcMethod)) calcMethod = sLevelCalculationMethod;
|
if (TextUtils.isEmpty(calcMethod)) calcMethod = DEFAULT_LEVEL_CALCULATION_METHOD;
|
||||||
rscpThresholds = cc.getIntArray(
|
rscpThresholds = cc.getIntArray(
|
||||||
CarrierConfigManager.KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY);
|
CarrierConfigManager.KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY);
|
||||||
if (rscpThresholds == null || rscpThresholds.length != NUM_SIGNAL_STRENGTH_THRESHOLDS) {
|
if (rscpThresholds == null || rscpThresholds.length != NUM_SIGNAL_STRENGTH_THRESHOLDS) {
|
||||||
|
|||||||
Reference in New Issue
Block a user