Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +0 −4 Original line number Diff line number Diff line Loading @@ -4945,10 +4945,6 @@ public class ServiceStateTracker extends Handler { mCdnr.updateEfForEri(getOperatorNameFromEri()); } // TODO(b/178429976): Listen config change in SSC and remove logic here mPhone.getSignalStrengthController().updateArfcnLists(config); mPhone.getSignalStrengthController().updateReportingCriteria(config); updateOperatorNamePattern(config); mCdnr.updateEfFromCarrierConfig(config); mPhone.notifyCallForwardingIndicator(); Loading src/java/com/android/internal/telephony/SignalStrengthController.java +66 −21 Original line number Diff line number Diff line Loading @@ -18,7 +18,10 @@ package com.android.internal.telephony; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.AsyncResult; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -79,6 +82,7 @@ public class SignalStrengthController extends Handler { private static final int EVENT_POLL_SIGNAL_STRENGTH = 7; private static final int EVENT_SIGNAL_STRENGTH_UPDATE = 8; private static final int EVENT_POLL_SIGNAL_STRENGTH_DONE = 9; private static final int EVENT_CARRIER_CONFIG_CHANGED = 10; private final Phone mPhone; private final CommandsInterface mCi; Loading Loading @@ -110,6 +114,23 @@ public class SignalStrengthController extends Handler { private final List<SignalRequestRecord> mSignalRequestRecords = new ArrayList<>(); @NonNull private PersistableBundle mCarrierConfig; private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(action)) { int phoneId = intent.getExtras().getInt(CarrierConfigManager.EXTRA_SLOT_INDEX); // Ignore the carrier config changed if the phoneId is not matched. if (phoneId == mPhone.getPhoneId()) { sendEmptyMessage(EVENT_CARRIER_CONFIG_CHANGED); } } } }; public SignalStrengthController(Phone phone) { mPhone = phone; mCi = mPhone.mCi; Loading @@ -118,6 +139,11 @@ public class SignalStrengthController extends Handler { mCi.registerForAvailable(this, EVENT_RADIO_AVAILABLE, null); mCi.setOnSignalStrengthUpdate(this, EVENT_SIGNAL_STRENGTH_UPDATE, null); setSignalStrengthDefaultValues(); mCarrierConfig = getCarrierConfig(); IntentFilter filter = new IntentFilter(); filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); mPhone.getContext().registerReceiver(mBroadcastReceiver, filter); } @Override Loading Loading @@ -160,7 +186,7 @@ public class SignalStrengthController extends Handler { mSignalRequestRecords.add(record); updateAlwaysReportSignalStrength(); updateReportingCriteria(getCarrierConfig()); updateReportingCriteria(); onCompleted.sendToTarget(); break; Loading @@ -182,7 +208,7 @@ public class SignalStrengthController extends Handler { } updateAlwaysReportSignalStrength(); updateReportingCriteria(getCarrierConfig()); updateReportingCriteria(); if (onCompleted != null) { AsyncResult ret = AsyncResult.forMessage(onCompleted); Loading @@ -192,7 +218,7 @@ public class SignalStrengthController extends Handler { } case EVENT_ON_DEVICE_IDLE_STATE_CHANGED: { updateReportingCriteria(getCarrierConfig()); updateReportingCriteria(); break; } Loading Loading @@ -225,6 +251,11 @@ public class SignalStrengthController extends Handler { break; } case EVENT_CARRIER_CONFIG_CHANGED: { onCarrierConfigChanged(); break; } default: log("Unhandled message with number: " + msg.what); break; Loading Loading @@ -261,9 +292,8 @@ public class SignalStrengthController extends Handler { if ((ar.exception == null) && (ar.result != null)) { mSignalStrength = (SignalStrength) ar.result; PersistableBundle config = getCarrierConfig(); if (mPhone.getServiceStateTracker() != null) { mSignalStrength.updateLevel(config, mPhone.getServiceStateTracker().mSS); mSignalStrength.updateLevel(mCarrierConfig, mPhone.getServiceStateTracker().mSS); } } else { log("onSignalStrengthResult() Exception from RIL : " + ar.exception); Loading Loading @@ -324,47 +354,53 @@ public class SignalStrengthController extends Handler { * Update signal strength reporting criteria from the carrier config */ @VisibleForTesting public void updateReportingCriteria(PersistableBundle config) { int lteMeasurementEnabled = config.getInt(CarrierConfigManager public void updateReportingCriteria() { int lteMeasurementEnabled = mCarrierConfig.getInt(CarrierConfigManager .KEY_PARAMETERS_USED_FOR_LTE_SIGNAL_BAR_INT, CellSignalStrengthLte.USE_RSRP); mPhone.setSignalStrengthReportingCriteria(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSRP, config.getIntArray(CarrierConfigManager.KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray(CarrierConfigManager.KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.EUTRAN, (lteMeasurementEnabled & CellSignalStrengthLte.USE_RSRP) != 0); mPhone.setSignalStrengthReportingCriteria(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSCP, config.getIntArray(CarrierConfigManager.KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.UTRAN, true); mPhone.setSignalStrengthReportingCriteria(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI, config.getIntArray(CarrierConfigManager.KEY_GSM_RSSI_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray(CarrierConfigManager.KEY_GSM_RSSI_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.GERAN, true); if (mPhone.getHalVersion().greaterOrEqual(RIL.RADIO_HAL_VERSION_1_5)) { mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSRQ, config.getIntArray(CarrierConfigManager.KEY_LTE_RSRQ_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_LTE_RSRQ_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.EUTRAN, (lteMeasurementEnabled & CellSignalStrengthLte.USE_RSRQ) != 0); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSNR, config.getIntArray(CarrierConfigManager.KEY_LTE_RSSNR_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_LTE_RSSNR_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.EUTRAN, (lteMeasurementEnabled & CellSignalStrengthLte.USE_RSSNR) != 0); int measurementEnabled = config.getInt(CarrierConfigManager int measurementEnabled = mCarrierConfig.getInt(CarrierConfigManager .KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT, CellSignalStrengthNr.USE_SSRSRP); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_SSRSRP, config.getIntArray(CarrierConfigManager.KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.NGRAN, (measurementEnabled & CellSignalStrengthNr.USE_SSRSRP) != 0); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_SSRSRQ, config.getIntArray(CarrierConfigManager.KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.NGRAN, (measurementEnabled & CellSignalStrengthNr.USE_SSRSRQ) != 0); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_SSSINR, config.getIntArray(CarrierConfigManager.KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.NGRAN, (measurementEnabled & CellSignalStrengthNr.USE_SSSINR) != 0); } Loading Loading @@ -655,17 +691,18 @@ public class SignalStrengthController extends Handler { mPhone.setAlwaysReportSignalStrength(alwaysReport); } void updateArfcnLists(PersistableBundle config) { void updateArfcnLists() { synchronized (mRsrpBoostLock) { mLteRsrpBoost = config.getInt(CarrierConfigManager.KEY_LTE_EARFCNS_RSRP_BOOST_INT, 0); String[] earfcnsStringArrayForRsrpBoost = config.getStringArray( mLteRsrpBoost = mCarrierConfig.getInt( CarrierConfigManager.KEY_LTE_EARFCNS_RSRP_BOOST_INT, 0); String[] earfcnsStringArrayForRsrpBoost = mCarrierConfig.getStringArray( CarrierConfigManager.KEY_BOOSTED_LTE_EARFCNS_STRING_ARRAY); mEarfcnPairListForRsrpBoost = convertEarfcnStringArrayToPairList( earfcnsStringArrayForRsrpBoost); mNrRsrpBoost = config.getIntArray( mNrRsrpBoost = mCarrierConfig.getIntArray( CarrierConfigManager.KEY_NRARFCNS_RSRP_BOOST_INT_ARRAY); String[] nrarfcnsStringArrayForRsrpBoost = config.getStringArray( String[] nrarfcnsStringArrayForRsrpBoost = mCarrierConfig.getStringArray( CarrierConfigManager.KEY_BOOSTED_NRARFCNS_STRING_ARRAY); mNrarfcnRangeListForRsrpBoost = convertEarfcnStringArrayToPairList( nrarfcnsStringArrayForRsrpBoost); Loading Loading @@ -784,6 +821,14 @@ public class SignalStrengthController extends Handler { return earfcnPairList; } private void onCarrierConfigChanged() { mCarrierConfig = getCarrierConfig(); log("Carrier Config changed."); updateArfcnLists(); updateReportingCriteria(); } /** * dBm thresholds that correspond to changes in signal strength indications. */ Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +0 −4 Original line number Diff line number Diff line Loading @@ -4945,10 +4945,6 @@ public class ServiceStateTracker extends Handler { mCdnr.updateEfForEri(getOperatorNameFromEri()); } // TODO(b/178429976): Listen config change in SSC and remove logic here mPhone.getSignalStrengthController().updateArfcnLists(config); mPhone.getSignalStrengthController().updateReportingCriteria(config); updateOperatorNamePattern(config); mCdnr.updateEfFromCarrierConfig(config); mPhone.notifyCallForwardingIndicator(); Loading
src/java/com/android/internal/telephony/SignalStrengthController.java +66 −21 Original line number Diff line number Diff line Loading @@ -18,7 +18,10 @@ package com.android.internal.telephony; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.AsyncResult; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -79,6 +82,7 @@ public class SignalStrengthController extends Handler { private static final int EVENT_POLL_SIGNAL_STRENGTH = 7; private static final int EVENT_SIGNAL_STRENGTH_UPDATE = 8; private static final int EVENT_POLL_SIGNAL_STRENGTH_DONE = 9; private static final int EVENT_CARRIER_CONFIG_CHANGED = 10; private final Phone mPhone; private final CommandsInterface mCi; Loading Loading @@ -110,6 +114,23 @@ public class SignalStrengthController extends Handler { private final List<SignalRequestRecord> mSignalRequestRecords = new ArrayList<>(); @NonNull private PersistableBundle mCarrierConfig; private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(action)) { int phoneId = intent.getExtras().getInt(CarrierConfigManager.EXTRA_SLOT_INDEX); // Ignore the carrier config changed if the phoneId is not matched. if (phoneId == mPhone.getPhoneId()) { sendEmptyMessage(EVENT_CARRIER_CONFIG_CHANGED); } } } }; public SignalStrengthController(Phone phone) { mPhone = phone; mCi = mPhone.mCi; Loading @@ -118,6 +139,11 @@ public class SignalStrengthController extends Handler { mCi.registerForAvailable(this, EVENT_RADIO_AVAILABLE, null); mCi.setOnSignalStrengthUpdate(this, EVENT_SIGNAL_STRENGTH_UPDATE, null); setSignalStrengthDefaultValues(); mCarrierConfig = getCarrierConfig(); IntentFilter filter = new IntentFilter(); filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); mPhone.getContext().registerReceiver(mBroadcastReceiver, filter); } @Override Loading Loading @@ -160,7 +186,7 @@ public class SignalStrengthController extends Handler { mSignalRequestRecords.add(record); updateAlwaysReportSignalStrength(); updateReportingCriteria(getCarrierConfig()); updateReportingCriteria(); onCompleted.sendToTarget(); break; Loading @@ -182,7 +208,7 @@ public class SignalStrengthController extends Handler { } updateAlwaysReportSignalStrength(); updateReportingCriteria(getCarrierConfig()); updateReportingCriteria(); if (onCompleted != null) { AsyncResult ret = AsyncResult.forMessage(onCompleted); Loading @@ -192,7 +218,7 @@ public class SignalStrengthController extends Handler { } case EVENT_ON_DEVICE_IDLE_STATE_CHANGED: { updateReportingCriteria(getCarrierConfig()); updateReportingCriteria(); break; } Loading Loading @@ -225,6 +251,11 @@ public class SignalStrengthController extends Handler { break; } case EVENT_CARRIER_CONFIG_CHANGED: { onCarrierConfigChanged(); break; } default: log("Unhandled message with number: " + msg.what); break; Loading Loading @@ -261,9 +292,8 @@ public class SignalStrengthController extends Handler { if ((ar.exception == null) && (ar.result != null)) { mSignalStrength = (SignalStrength) ar.result; PersistableBundle config = getCarrierConfig(); if (mPhone.getServiceStateTracker() != null) { mSignalStrength.updateLevel(config, mPhone.getServiceStateTracker().mSS); mSignalStrength.updateLevel(mCarrierConfig, mPhone.getServiceStateTracker().mSS); } } else { log("onSignalStrengthResult() Exception from RIL : " + ar.exception); Loading Loading @@ -324,47 +354,53 @@ public class SignalStrengthController extends Handler { * Update signal strength reporting criteria from the carrier config */ @VisibleForTesting public void updateReportingCriteria(PersistableBundle config) { int lteMeasurementEnabled = config.getInt(CarrierConfigManager public void updateReportingCriteria() { int lteMeasurementEnabled = mCarrierConfig.getInt(CarrierConfigManager .KEY_PARAMETERS_USED_FOR_LTE_SIGNAL_BAR_INT, CellSignalStrengthLte.USE_RSRP); mPhone.setSignalStrengthReportingCriteria(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSRP, config.getIntArray(CarrierConfigManager.KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray(CarrierConfigManager.KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.EUTRAN, (lteMeasurementEnabled & CellSignalStrengthLte.USE_RSRP) != 0); mPhone.setSignalStrengthReportingCriteria(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSCP, config.getIntArray(CarrierConfigManager.KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.UTRAN, true); mPhone.setSignalStrengthReportingCriteria(SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSI, config.getIntArray(CarrierConfigManager.KEY_GSM_RSSI_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray(CarrierConfigManager.KEY_GSM_RSSI_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.GERAN, true); if (mPhone.getHalVersion().greaterOrEqual(RIL.RADIO_HAL_VERSION_1_5)) { mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSRQ, config.getIntArray(CarrierConfigManager.KEY_LTE_RSRQ_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_LTE_RSRQ_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.EUTRAN, (lteMeasurementEnabled & CellSignalStrengthLte.USE_RSRQ) != 0); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_RSSNR, config.getIntArray(CarrierConfigManager.KEY_LTE_RSSNR_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_LTE_RSSNR_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.EUTRAN, (lteMeasurementEnabled & CellSignalStrengthLte.USE_RSSNR) != 0); int measurementEnabled = config.getInt(CarrierConfigManager int measurementEnabled = mCarrierConfig.getInt(CarrierConfigManager .KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT, CellSignalStrengthNr.USE_SSRSRP); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_SSRSRP, config.getIntArray(CarrierConfigManager.KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.NGRAN, (measurementEnabled & CellSignalStrengthNr.USE_SSRSRP) != 0); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_SSRSRQ, config.getIntArray(CarrierConfigManager.KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.NGRAN, (measurementEnabled & CellSignalStrengthNr.USE_SSRSRQ) != 0); mPhone.setSignalStrengthReportingCriteria( SignalThresholdInfo.SIGNAL_MEASUREMENT_TYPE_SSSINR, config.getIntArray(CarrierConfigManager.KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY), mCarrierConfig.getIntArray( CarrierConfigManager.KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY), AccessNetworkConstants.AccessNetworkType.NGRAN, (measurementEnabled & CellSignalStrengthNr.USE_SSSINR) != 0); } Loading Loading @@ -655,17 +691,18 @@ public class SignalStrengthController extends Handler { mPhone.setAlwaysReportSignalStrength(alwaysReport); } void updateArfcnLists(PersistableBundle config) { void updateArfcnLists() { synchronized (mRsrpBoostLock) { mLteRsrpBoost = config.getInt(CarrierConfigManager.KEY_LTE_EARFCNS_RSRP_BOOST_INT, 0); String[] earfcnsStringArrayForRsrpBoost = config.getStringArray( mLteRsrpBoost = mCarrierConfig.getInt( CarrierConfigManager.KEY_LTE_EARFCNS_RSRP_BOOST_INT, 0); String[] earfcnsStringArrayForRsrpBoost = mCarrierConfig.getStringArray( CarrierConfigManager.KEY_BOOSTED_LTE_EARFCNS_STRING_ARRAY); mEarfcnPairListForRsrpBoost = convertEarfcnStringArrayToPairList( earfcnsStringArrayForRsrpBoost); mNrRsrpBoost = config.getIntArray( mNrRsrpBoost = mCarrierConfig.getIntArray( CarrierConfigManager.KEY_NRARFCNS_RSRP_BOOST_INT_ARRAY); String[] nrarfcnsStringArrayForRsrpBoost = config.getStringArray( String[] nrarfcnsStringArrayForRsrpBoost = mCarrierConfig.getStringArray( CarrierConfigManager.KEY_BOOSTED_NRARFCNS_STRING_ARRAY); mNrarfcnRangeListForRsrpBoost = convertEarfcnStringArrayToPairList( nrarfcnsStringArrayForRsrpBoost); Loading Loading @@ -784,6 +821,14 @@ public class SignalStrengthController extends Handler { return earfcnPairList; } private void onCarrierConfigChanged() { mCarrierConfig = getCarrierConfig(); log("Carrier Config changed."); updateArfcnLists(); updateReportingCriteria(); } /** * dBm thresholds that correspond to changes in signal strength indications. */ Loading