From 7ac38075c7a05873d07c268ef11fa93fea15ca90 Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Thu, 22 Jul 2021 23:20:32 +0800 Subject: Modify KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL's description Some Carriers define the 5G icon's Idle state in ENDC LTE is no internet data connection. The config's description is not clear, so adding more information. Bug: 193848289 Test: build pass Change-Id: Ie6e8dcd98743746bac1be78c653fb27f214777f9 --- .../android/telephony/CarrierConfigManager.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'telephony/java') diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index f01519f934f3..72ad23b8edb1 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -3538,7 +3538,7 @@ public class CarrierConfigManager { "nr_advanced_capable_pco_id_int"; /** - * This configuration allows the framework to use user data communication to detect RRC state, + * This configuration allows the framework to use user data communication to detect Idle state, * and this is used on the 5G icon. * * There is a new way for for RRC state detection at Android 12. If @@ -3546,16 +3546,23 @@ public class CarrierConfigManager { * {@link TelephonyManager#CAPABILITY_PHYSICAL_CHANNEL_CONFIG_1_6_SUPPORTED}) returns true, * then framework can use PHYSICAL_CHANNEL_CONFIG for RRC state detection. Based on this * condition, some carriers want to use the legacy behavior that way is using user data - * communication to detect the RRC state. Therefore, this configuration allows the framework - * to use user data communication to detect RRC state. + * communication to detect the Idle state. Therefore, this configuration allows the framework + * to use user data communication to detect Idle state. * - * The precondition is + * There are 3 situations reflects the carrier define Idle state. + * 1. using PHYSICAL_CHANNEL_CONFIG to detect RRC Idle + * 2. using all of data connections to detect RRC Idle. + * 3. using data communication(consider internet data connection only) to detect data Idle. + * + * How to setup for above 3 cases? + * For below part, we call the condition#1 is device support * {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}( - * {@link TelephonyManager#CAPABILITY_PHYSICAL_CHANNEL_CONFIG_1_6_SUPPORTED}) returns true, - * otherwise this config is not working. - * If this is true, framework uses the user data communication for RRC state detection. - * If this is false, framework uses the PHYSICAL_CHANNEL_CONFIG for RRC state detection. + * {@link TelephonyManager#CAPABILITY_PHYSICAL_CHANNEL_CONFIG_1_6_SUPPORTED}). + * The condition#2 is carrier enable the KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL. * + * For case#1, the condition#1 is true and the condition#2 is false. + * For case#2, the condition#1 is false and the condition#2 is false. + * For case#3, the condition#2 is true. * @hide */ public static final String KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL = -- cgit v1.2.3 From 9ee4e9bbe9915ef3067a8d204c106d384d92fdeb Mon Sep 17 00:00:00 2001 From: Mingming Cai Date: Mon, 26 Jul 2021 16:55:31 -0700 Subject: Fix CQI range in CellSignalStrengthNr bug: 194634718 Test: make Change-Id: I784f2930999871b6bb90f4e17a2ba694da35126a --- telephony/java/android/telephony/CellSignalStrengthNr.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'telephony/java') diff --git a/telephony/java/android/telephony/CellSignalStrengthNr.java b/telephony/java/android/telephony/CellSignalStrengthNr.java index 72150ddf8597..6ada32e1a86d 100644 --- a/telephony/java/android/telephony/CellSignalStrengthNr.java +++ b/telephony/java/android/telephony/CellSignalStrengthNr.java @@ -178,7 +178,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa mCsiSinr = inRangeOrUnavailable(csiSinr, -23, 23); mCsiCqiTableIndex = inRangeOrUnavailable(csiCqiTableIndex, 1, 3); mCsiCqiReport = csiCqiReport.stream() - .map(cqi -> new Integer(inRangeOrUnavailable(Byte.toUnsignedInt(cqi), 1, 3))) + .map(cqi -> new Integer(inRangeOrUnavailable(Byte.toUnsignedInt(cqi), 0, 15))) .collect(Collectors.toList()); mSsRsrp = inRangeOrUnavailable(ssRsrp, -140, -44); mSsRsrq = inRangeOrUnavailable(ssRsrq, -43, 20); -- cgit v1.2.3 From e5225ba858c721f8317cba21bc1d3caa535e7e8b Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Sat, 24 Jul 2021 09:13:19 +0800 Subject: [PhysicalChannelConfig] UL's frequency should not be same with DL's Bug: 194042135 Test: atset PhysicalChannelConfigTest Change-Id: I1225a1429ff77b33c54af0dfce60a8739494e47a Merged-In: I1225a1429ff77b33c54af0dfce60a8739494e47a --- telephony/java/android/telephony/AccessNetworkUtils.java | 12 ++++++++++++ telephony/java/android/telephony/PhysicalChannelConfig.java | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'telephony/java') diff --git a/telephony/java/android/telephony/AccessNetworkUtils.java b/telephony/java/android/telephony/AccessNetworkUtils.java index 6b820459be98..b5d97abdd3eb 100644 --- a/telephony/java/android/telephony/AccessNetworkUtils.java +++ b/telephony/java/android/telephony/AccessNetworkUtils.java @@ -567,6 +567,10 @@ public class AccessNetworkUtils { */ public static int getFrequencyFromNrArfcn(int nrArfcn) { + if (nrArfcn == PhysicalChannelConfig.CHANNEL_NUMBER_UNKNOWN) { + return PhysicalChannelConfig.FREQUENCY_UNKNOWN; + } + int globalKhz = 0; int rangeOffset = 0; int arfcnOffset = 0; @@ -632,6 +636,10 @@ public class AccessNetworkUtils { */ public static int getFrequencyFromUarfcn(int band, int uarfcn, boolean isUplink) { + if (uarfcn == PhysicalChannelConfig.CHANNEL_NUMBER_UNKNOWN) { + return PhysicalChannelConfig.FREQUENCY_UNKNOWN; + } + int offsetKhz = 0; for (UtranBandArfcnFrequency uarfcnFrequency : AccessNetworkConstants. UtranBandArfcnFrequency.values()) { @@ -702,6 +710,10 @@ public class AccessNetworkUtils { */ public static int getFrequencyFromArfcn(int band, int arfcn, boolean isUplink) { + if (arfcn == PhysicalChannelConfig.CHANNEL_NUMBER_UNKNOWN) { + return PhysicalChannelConfig.FREQUENCY_UNKNOWN; + } + int uplinkFrequencyFirst = 0; int arfcnOffset = 0; int downlinkOffset = 0; diff --git a/telephony/java/android/telephony/PhysicalChannelConfig.java b/telephony/java/android/telephony/PhysicalChannelConfig.java index 8df41fb6b288..d250088c2f10 100644 --- a/telephony/java/android/telephony/PhysicalChannelConfig.java +++ b/telephony/java/android/telephony/PhysicalChannelConfig.java @@ -338,7 +338,8 @@ public final class PhysicalChannelConfig implements Parcelable { private void setUplinkFrequency() { switch (mNetworkType){ case TelephonyManager.NETWORK_TYPE_NR: - mUplinkFrequency = mDownlinkFrequency; + mUplinkFrequency = AccessNetworkUtils.getFrequencyFromNrArfcn( + mUplinkChannelNumber); break; case TelephonyManager.NETWORK_TYPE_LTE: mUplinkFrequency = AccessNetworkUtils.getFrequencyFromEarfcn( -- cgit v1.2.3