diff options
| author | 2020-04-13 18:13:04 +0800 | |
|---|---|---|
| committer | 2020-04-14 11:16:47 +0800 | |
| commit | 68c58a57b01728a517150e09877400d85520a1df (patch) | |
| tree | dc27ebd17bb7441264132aaca301daf7d213d4e6 | |
| parent | ec38d551e392fc1825bbaab527890095aebf2f66 (diff) | |
For NR (non-standalone), use LTE signal strength as primary rule
There are two signal strengths, NR and LTE signal strength,
during NR (non-standalone). A lot of carriers' requirement define
UE show LTE signal strength on status bar during
NR (non-standalone).
Add a carrier config whether to use LTE signal strength as
primary during NR (non-standalone)
Bug: 152864241
Test: make pass.
Change-Id: Ib13d73719dace2d80aee5669181f4f934316ffd1
| -rwxr-xr-x | telephony/java/android/telephony/CarrierConfigManager.java | 11 | ||||
| -rw-r--r-- | telephony/java/android/telephony/SignalStrength.java | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 7f6e123ce69e..545c8a35058f 100755 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -2529,6 +2529,16 @@ public class CarrierConfigManager { "parameters_use_for_5g_nr_signal_bar_int"; /** + * There are two signal strengths, NR and LTE signal strength, during NR (non-standalone). + * Boolean indicating whether to use LTE signal strength as primary during NR (non-standalone). + * By default this value is true. + * + * @hide + */ + public static final String KEY_SIGNAL_STRENGTH_NR_NSA_USE_LTE_AS_PRIMARY_BOOL = + "signal_strength_nr_nsa_use_lte_as_primary_bool"; + + /** * String array of default bandwidth values per network type. * The entries should be of form "network_name:downstream,upstream", with values in Kbps. * @hide @@ -4095,6 +4105,7 @@ public class CarrierConfigManager { }); sDefaults.putInt(KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT, CellSignalStrengthNr.USE_SSRSRP); + sDefaults.putBoolean(KEY_SIGNAL_STRENGTH_NR_NSA_USE_LTE_AS_PRIMARY_BOOL, true); sDefaults.putStringArray(KEY_BANDWIDTH_STRING_ARRAY, new String[]{ "GPRS:24,24", "EDGE:70,18", "UMTS:115,115", "CDMA-IS95A:14,14", "CDMA-IS95B:14,14", "1xRTT:30,30", "EvDo-rev.0:750,48", "EvDo-rev.A:950,550", "HSDPA:4300,620", diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index 2bb4eb1538bd..1376cddbc41f 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -82,6 +82,8 @@ public class SignalStrength implements Parcelable { // Effectively final. Timestamp is set during construction of SignalStrength private long mTimestampMillis; + private boolean mLteAsPrimaryInNrNsa = true; + CellSignalStrengthCdma mCdma; CellSignalStrengthGsm mGsm; CellSignalStrengthWcdma mWcdma; @@ -188,6 +190,10 @@ public class SignalStrength implements Parcelable { private CellSignalStrength getPrimary() { // This behavior is intended to replicate the legacy behavior of getLevel() by prioritizing // newer faster RATs for default/for display purposes. + + if (mLteAsPrimaryInNrNsa) { + if (mLte.isValid()) return mLte; + } if (mNr.isValid()) return mNr; if (mLte.isValid()) return mLte; if (mCdma.isValid()) return mCdma; @@ -268,6 +274,10 @@ public class SignalStrength implements Parcelable { /** @hide */ public void updateLevel(PersistableBundle cc, ServiceState ss) { + if (cc != null) { + mLteAsPrimaryInNrNsa = cc.getBoolean( + CarrierConfigManager.KEY_SIGNAL_STRENGTH_NR_NSA_USE_LTE_AS_PRIMARY_BOOL, true); + } mCdma.updateLevel(cc, ss); mGsm.updateLevel(cc, ss); mWcdma.updateLevel(cc, ss); |