Merge "Fix deadlock between UiccController and UiccProfile"
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 75b9d49..603615a 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -10,6 +10,46 @@
},
{
"name": "CarrierAppIntegrationTestCases"
+ },
+ {
+ "name": "CtsTelephonySdk28TestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsTelephony2TestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsTelephony3TestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsSimRestrictedApisTestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsTelephonyProviderTestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
}
]
}
diff --git a/src/java/com/android/internal/telephony/CarrierActionAgent.java b/src/java/com/android/internal/telephony/CarrierActionAgent.java
index a87925d..42a4f23 100644
--- a/src/java/com/android/internal/telephony/CarrierActionAgent.java
+++ b/src/java/com/android/internal/telephony/CarrierActionAgent.java
@@ -73,9 +73,9 @@
private RegistrantList mRadioEnableRegistrants = new RegistrantList();
private RegistrantList mDefaultNetworkReportRegistrants = new RegistrantList();
/** local log for carrier actions */
- private LocalLog mMeteredApnEnabledLog = new LocalLog(10);
- private LocalLog mRadioEnabledLog = new LocalLog(10);
- private LocalLog mReportDefaultNetworkStatusLog = new LocalLog(10);
+ private LocalLog mMeteredApnEnabledLog = new LocalLog(8);
+ private LocalLog mRadioEnabledLog = new LocalLog(8);
+ private LocalLog mReportDefaultNetworkStatusLog = new LocalLog(8);
/** carrier actions */
private Boolean mCarrierActionOnMeteredApnEnabled = true;
private Boolean mCarrierActionOnRadioEnabled = true;
diff --git a/src/java/com/android/internal/telephony/CarrierPrivilegesTracker.java b/src/java/com/android/internal/telephony/CarrierPrivilegesTracker.java
index 8709047..128b919 100644
--- a/src/java/com/android/internal/telephony/CarrierPrivilegesTracker.java
+++ b/src/java/com/android/internal/telephony/CarrierPrivilegesTracker.java
@@ -218,7 +218,7 @@
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
mPhone = phone;
- mLocalLog = new LocalLog(100);
+ mLocalLog = new LocalLog(64);
IntentFilter certFilter = new IntentFilter();
certFilter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
diff --git a/src/java/com/android/internal/telephony/CarrierResolver.java b/src/java/com/android/internal/telephony/CarrierResolver.java
index 794bb41..090aebf 100644
--- a/src/java/com/android/internal/telephony/CarrierResolver.java
+++ b/src/java/com/android/internal/telephony/CarrierResolver.java
@@ -106,7 +106,7 @@
private Context mContext;
private Phone mPhone;
private IccRecords mIccRecords;
- private final LocalLog mCarrierIdLocalLog = new LocalLog(20);
+ private final LocalLog mCarrierIdLocalLog = new LocalLog(16);
private final TelephonyManager mTelephonyMgr;
private final ContentObserver mContentObserver = new ContentObserver(this) {
diff --git a/src/java/com/android/internal/telephony/CarrierSignalAgent.java b/src/java/com/android/internal/telephony/CarrierSignalAgent.java
index 1f6385d..9be0ba5 100644
--- a/src/java/com/android/internal/telephony/CarrierSignalAgent.java
+++ b/src/java/com/android/internal/telephony/CarrierSignalAgent.java
@@ -126,7 +126,7 @@
private static final Map<String, String> COMPAT_ACTION_TO_NEW_MAP = NEW_ACTION_TO_COMPAT_MAP
.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
- private final LocalLog mErrorLocalLog = new LocalLog(20);
+ private final LocalLog mErrorLocalLog = new LocalLog(16);
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
diff --git a/src/java/com/android/internal/telephony/CellBroadcastServiceManager.java b/src/java/com/android/internal/telephony/CellBroadcastServiceManager.java
index 7045171..703160b 100644
--- a/src/java/com/android/internal/telephony/CellBroadcastServiceManager.java
+++ b/src/java/com/android/internal/telephony/CellBroadcastServiceManager.java
@@ -60,7 +60,7 @@
private Phone mPhone;
private Context mContext;
- private final LocalLog mLocalLog = new LocalLog(100);
+ private final LocalLog mLocalLog = new LocalLog(64);
/** New SMS cell broadcast received as an AsyncResult. */
private static final int EVENT_NEW_GSM_SMS_CB = 0;
diff --git a/src/java/com/android/internal/telephony/DeviceStateMonitor.java b/src/java/com/android/internal/telephony/DeviceStateMonitor.java
index 0997186..0389e27 100644
--- a/src/java/com/android/internal/telephony/DeviceStateMonitor.java
+++ b/src/java/com/android/internal/telephony/DeviceStateMonitor.java
@@ -92,7 +92,7 @@
private final Phone mPhone;
- private final LocalLog mLocalLog = new LocalLog(100);
+ private final LocalLog mLocalLog = new LocalLog(64);
private final RegistrantList mPhysicalChannelConfigRegistrants = new RegistrantList();
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
index 8fdd16b..ac6339e 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -1678,6 +1678,16 @@
}
@Override
+ public void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) {
+ mSST.clearAllRadioOffReasons();
+
+ // We don't want to have forEmergency call be true to prevent radio emergencyDial command
+ // from being called for a test emergency number because the network may not be able to
+ // find emergency routing for it and dial it do the default emergency services line.
+ setRadioPower(true, false, isSelectedPhoneForEmergencyCall, false);
+ }
+
+ @Override
public void setRadioPower(boolean power, boolean forEmergencyCall,
boolean isSelectedPhoneForEmergencyCall, boolean forceApply) {
setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply,
diff --git a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
index a1a9578..d8d092b 100644
--- a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
+++ b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
@@ -97,7 +97,7 @@
public SmsDispatchersController mDispatchersController;
private SmsPermissions mSmsPermissions;
- private final LocalLog mCellBroadcastLocalLog = new LocalLog(100);
+ private final LocalLog mCellBroadcastLocalLog = new LocalLog(64);
private static final class Request {
AtomicBoolean mStatus = new AtomicBoolean(false);
diff --git a/src/java/com/android/internal/telephony/InboundSmsHandler.java b/src/java/com/android/internal/telephony/InboundSmsHandler.java
index 8f98a5f..38d7047 100644
--- a/src/java/com/android/internal/telephony/InboundSmsHandler.java
+++ b/src/java/com/android/internal/telephony/InboundSmsHandler.java
@@ -259,7 +259,7 @@
protected TelephonyMetrics mMetrics = TelephonyMetrics.getInstance();
private LocalLog mLocalLog = new LocalLog(64);
- private LocalLog mCarrierServiceLocalLog = new LocalLog(10);
+ private LocalLog mCarrierServiceLocalLog = new LocalLog(8);
PowerWhitelistManager mPowerWhitelistManager;
diff --git a/src/java/com/android/internal/telephony/LocaleTracker.java b/src/java/com/android/internal/telephony/LocaleTracker.java
index d3943c5..694330b 100755
--- a/src/java/com/android/internal/telephony/LocaleTracker.java
+++ b/src/java/com/android/internal/telephony/LocaleTracker.java
@@ -160,7 +160,7 @@
private boolean mIsTracking = false;
- private final LocalLog mLocalLog = new LocalLog(50);
+ private final LocalLog mLocalLog = new LocalLog(32);
/** Broadcast receiver to get SIM card state changed event */
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
diff --git a/src/java/com/android/internal/telephony/PhoneInternalInterface.java b/src/java/com/android/internal/telephony/PhoneInternalInterface.java
index 1b380a5..a61954b 100644
--- a/src/java/com/android/internal/telephony/PhoneInternalInterface.java
+++ b/src/java/com/android/internal/telephony/PhoneInternalInterface.java
@@ -581,6 +581,14 @@
}
/**
+ * Sets the radio power on for a test emergency number.
+ *
+ * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place
+ * emergency call after turning power on.
+ */
+ default void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) {}
+
+ /**
* Sets the radio power on/off state with option to specify whether it's for emergency call
* (off is sometimes called "airplane mode"). Current state can be gotten via
* {@link #getServiceState()}.{@link
diff --git a/src/java/com/android/internal/telephony/PhoneSwitcher.java b/src/java/com/android/internal/telephony/PhoneSwitcher.java
index 19c6021..2dd83ca 100644
--- a/src/java/com/android/internal/telephony/PhoneSwitcher.java
+++ b/src/java/com/android/internal/telephony/PhoneSwitcher.java
@@ -282,7 +282,7 @@
protected RadioConfig mRadioConfig;
- private final static int MAX_LOCAL_LOG_LINES = 30;
+ private static final int MAX_LOCAL_LOG_LINES = 32;
// Default timeout value of network validation in millisecond.
private final static int DEFAULT_VALIDATION_EXPIRATION_TIME = 2000;
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 241d510..7206ee5 100755
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -382,11 +382,11 @@
private final LocaleTracker mLocaleTracker;
- private final LocalLog mRoamingLog = new LocalLog(10);
- private final LocalLog mAttachLog = new LocalLog(10);
- private final LocalLog mPhoneTypeLog = new LocalLog(10);
- private final LocalLog mRatLog = new LocalLog(20);
- private final LocalLog mRadioPowerLog = new LocalLog(20);
+ private final LocalLog mRoamingLog = new LocalLog(8);
+ private final LocalLog mAttachLog = new LocalLog(8);
+ private final LocalLog mPhoneTypeLog = new LocalLog(8);
+ private final LocalLog mRatLog = new LocalLog(16);
+ private final LocalLog mRadioPowerLog = new LocalLog(16);
private final LocalLog mCdnrLogs = new LocalLog(64);
private Pattern mOperatorNameStringPattern;
@@ -642,11 +642,17 @@
* Reference: 3GPP TS 36.104 5.4.3)
* inclusive ranges for which the lte rsrp boost is applied */
private ArrayList<Pair<Integer, Integer>> mEarfcnPairListForRsrpBoost = null;
-
private int mLteRsrpBoost = 0; // offset which is reduced from the rsrp threshold
// while calculating signal strength level.
- private final Object mLteRsrpBoostLock = new Object();
- private static final int INVALID_LTE_EARFCN = -1;
+
+ /* Ranges of NR ARFCNs (5G Absolute Radio Frequency Channel Number,
+ * Reference: 3GPP TS 38.104)
+ * inclusive ranges for which the corresponding nr rsrp boost is applied */
+ private ArrayList<Pair<Integer, Integer>> mNrarfcnRangeListForRsrpBoost = null;
+ private int[] mNrRsrpBoost;
+
+ private final Object mRsrpBoostLock = new Object();
+ private static final int INVALID_ARFCN = -1;
private final List<SignalRequestRecord> mSignalRequestRecords = new ArrayList<>();
@@ -1086,6 +1092,14 @@
}
/**
+ * Clear all the radio off reasons. This should be done when turning radio off for genuine or
+ * test emergency calls.
+ */
+ public void clearAllRadioOffReasons() {
+ sRadioPowerOffReasons.clear();
+ }
+
+ /**
* Turn on or off radio power.
*/
public final void setRadioPower(boolean power) {
@@ -1107,7 +1121,7 @@
* Turn on or off radio power with option to specify whether it's for emergency call and specify
* a reason for setting the power state.
* More details check {@link PhoneInternalInterface#setRadioPower(
- * boolean, boolean, boolean, boolean, String)}.
+ * boolean, boolean, boolean, boolean, int)}.
*/
public void setRadioPowerForReason(boolean power, boolean forEmergencyCall,
boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) {
@@ -1116,7 +1130,7 @@
if (power) {
if (forEmergencyCall) {
- sRadioPowerOffReasons.clear();
+ clearAllRadioOffReasons();
} else {
sRadioPowerOffReasons.remove(reason);
}
@@ -1199,23 +1213,6 @@
}
}
- private int getLteEarfcn(CellIdentity cellIdentity) {
- int lteEarfcn = INVALID_LTE_EARFCN;
- if (cellIdentity != null) {
- switch (cellIdentity.getType()) {
- case CellInfoType.LTE: {
- lteEarfcn = ((CellIdentityLte) cellIdentity).getEarfcn();
- break;
- }
- default: {
- break;
- }
- }
- }
-
- return lteEarfcn;
- }
-
@Override
public void handleMessage(Message msg) {
AsyncResult ar;
@@ -2440,8 +2437,7 @@
mNewSS.setDataRoamingFromRegistration(isDataRoaming);
}
- updateServiceStateLteEarfcnBoost(mNewSS,
- getLteEarfcn(networkRegState.getCellIdentity()));
+ updateServiceStateArfcnRsrpBoost(mNewSS, networkRegState.getCellIdentity());
break;
}
@@ -5072,19 +5068,21 @@
/**
* Checks if the provided earfcn falls withing the range of earfcns.
*
- * return true if earfcn falls within the provided range; false otherwise.
+ * return int index in earfcnPairList if earfcn falls within the provided range; -1 otherwise.
*/
- private boolean containsEarfcnInEarfcnRange(ArrayList<Pair<Integer, Integer>> earfcnPairList,
+ private int containsEarfcnInEarfcnRange(ArrayList<Pair<Integer, Integer>> earfcnPairList,
int earfcn) {
+ int index = 0;
if (earfcnPairList != null) {
for (Pair<Integer, Integer> earfcnPair : earfcnPairList) {
if ((earfcn >= earfcnPair.first) && (earfcn <= earfcnPair.second)) {
- return true;
+ return index;
}
+ index++;
}
}
- return false;
+ return -1;
}
/**
@@ -5145,7 +5143,7 @@
mEriManager.loadEriFile();
mCdnr.updateEfForEri(getOperatorNameFromEri());
- updateLteEarfcnLists(config);
+ updateArfcnLists(config);
updateReportingCriteria(config);
updateOperatorNamePattern(config);
mCdnr.updateEfFromCarrierConfig(config);
@@ -5156,13 +5154,29 @@
pollStateInternal(false);
}
- private void updateLteEarfcnLists(PersistableBundle config) {
- synchronized (mLteRsrpBoostLock) {
+ private void updateArfcnLists(PersistableBundle config) {
+ synchronized (mRsrpBoostLock) {
mLteRsrpBoost = config.getInt(CarrierConfigManager.KEY_LTE_EARFCNS_RSRP_BOOST_INT, 0);
String[] earfcnsStringArrayForRsrpBoost = config.getStringArray(
CarrierConfigManager.KEY_BOOSTED_LTE_EARFCNS_STRING_ARRAY);
mEarfcnPairListForRsrpBoost = convertEarfcnStringArrayToPairList(
earfcnsStringArrayForRsrpBoost);
+
+ mNrRsrpBoost = config.getIntArray(
+ CarrierConfigManager.KEY_NRARFCNS_RSRP_BOOST_INT_ARRAY);
+ String[] nrarfcnsStringArrayForRsrpBoost = config.getStringArray(
+ CarrierConfigManager.KEY_BOOSTED_NRARFCNS_STRING_ARRAY);
+ mNrarfcnRangeListForRsrpBoost = convertEarfcnStringArrayToPairList(
+ nrarfcnsStringArrayForRsrpBoost);
+
+ if ((mNrRsrpBoost == null && mNrarfcnRangeListForRsrpBoost != null)
+ || (mNrRsrpBoost != null && mNrarfcnRangeListForRsrpBoost == null)
+ || (mNrRsrpBoost != null && mNrarfcnRangeListForRsrpBoost != null
+ && mNrRsrpBoost.length != mNrarfcnRangeListForRsrpBoost.size())) {
+ loge("Invalid parameters for NR RSRP boost");
+ mNrRsrpBoost = null;
+ mNrarfcnRangeListForRsrpBoost = null;
+ }
}
}
@@ -5212,15 +5226,36 @@
}
}
- private void updateServiceStateLteEarfcnBoost(ServiceState serviceState, int lteEarfcn) {
- synchronized (mLteRsrpBoostLock) {
- if ((lteEarfcn != INVALID_LTE_EARFCN)
- && containsEarfcnInEarfcnRange(mEarfcnPairListForRsrpBoost, lteEarfcn)) {
- serviceState.setLteEarfcnRsrpBoost(mLteRsrpBoost);
- } else {
- serviceState.setLteEarfcnRsrpBoost(0);
+ private void updateServiceStateArfcnRsrpBoost(ServiceState serviceState,
+ CellIdentity cellIdentity) {
+ int rsrpBoost = 0;
+ int arfcn;
+
+ synchronized (mRsrpBoostLock) {
+ switch (cellIdentity.getType()) {
+ case CellInfo.TYPE_LTE:
+ arfcn = ((CellIdentityLte) cellIdentity).getEarfcn();
+ if (arfcn != INVALID_ARFCN
+ && containsEarfcnInEarfcnRange(mEarfcnPairListForRsrpBoost,
+ arfcn) != -1) {
+ rsrpBoost = mLteRsrpBoost;
+ }
+ break;
+ case CellInfo.TYPE_NR:
+ arfcn = ((CellIdentityNr) cellIdentity).getNrarfcn();
+ if (arfcn != INVALID_ARFCN) {
+ int index = containsEarfcnInEarfcnRange(mNrarfcnRangeListForRsrpBoost,
+ arfcn);
+ if (index != -1) {
+ rsrpBoost = mNrRsrpBoost[index];
+ }
+ }
+ break;
+ default:
+ break;
}
}
+ serviceState.setArfcnRsrpBoost(rsrpBoost);
}
/**
@@ -5469,11 +5504,12 @@
}
}
- private void dumpEarfcnPairList(PrintWriter pw) {
- pw.print(" mEarfcnPairListForRsrpBoost={");
- if (mEarfcnPairListForRsrpBoost != null) {
- int i = mEarfcnPairListForRsrpBoost.size();
- for (Pair<Integer, Integer> earfcnPair : mEarfcnPairListForRsrpBoost) {
+ private void dumpEarfcnPairList(PrintWriter pw, ArrayList<Pair<Integer, Integer>> pairList,
+ String name) {
+ pw.print(" " + name + "={");
+ if (pairList != null) {
+ int i = pairList.size();
+ for (Pair<Integer, Integer> earfcnPair : pairList) {
pw.print("(");
pw.print(earfcnPair.first);
pw.print(",");
@@ -5570,9 +5606,11 @@
pw.println(" mDeviceShuttingDown=" + mDeviceShuttingDown);
pw.println(" mSpnUpdatePending=" + mSpnUpdatePending);
pw.println(" mLteRsrpBoost=" + mLteRsrpBoost);
+ pw.println(" mNrRsrpBoost=" + Arrays.toString(mNrRsrpBoost));
pw.println(" mCellInfoMinIntervalMs=" + mCellInfoMinIntervalMs);
pw.println(" mEriManager=" + mEriManager);
- dumpEarfcnPairList(pw);
+ dumpEarfcnPairList(pw, mEarfcnPairListForRsrpBoost, "mEarfcnPairListForRsrpBoost");
+ dumpEarfcnPairList(pw, mNrarfcnRangeListForRsrpBoost, "mNrarfcnRangeListForRsrpBoost");
mLocaleTracker.dump(fd, pw, args);
IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
diff --git a/src/java/com/android/internal/telephony/SimActivationTracker.java b/src/java/com/android/internal/telephony/SimActivationTracker.java
index 2daf858..80d23e8 100644
--- a/src/java/com/android/internal/telephony/SimActivationTracker.java
+++ b/src/java/com/android/internal/telephony/SimActivationTracker.java
@@ -64,8 +64,8 @@
* @see android.telephony.TelephonyManager#SIM_ACTIVATION_STATE_RESTRICTED
*/
private int mDataActivationState;
- private final LocalLog mVoiceActivationStateLog = new LocalLog(10);
- private final LocalLog mDataActivationStateLog = new LocalLog(10);
+ private final LocalLog mVoiceActivationStateLog = new LocalLog(8);
+ private final LocalLog mDataActivationStateLog = new LocalLog(8);
private final BroadcastReceiver mReceiver;
public SimActivationTracker(Phone phone) {
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java
index 7012c1b..1480c8c 100644
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
@@ -119,7 +119,7 @@
private static final int DEPRECATED_SETTING = -1;
private static final ParcelUuid INVALID_GROUP_UUID =
ParcelUuid.fromString(CarrierConfigManager.REMOVE_GROUP_UUID_STRING);
- private final LocalLog mLocalLog = new LocalLog(200);
+ private final LocalLog mLocalLog = new LocalLog(128);
private static final int SUB_ID_FOUND = 1;
private static final int NO_ENTRY_FOR_SLOT_INDEX = -1;
private static final int SUB_ID_NOT_IN_SLOT = -2;
diff --git a/src/java/com/android/internal/telephony/dataconnection/ApnContext.java b/src/java/com/android/internal/telephony/dataconnection/ApnContext.java
index 9084a87..d9c24e6 100644
--- a/src/java/com/android/internal/telephony/dataconnection/ApnContext.java
+++ b/src/java/com/android/internal/telephony/dataconnection/ApnContext.java
@@ -394,9 +394,9 @@
}
}
- private final LocalLog mLocalLog = new LocalLog(150);
+ private final LocalLog mLocalLog = new LocalLog(128);
private final ArraySet<NetworkRequest> mNetworkRequests = new ArraySet<>();
- private final LocalLog mStateLocalLog = new LocalLog(50);
+ private final LocalLog mStateLocalLog = new LocalLog(32);
public void requestLog(String str) {
synchronized (mLocalLog) {
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
index 0551086..9598cdb 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
@@ -213,7 +213,7 @@
private final String mTagSuffix;
- private final LocalLog mHandoverLocalLog = new LocalLog(100);
+ private final LocalLog mHandoverLocalLog = new LocalLog(64);
private int[] mAdministratorUids = new int[0];
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java b/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java
index 734dfff..92ddf54 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java
@@ -135,7 +135,7 @@
private final RegistrantList mOverallDataEnabledOverrideChangedRegistrants =
new RegistrantList();
- private final LocalLog mSettingChangeLocalLog = new LocalLog(50);
+ private final LocalLog mSettingChangeLocalLog = new LocalLog(32);
private DataEnabledOverride mDataEnabledOverride;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java b/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java
index 9a2cebf..37784be 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java
@@ -37,7 +37,6 @@
import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
-import android.telephony.data.NrQosSessionAttributes;
import android.telephony.data.QosBearerSession;
import android.util.ArrayMap;
import android.util.LocalLog;
@@ -90,7 +89,7 @@
private DataConnection mDataConnection;
- private final LocalLog mNetCapsLocalLog = new LocalLog(50);
+ private final LocalLog mNetCapsLocalLog = new LocalLog(32);
// For interface duplicate detection. Key is the net id, value is the interface name in string.
private static Map<Integer, String> sInterfaceNames = new ArrayMap<>();
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index d528ae0..0f027d5 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -336,8 +336,8 @@
private AsyncChannel mReplyAc = new AsyncChannel();
- private final LocalLog mDataRoamingLeakageLog = new LocalLog(50);
- private final LocalLog mApnSettingsInitializationLog = new LocalLog(50);
+ private final LocalLog mDataRoamingLeakageLog = new LocalLog(32);
+ private final LocalLog mApnSettingsInitializationLog = new LocalLog(32);
/* 5G connection reevaluation watchdog alarm constants */
private long mWatchdogTimeMs = 1000 * 60 * 60;
diff --git a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
index df3f0f1..313ab9f 100644
--- a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
+++ b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
@@ -52,7 +52,7 @@
public final String LOG_TAG;
protected static final boolean DBG = true;
- private static final int REQUEST_LOG_SIZE = 40;
+ private static final int REQUEST_LOG_SIZE = 32;
private static final int ACTION_NO_OP = 0;
private static final int ACTION_REQUEST = 1;
diff --git a/src/java/com/android/internal/telephony/dataconnection/TransportManager.java b/src/java/com/android/internal/telephony/dataconnection/TransportManager.java
index ff11425..54f7d75 100644
--- a/src/java/com/android/internal/telephony/dataconnection/TransportManager.java
+++ b/src/java/com/android/internal/telephony/dataconnection/TransportManager.java
@@ -151,7 +151,7 @@
private final Phone mPhone;
- private final LocalLog mLocalLog = new LocalLog(100);
+ private final LocalLog mLocalLog = new LocalLog(64);
/** The available transports. Must be one or more of AccessNetworkConstants.TransportType.XXX */
private final int[] mAvailableTransports;
diff --git a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
index c66dc5d..cb53832 100644
--- a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
+++ b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
@@ -112,11 +112,11 @@
private List<EmergencyNumber> mEmergencyNumberListFromTestMode = new ArrayList<>();
private List<EmergencyNumber> mEmergencyNumberList = new ArrayList<>();
- private final LocalLog mEmergencyNumberListDatabaseLocalLog = new LocalLog(20);
- private final LocalLog mEmergencyNumberListRadioLocalLog = new LocalLog(20);
- private final LocalLog mEmergencyNumberListPrefixLocalLog = new LocalLog(20);
- private final LocalLog mEmergencyNumberListTestModeLocalLog = new LocalLog(20);
- private final LocalLog mEmergencyNumberListLocalLog = new LocalLog(20);
+ private final LocalLog mEmergencyNumberListDatabaseLocalLog = new LocalLog(16);
+ private final LocalLog mEmergencyNumberListRadioLocalLog = new LocalLog(16);
+ private final LocalLog mEmergencyNumberListPrefixLocalLog = new LocalLog(16);
+ private final LocalLog mEmergencyNumberListTestModeLocalLog = new LocalLog(16);
+ private final LocalLog mEmergencyNumberListLocalLog = new LocalLog(16);
/** Event indicating the update for the emergency number list from the radio. */
private static final int EVENT_UNSOL_EMERGENCY_NUMBER_LIST = 1;
diff --git a/src/java/com/android/internal/telephony/ims/ImsResolver.java b/src/java/com/android/internal/telephony/ims/ImsResolver.java
index 0fae251..2a9fc7c 100644
--- a/src/java/com/android/internal/telephony/ims/ImsResolver.java
+++ b/src/java/com/android/internal/telephony/ims/ImsResolver.java
@@ -433,7 +433,7 @@
// should only be accessed from handler
private Map<Integer, String> mDeviceServices;
// Persistent Logging
- private final LocalLog mEventLog = new LocalLog(50);
+ private final LocalLog mEventLog = new LocalLog(32);
private boolean mBootCompletedHandlerRan = false;
diff --git a/src/java/com/android/internal/telephony/ims/ImsServiceController.java b/src/java/com/android/internal/telephony/ims/ImsServiceController.java
index 82122db..b4002fb 100644
--- a/src/java/com/android/internal/telephony/ims/ImsServiceController.java
+++ b/src/java/com/android/internal/telephony/ims/ImsServiceController.java
@@ -241,7 +241,7 @@
private ImsServiceConnection mImsServiceConnection;
// Only added or removed, never accessed on purpose.
private Set<ImsFeatureStatusCallback> mFeatureStatusCallbacks = new HashSet<>();
- private final LocalLog mLocalLog = new LocalLog(10);
+ private final LocalLog mLocalLog = new LocalLog(8);
protected final Object mLock = new Object();
protected final Context mContext;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
index 209646d..410fbdb 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
@@ -267,7 +267,7 @@
private final RegistrantList mSilentRedialRegistrants = new RegistrantList();
- private final LocalLog mRegLocalLog = new LocalLog(100);
+ private final LocalLog mRegLocalLog = new LocalLog(64);
private TelephonyMetrics mMetrics;
// The helper class to receive and store the MmTel registration status updated.
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
index 08db74e..b28d866 100755
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
@@ -902,9 +902,9 @@
private final FeatureConnector<ImsManager> mImsManagerConnector;
// Used exclusively for IMS Registration related events for logging.
- private final LocalLog mRegLocalLog = new LocalLog(100);
+ private final LocalLog mRegLocalLog = new LocalLog(64);
// Used for important operational related events for logging.
- private final LocalLog mOperationLocalLog = new LocalLog(100);
+ private final LocalLog mOperationLocalLog = new LocalLog(64);
//***** Events
diff --git a/src/java/com/android/internal/telephony/nitz/TimeServiceHelperImpl.java b/src/java/com/android/internal/telephony/nitz/TimeServiceHelperImpl.java
index 7f85786..6fa77f0 100644
--- a/src/java/com/android/internal/telephony/nitz/TimeServiceHelperImpl.java
+++ b/src/java/com/android/internal/telephony/nitz/TimeServiceHelperImpl.java
@@ -43,8 +43,8 @@
private final TimeDetector mTimeDetector;
private final TimeZoneDetector mTimeZoneDetector;
- private final LocalLog mTimeZoneLog = new LocalLog(30, false /* mUseLocalTimestamps */);
- private final LocalLog mTimeLog = new LocalLog(30, false /* mUseLocalTimestamps */);
+ private final LocalLog mTimeZoneLog = new LocalLog(32, false /* mUseLocalTimestamps */);
+ private final LocalLog mTimeLog = new LocalLog(32, false /* mUseLocalTimestamps */);
/**
* Records the last time zone suggestion made. Used to avoid sending duplicate suggestions to
diff --git a/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java b/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java
index 1d7808c..0d905fd 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java
@@ -196,7 +196,7 @@
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private Message mLoadedCallback;
// LocalLog buffer to hold important status messages for debugging.
- private LocalLog mStatusMessage = new LocalLog(100);
+ private LocalLog mStatusMessage = new LocalLog(64);
private int mChannelId; // Channel Id for communicating with UICC.
private int mRetryCount; // Number of retries for open logical channel.
private boolean mCheckedRules = false; // Flag that used to mark whether get rules from ARA-D.
diff --git a/src/java/com/android/internal/telephony/uicc/UiccController.java b/src/java/com/android/internal/telephony/uicc/UiccController.java
index 03deb24..d278dd6 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccController.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccController.java
@@ -197,7 +197,7 @@
private final PinStorage mPinStorage;
// LocalLog buffer to hold important SIM related events for debugging
- private static LocalLog sLocalLog = new LocalLog(TelephonyUtils.IS_DEBUGGABLE ? 250 : 100);
+ private static LocalLog sLocalLog = new LocalLog(TelephonyUtils.IS_DEBUGGABLE ? 256 : 64);
/**
* API to make UiccController singleton if not already created.
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthNrTest.java b/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthNrTest.java
index 31b6c0e..a294471 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthNrTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthNrTest.java
@@ -18,17 +18,23 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+
import android.hardware.radio.V1_6.NrSignalStrength;
import android.os.Parcel;
import android.telephony.CellInfo;
import android.telephony.CellSignalStrength;
import android.telephony.CellSignalStrengthNr;
-import android.test.AndroidTestCase;
+import android.telephony.ServiceState;
import com.google.common.collect.BoundType;
import com.google.common.collect.Range;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mock;
import java.util.ArrayList;
import java.util.Arrays;
@@ -36,7 +42,7 @@
import java.util.List;
import java.util.stream.Collectors;
-public class CellSignalStrengthNrTest extends AndroidTestCase {
+public class CellSignalStrengthNrTest extends TelephonyTest {
private static final int CSIRSRP = -123;
private static final int CSIRSRQ = -11;
private static final int ANOTHER_CSIRSRP = -111;
@@ -51,6 +57,19 @@
private static final int SSRSRQ = -13;
private static final int SSSINR = 32;
+ @Mock
+ ServiceState mSS;
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp(this.getClass().getSimpleName());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
private List<Integer> getCsiCqiList() {
return CSICQI_REPORT.stream()
.map(cqi -> new Integer(Byte.toUnsignedInt(cqi)))
@@ -220,4 +239,19 @@
assertThat(anotherCss.getSsRsrq()).isEqualTo(SSRSRQ);
assertThat(anotherCss.getSsSinr()).isEqualTo(SSSINR);
}
+
+ @Test
+ public void testLevel() {
+ CellSignalStrengthNr css = new CellSignalStrengthNr(CSIRSRP, CSIRSRQ, CSISINR, SSRSRP,
+ SSRSRQ, SSSINR);
+
+ // No keys in the bundle - should use RSRP and default levels.
+ css.updateLevel(null, null);
+ assertEquals(0 /* NONE or UNKNOWN */, css.getLevel());
+
+ doReturn(10).when(mSS).getArfcnRsrpBoost();
+ // Add rsrp boost and level should change to 1 - POOR
+ css.updateLevel(null, mSS);
+ assertEquals(1 /* MODERATE */, css.getLevel());
+ }
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
index 190c331..e6e105c 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
@@ -1414,6 +1414,19 @@
@Test
@SmallTest
+ public void testSetRadioPowerOnForTestEmergencyCall() {
+ mPhoneUT.setRadioPower(false);
+ verify(mSST).setRadioPowerForReason(false, false, false, false,
+ Phone.RADIO_POWER_REASON_USER);
+
+ mPhoneUT.setRadioPowerOnForTestEmergencyCall(false);
+ verify(mSST).clearAllRadioOffReasons();
+ verify(mSST).setRadioPowerForReason(eq(true), eq(false), anyBoolean(), eq(false),
+ eq(Phone.RADIO_POWER_REASON_USER));
+ }
+
+ @Test
+ @SmallTest
public void testReapplyUiccApplicationEnablementRetry() throws Exception {
mPhoneUT.mCi = mMockCi;
// Set SIM to be present, with a fake iccId, and notify enablement being false.