diff options
author | Wink Saville <wink@google.com> | 2011-05-09 17:02:07 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-05-09 17:02:07 -0700 |
commit | ba54feb094fdf0eb2201eae5751104a144a2a31d (patch) | |
tree | 181b99c94fd01a9fe9259b3b500e6bccc4e519e7 | |
parent | b98b56c21faac16cea97e8cdcba485365f86c50f (diff) | |
parent | 45364dc4bfe3e6118ad61f1d38489fe63418699a (diff) | |
download | frameworks_base-ba54feb094fdf0eb2201eae5751104a144a2a31d.zip frameworks_base-ba54feb094fdf0eb2201eae5751104a144a2a31d.tar.gz frameworks_base-ba54feb094fdf0eb2201eae5751104a144a2a31d.tar.bz2 |
am 45364dc4: Merge "Telephony: Signal Strength Changes." into honeycomb-LTE
* commit '45364dc4bfe3e6118ad61f1d38489fe63418699a':
Telephony: Signal Strength Changes.
-rw-r--r-- | telephony/java/android/telephony/SignalStrength.java | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index 1767dd9..a88825b 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -556,10 +556,7 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteDbm() { - log("TODO: teach getLteDbm to compute dBm properly"); - int level = -1; - if (DBG) log("getLteDbm=" + level); - return level; + return mLteRsrp; } /** @@ -568,22 +565,33 @@ public class SignalStrength implements Parcelable { * @hide */ public int getLteLevel() { - log("TODO: teach getLteLevel to compute Level properly"); - int level = SIGNAL_STRENGTH_MODERATE; - if (DBG) log("getLteLevel=" + level); - return level; + int levelLteRsrp = 0; + + if (mLteRsrp == -1) levelLteRsrp = 0; + else if (mLteRsrp >= -85) levelLteRsrp = SIGNAL_STRENGTH_GREAT; + else if (mLteRsrp >= -95) levelLteRsrp = SIGNAL_STRENGTH_GOOD; + else if (mLteRsrp >= -105) levelLteRsrp = SIGNAL_STRENGTH_MODERATE; + else if (mLteRsrp >= -115) levelLteRsrp = SIGNAL_STRENGTH_POOR; + else levelLteRsrp = 0; + + if (DBG) log("Lte level: "+levelLteRsrp); + return levelLteRsrp; } /** - * Get the LTE signal level as an asu value between 0..31, 99 is unknown + * Get the LTE signal level as an asu value between 0..97, 99 is unknown + * Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69 * * @hide */ public int getLteAsuLevel() { - log("TODO: teach getLteAsuLevel to compute asu Level properly"); - int level = 4; - if (DBG) log("getLteAsuLevel=" + level); - return level; + int lteAsuLevel = 99; + int lteDbm = getLteDbm(); + if (lteDbm <= -140) lteAsuLevel = 0; + else if (lteDbm >= -43) lteAsuLevel = 97; + else lteAsuLevel = lteDbm + 140; + if (DBG) log("Lte Asu level: "+lteAsuLevel); + return lteAsuLevel; } /** |