Merge "Avoid PDN Tear down at Out of service scenario" into main
diff --git a/flags/calling.aconfig b/flags/calling.aconfig
index c14ae29..3646f73 100644
--- a/flags/calling.aconfig
+++ b/flags/calling.aconfig
@@ -29,6 +29,18 @@
}
}
+# OWNER=tgunn TARGET=25Q2
+flag {
+ name: "robust_number_verification"
+ namespace: "telephony"
+ description: "Makes range matching more robust for TelephonyManager#requestNumberVerification"
+ bug:"400984263"
+ is_exported: true
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
# OWNER=stevestatia TARGET=24Q4
flag {
name: "remove_country_code_from_local_singapore_calls"
diff --git a/flags/misc.aconfig b/flags/misc.aconfig
index 000bfd3..3641c60 100644
--- a/flags/misc.aconfig
+++ b/flags/misc.aconfig
@@ -68,14 +68,6 @@
bug: "290833783"
}
-# OWNER=jackyu TARGET=24Q3
-flag {
- name: "minimal_telephony_managers_conditional_on_features"
- namespace: "telephony"
- description: "This flag enables checking for telephony features before initializing corresponding managers"
- bug: "310710841"
-}
-
# OWNER=joonhunshin TARGET=24Q3
flag {
name: "set_no_reply_timer_for_cfnry"
diff --git a/flags/subscription.aconfig b/flags/subscription.aconfig
index 8a1a2d3..ea12ce8 100644
--- a/flags/subscription.aconfig
+++ b/flags/subscription.aconfig
@@ -46,18 +46,6 @@
bug: "325045841"
}
-# OWNER=songferngwang TARGET=24Q3
-flag {
- name: "reset_primary_sim_default_values"
- namespace: "telephony"
- description: "Reset the default values to the remaining sim"
- bug: "339394518"
-
- metadata {
- purpose: PURPOSE_BUGFIX
- }
-}
-
# OWNER=jmattis TARGET=25Q2
flag {
name: "subscription_plan_allow_status_and_end_date"
diff --git a/proto/src/persist_atoms.proto b/proto/src/persist_atoms.proto
index 730e672..445664d 100644
--- a/proto/src/persist_atoms.proto
+++ b/proto/src/persist_atoms.proto
@@ -728,6 +728,12 @@
optional int32 count_of_p2p_sms_available_notification_removed = 35;
optional bool is_ntn_only_carrier = 36;
optional int32 version_of_satellite_access_config = 37;
+ optional int32 count_of_incoming_datagram_type_sos_sms_success = 38;
+ optional int32 count_of_incoming_datagram_type_sos_sms_fail = 39;
+ optional int32 count_of_outgoing_datagram_type_sms_success = 40;
+ optional int32 count_of_outgoing_datagram_type_sms_fail = 41;
+ optional int32 count_of_incoming_datagram_type_sms_success = 42;
+ optional int32 count_of_incoming_datagram_type_sms_fail = 43;
}
message SatelliteSession {
@@ -839,6 +845,7 @@
optional int32 carrier_id = 8;
optional bool is_device_entitled = 9;
optional bool is_multi_sim = 10;
+ optional int32 count_of_satellite_sessions = 11;
}
message SatelliteEntitlement {
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
index c886307..f08e237 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -349,7 +349,6 @@
super(precisePhoneType == PhoneConstants.PHONE_TYPE_GSM ? "GSM" : "CDMA",
notifier, context, ci, unitTestMode, phoneId, telephonyComponentFactory,
featureFlags);
-
// phone type needs to be set before other initialization as other objects rely on it
mPrecisePhoneType = precisePhoneType;
mVoiceCallSessionStats = new VoiceCallSessionStats(mPhoneId, this, featureFlags);
@@ -370,7 +369,7 @@
SignalStrengthController.class.getName()).makeSignalStrengthController(this);
mSST = mTelephonyComponentFactory.inject(ServiceStateTracker.class.getName())
.makeServiceStateTracker(this, this.mCi, featureFlags);
- if (hasCalling()) {
+ if (hasCalling() || hasMessaging()) {
mEmergencyNumberTracker = mTelephonyComponentFactory
.inject(EmergencyNumberTracker.class.getName()).makeEmergencyNumberTracker(
this, this.mCi, mFeatureFlags);
@@ -5133,6 +5132,7 @@
}
public int getLteOnCdmaMode() {
+ if (mFeatureFlags.phoneTypeCleanup()) return PhoneConstants.LTE_ON_CDMA_FALSE;
int currentConfig = TelephonyProperties.lte_on_cdma_device()
.orElse(PhoneConstants.LTE_ON_CDMA_FALSE);
int lteOnCdmaModeDynamicValue = currentConfig;
diff --git a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
index 9eebc60..4a3e7b0 100644
--- a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
+++ b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
@@ -950,14 +950,6 @@
return (boolean) setRequest.mResult;
}
- public boolean enableCellBroadcast(int messageIdentifier, int ranType) {
- return enableCellBroadcastRange(messageIdentifier, messageIdentifier, ranType);
- }
-
- public boolean disableCellBroadcast(int messageIdentifier, int ranType) {
- return disableCellBroadcastRange(messageIdentifier, messageIdentifier, ranType);
- }
-
public boolean enableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) {
mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST,
"enabling cell broadcast range [" + startMessageId + "-" + endMessageId + "]. "
diff --git a/src/java/com/android/internal/telephony/MultiSimSettingController.java b/src/java/com/android/internal/telephony/MultiSimSettingController.java
index 881adde..bdde74d 100644
--- a/src/java/com/android/internal/telephony/MultiSimSettingController.java
+++ b/src/java/com/android/internal/telephony/MultiSimSettingController.java
@@ -648,10 +648,7 @@
// Otherwise, if user just inserted their first SIM, or there's one primary and one
// opportunistic subscription active (activeSubInfos.size() > 1), we automatically
// set the primary to be default SIM and return.
- boolean conditionForOnePrimarySim =
- mFeatureFlags.resetPrimarySimDefaultValues() ? mPrimarySubList.size() == 1
- : mPrimarySubList.size() == 1
- && (change != PRIMARY_SUB_REMOVED || mActiveModemCount == 1);
+ boolean conditionForOnePrimarySim = mPrimarySubList.size() == 1;
if (conditionForOnePrimarySim) {
int subId = mPrimarySubList.get(0);
if (DBG) log("updateDefaultValues: to only primary sub " + subId);
diff --git a/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java b/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java
index 9b2b847..039b77a 100644
--- a/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java
+++ b/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java
@@ -79,13 +79,16 @@
@Override
public void handleMessage(Message msg) {
Log.d(TAG, "Received Event :" + msg.what);
+ AsyncResult ar;
switch (msg.what) {
case CMD_START_NETWORK_SCAN:
mScheduler.doStartScan((NetworkScanRequestInfo) msg.obj);
break;
case EVENT_START_NETWORK_SCAN_DONE:
- mScheduler.startScanDone((AsyncResult) msg.obj);
+ ar = (AsyncResult) msg.obj;
+ mScheduler.startScanDone(ar);
+ ((NetworkScanRequestInfo) ar.userObj).mPhone.setNetworkScanStarted(true);
break;
case EVENT_RECEIVE_NETWORK_SCAN_RESULT:
@@ -97,7 +100,9 @@
break;
case EVENT_STOP_NETWORK_SCAN_DONE:
- mScheduler.stopScanDone((AsyncResult) msg.obj);
+ ar = (AsyncResult) msg.obj;
+ mScheduler.stopScanDone(ar);
+ ((NetworkScanRequestInfo) ar.userObj).mPhone.setNetworkScanStarted(false);
break;
case CMD_INTERRUPT_NETWORK_SCAN:
@@ -105,17 +110,20 @@
break;
case EVENT_INTERRUPT_NETWORK_SCAN_DONE:
- mScheduler.interruptScanDone((AsyncResult) msg.obj);
+ ar = (AsyncResult) msg.obj;
+ mScheduler.interruptScanDone(ar);
+ ((NetworkScanRequestInfo) ar.userObj).mPhone.setNetworkScanStarted(false);
break;
case EVENT_RADIO_UNAVAILABLE:
// Fallthrough
case EVENT_MODEM_RESET:
- AsyncResult ar = (AsyncResult) msg.obj;
+ ar = (AsyncResult) msg.obj;
mScheduler.deleteScanAndMayNotify(
(NetworkScanRequestInfo) ar.userObj,
NetworkScan.ERROR_MODEM_ERROR,
true);
+ ((NetworkScanRequestInfo) ar.userObj).mPhone.setNetworkScanStarted(false);
break;
}
}
diff --git a/src/java/com/android/internal/telephony/NetworkTypeController.java b/src/java/com/android/internal/telephony/NetworkTypeController.java
index f89c207..f05e002 100644
--- a/src/java/com/android/internal/telephony/NetworkTypeController.java
+++ b/src/java/com/android/internal/telephony/NetworkTypeController.java
@@ -213,8 +213,8 @@
@NonNull private final Set<Integer> mAdditionalNrAdvancedBands = new HashSet<>();
@NonNull private String mPrimaryTimerState;
@NonNull private String mSecondaryTimerState;
- // TODO(b/316425811 remove the workaround)
private int mNrAdvancedBandsSecondaryTimer;
+ private int mNrAdvancedPciChangeSecondaryTimer;
@NonNull private String mPreviousState;
@LinkStatus private int mPhysicalLinkStatus;
private boolean mIsPhysicalChannelConfig16Supported;
@@ -224,6 +224,7 @@
private boolean mEnableNrAdvancedWhileRoaming = true;
private boolean mIsDeviceIdleMode = false;
private boolean mPrimaryCellChangedWhileIdle = false;
+ private boolean mPciChangedDuringPrimaryTimer = false;
// Cached copies below to prevent race conditions
@NonNull private ServiceState mServiceState;
@@ -485,6 +486,8 @@
CarrierConfigManager.KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL);
mNrAdvancedBandsSecondaryTimer = config.getInt(
CarrierConfigManager.KEY_NR_ADVANCED_BANDS_SECONDARY_TIMER_SECONDS_INT);
+ mNrAdvancedPciChangeSecondaryTimer = config.getInt(
+ CarrierConfigManager.KEY_NR_ADVANCED_PCI_CHANGE_SECONDARY_TIMER_SECONDS_INT);
String nrIconConfiguration = config.getString(
CarrierConfigManager.KEY_5G_ICON_CONFIGURATION_STRING);
String overrideTimerRule = config.getString(
@@ -1404,6 +1407,8 @@
mRatchetedNrBandwidths = Math.max(mRatchetedNrBandwidths, nrBandwidths);
mRatchetedNrBands.addAll(nrBands);
} else {
+ mRatchetedNrBandwidths = nrBandwidths;
+ mRatchetedNrBands = nrBands;
if (mDoesPccListIndicateIdle
&& anchorNrCellId != mLastAnchorNrCellId
&& isUsingPhysicalChannelConfigForRrcDetection()
@@ -1420,13 +1425,12 @@
log("Not ratcheting physical channel config fields since anchor NR cell changed: "
+ mLastAnchorNrCellId + " -> " + anchorNrCellId);
}
- mRatchetedNrBandwidths = nrBandwidths;
- mRatchetedNrBands = nrBands;
}
mLastAnchorNrCellId = anchorNrCellId;
mPhysicalChannelConfigs = physicalChannelConfigs;
mDoesPccListIndicateIdle = false;
+ mPciChangedDuringPrimaryTimer = mIsPrimaryTimerActive;
if (DBG) {
log("Physical channel configs updated: anchorNrCell=" + mLastAnchorNrCellId
+ ", nrBandwidths=" + mRatchetedNrBandwidths + ", nrBands=" + mRatchetedNrBands
@@ -1484,6 +1488,7 @@
private void transitionWithSecondaryTimerTo(IState destState) {
String currentName = getCurrentState().getName();
OverrideTimerRule rule = mOverrideTimerRules.get(mPrimaryTimerState);
+ int duration = -1;
if (DBG) {
log("Transition with secondary timer from " + currentName + " to "
+ destState.getName());
@@ -1492,12 +1497,19 @@
log("Skip secondary timer from " + currentName + " to "
+ destState.getName() + " due to in call");
} else if (!mIsDeviceIdleMode && rule != null && rule.getSecondaryTimer(currentName) > 0) {
- int duration = rule.getSecondaryTimer(currentName);
+ duration = rule.getSecondaryTimer(currentName);
if (mLastShownNrDueToAdvancedBand && mNrAdvancedBandsSecondaryTimer > 0) {
duration = mNrAdvancedBandsSecondaryTimer;
if (DBG) log("timer adjusted by nr_advanced_bands_secondary_timer_seconds_int");
}
if (DBG) log(duration + "s secondary timer started for state: " + currentName);
+ } else if (mNrAdvancedPciChangeSecondaryTimer > 0
+ && mPciChangedDuringPrimaryTimer) {
+ duration = mNrAdvancedPciChangeSecondaryTimer;
+ if (DBG) log(duration + "s secondary timer started for PCI changed");
+ }
+
+ if (duration > 0) {
mSecondaryTimerState = currentName;
mPreviousState = currentName;
mIsSecondaryTimerActive = true;
@@ -1505,7 +1517,9 @@
mSecondaryTimerExpireTimestamp = SystemClock.uptimeMillis() + durationMillis;
sendMessageDelayed(EVENT_SECONDARY_TIMER_EXPIRED, destState, durationMillis);
}
+
mIsPrimaryTimerActive = false;
+ mPciChangedDuringPrimaryTimer = false;
transitionTo(getCurrentState());
}
@@ -1555,6 +1569,7 @@
}
removeMessages(EVENT_PRIMARY_TIMER_EXPIRED);
mIsPrimaryTimerActive = false;
+ mPciChangedDuringPrimaryTimer = false;
mPrimaryTimerState = "";
transitionToCurrentState();
return;
@@ -1598,6 +1613,7 @@
removeMessages(EVENT_PRIMARY_TIMER_EXPIRED);
removeMessages(EVENT_SECONDARY_TIMER_EXPIRED);
mIsPrimaryTimerActive = false;
+ mPciChangedDuringPrimaryTimer = false;
mIsSecondaryTimerActive = false;
mSecondaryTimerExpireTimestamp = 0;
mPrimaryTimerState = "";
@@ -1821,10 +1837,11 @@
pw.flush();
pw.increaseIndent();
pw.println("mSubId=" + mPhone.getSubId());
- pw.println("mOverrideTimerRules=" + mOverrideTimerRules.toString());
+ pw.println("mOverrideTimerRules=" + mOverrideTimerRules);
pw.println("mLteEnhancedPattern=" + mLteEnhancedPattern);
pw.println("mIsPhysicalChannelConfigOn=" + mIsPhysicalChannelConfigOn);
pw.println("mIsPrimaryTimerActive=" + mIsPrimaryTimerActive);
+ pw.println("mPciChangedDuringPrimaryTimer=" + mPciChangedDuringPrimaryTimer);
pw.println("mIsSecondaryTimerActive=" + mIsSecondaryTimerActive);
pw.println("mIsTimerResetEnabledForLegacyStateRrcIdle="
+ mIsTimerResetEnabledForLegacyStateRrcIdle);
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index edcc51e..a90adda 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -391,6 +391,7 @@
private int mPreferredUsageSetting = SubscriptionManager.USAGE_SETTING_UNKNOWN;
private int mUsageSettingFromModem = SubscriptionManager.USAGE_SETTING_UNKNOWN;
private boolean mIsUsageSettingSupported = true;
+ private boolean mIsNetworkScanStarted = false;
//IMS
/**
@@ -1059,16 +1060,17 @@
}
/**
- * Notify the phone that an SMS has been sent. This will be used determine if the SMS was sent
- * to an emergency address.
+ * Notify the phone that an SMS has been sent. This will be used to determine if the SMS was
+ * sent to an emergency address.
+ *
* @param destinationAddress the address that the SMS was sent to.
*/
public void notifySmsSent(String destinationAddress) {
- TelephonyManager m = (TelephonyManager) getContext().getSystemService(
- Context.TELEPHONY_SERVICE);
+ TelephonyManager m =
+ (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE);
if (mContext.getPackageManager() != null
- && mContext.getPackageManager().hasSystemFeature(
- PackageManager.FEATURE_TELEPHONY_CALLING)) {
+ && mContext.getPackageManager()
+ .hasSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING)) {
if (m != null && m.isEmergencyNumber(destinationAddress)) {
mLocalLog.log("Emergency SMS detected, recording time.");
mTimeLastEmergencySmsSentMs = SystemClock.elapsedRealtime();
@@ -1966,6 +1968,13 @@
}
/**
+ * @return true if this device supports messaging, false otherwise.
+ */
+ public boolean hasMessaging() {
+ return TelephonyCapabilities.supportsTelephonyMessaging(mFeatureFlags, mContext);
+ }
+
+ /**
* Retrieves the EmergencyNumberTracker of the phone instance.
*/
public EmergencyNumberTracker getEmergencyNumberTracker() {
@@ -4158,6 +4167,24 @@
}
/**
+ * Sets the network scan started status.
+ *
+ * @param started {@code true} if the network scan has started, {@code false} otherwise.
+ */
+ public void setNetworkScanStarted(boolean started) {
+ mIsNetworkScanStarted = started;
+ }
+
+ /**
+ * Gets the network scan started status.
+ *
+ * @return {@code true} if the network scan has started, {@code false} otherwise.
+ */
+ public boolean getNetworkScanStarted() {
+ return mIsNetworkScanStarted;
+ }
+
+ /**
* Override the roaming indicator for the current ICCID.
*/
public boolean setRoamingOverride(List<String> gsmRoamingList,
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index ac0ee0d..f5d06db 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -1331,7 +1331,12 @@
}
private boolean canMakeRequest(String request, RadioServiceProxy proxy, Message result,
- HalVersion version) {
+ HalVersion minVersion) {
+ return canMakeRequest(request, proxy, result, minVersion, null /* maxVersion */);
+ }
+
+ private boolean canMakeRequest(String request, RadioServiceProxy proxy, Message result,
+ HalVersion minVersion, @Nullable HalVersion maxVersion) {
int service = HAL_SERVICE_RADIO;
if (proxy instanceof RadioDataProxy) {
service = HAL_SERVICE_DATA;
@@ -1358,9 +1363,20 @@
}
return false;
}
- if (mHalVersion.get(service).less(version)) {
+ if (mHalVersion.get(service).less(minVersion)) {
riljLoge(String.format("%s not supported on service %s < %s.",
- request, serviceToString(service), version));
+ request, serviceToString(service), minVersion));
+ if (result != null) {
+ AsyncResult.forMessage(result, null,
+ CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
+ result.sendToTarget();
+ }
+ return false;
+ }
+
+ if (maxVersion != null && mHalVersion.get(service).greater(maxVersion)) {
+ riljLoge(String.format("%s not supported on service %s > %s.",
+ request, serviceToString(service), maxVersion));
if (result != null) {
AsyncResult.forMessage(result, null,
CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -3627,7 +3643,8 @@
@Override
public void getDeviceIdentity(Message result) {
RadioModemProxy modemProxy = getRadioServiceProxy(RadioModemProxy.class);
- if (!canMakeRequest("getDeviceIdentity", modemProxy, result, RADIO_HAL_VERSION_1_4)) {
+ if (!canMakeRequest("getDeviceIdentity", modemProxy, result, RADIO_HAL_VERSION_1_4,
+ RADIO_HAL_VERSION_2_2)) {
return;
}
@@ -3882,7 +3899,7 @@
public void getImsRegistrationState(Message result) {
RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class);
if (!canMakeRequest("getImsRegistrationState", networkProxy, result,
- RADIO_HAL_VERSION_1_4)) {
+ RADIO_HAL_VERSION_1_4, RADIO_HAL_VERSION_2_2)) {
return;
}
diff --git a/src/java/com/android/internal/telephony/RadioIndication.java b/src/java/com/android/internal/telephony/RadioIndication.java
index aadfe62..26d3abd 100644
--- a/src/java/com/android/internal/telephony/RadioIndication.java
+++ b/src/java/com/android/internal/telephony/RadioIndication.java
@@ -112,6 +112,7 @@
import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
import com.android.internal.telephony.cdma.CdmaInformationRecords;
import com.android.internal.telephony.data.KeepaliveStatus;
+import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.gsm.SsData;
import com.android.internal.telephony.gsm.SuppServiceNotification;
import com.android.internal.telephony.uicc.IccRefreshResponse;
@@ -571,6 +572,7 @@
}
public void cdmaCallWaiting(int indicationType, CdmaCallWaiting callWaitingRecord) {
+ if (Flags.phoneTypeCleanup()) return;
mRil.processIndication(HAL_SERVICE_RADIO, indicationType);
// todo: create a CdmaCallWaitingNotification constructor that takes in these fields to make
@@ -609,6 +611,7 @@
public void cdmaInfoRec(int indicationType,
android.hardware.radio.V1_0.CdmaInformationRecords records) {
+ if (Flags.phoneTypeCleanup()) return;
mRil.processIndication(HAL_SERVICE_RADIO, indicationType);
int numberOfInfoRecs = records.infoRec.size();
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index f994fe6..7ca291f 100644
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -715,7 +715,8 @@
mCdnr = new CarrierDisplayNameResolver(mPhone);
// Create EriManager only if phone supports CDMA
- if (UiccController.isCdmaSupported(mPhone.getContext())) {
+ if (!mFeatureFlags.phoneTypeCleanup()
+ && UiccController.isCdmaSupported(mPhone.getContext())) {
mEriManager = TelephonyComponentFactory.getInstance().inject(EriManager.class.getName())
.makeEriManager(mPhone, EriManager.ERI_FROM_XML);
} else {
@@ -895,19 +896,24 @@
mCdmaSSM.dispose(this);
}
- mCi.unregisterForCdmaPrlChanged(this);
- mCi.unregisterForCdmaOtaProvision(this);
+ if (!mFeatureFlags.phoneTypeCleanup()) {
+ mCi.unregisterForCdmaPrlChanged(this);
+ mCi.unregisterForCdmaOtaProvision(this);
+ }
mPhone.unregisterForSimRecordsLoaded(this);
} else {
mPhone.registerForSimRecordsLoaded(this, EVENT_SIM_RECORDS_LOADED, null);
- mCdmaSSM = CdmaSubscriptionSourceManager.getInstance(mPhone.getContext(), mCi, this,
- EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED, null);
- mIsSubscriptionFromRuim = (mCdmaSSM.getCdmaSubscriptionSource() ==
- CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM);
+ if (!mFeatureFlags.phoneTypeCleanup()) {
+ mCdmaSSM = CdmaSubscriptionSourceManager.getInstance(mPhone.getContext(), mCi, this,
+ EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED, null);
- mCi.registerForCdmaPrlChanged(this, EVENT_CDMA_PRL_VERSION_CHANGED, null);
- mCi.registerForCdmaOtaProvision(this, EVENT_OTA_PROVISION_STATUS_CHANGE, null);
+ mIsSubscriptionFromRuim = mCdmaSSM.getCdmaSubscriptionSource()
+ == CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM;
+
+ mCi.registerForCdmaPrlChanged(this, EVENT_CDMA_PRL_VERSION_CHANGED, null);
+ mCi.registerForCdmaOtaProvision(this, EVENT_OTA_PROVISION_STATUS_CHANGE, null);
+ }
mHbpcdUtils = new HbpcdUtils(mPhone.getContext());
// update OTASP state in case previously set by another service
@@ -1313,7 +1319,9 @@
mIsMinInfoReady = false;
// Remove the EF records that come from UICC.
- mCdnr.updateEfFromRuim(null /* ruim */);
+ if (!mFeatureFlags.phoneTypeCleanup()) {
+ mCdnr.updateEfFromRuim(null /* ruim */);
+ }
mCdnr.updateEfFromUsim(null /* Usim */);
}
onUpdateIccAvailability();
@@ -1997,6 +2005,7 @@
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
protected void updateOtaspState() {
+ if (mFeatureFlags.phoneTypeCleanup()) return;
int otaspMode = getOtasp();
int oldOtaspMode = mCurrentOtaspMode;
mCurrentOtaspMode = otaspMode;
@@ -5363,6 +5372,7 @@
}
private void handleCdmaSubscriptionSource(int newSubscriptionSource) {
+ if (mFeatureFlags.phoneTypeCleanup()) return;
log("Subscription Source : " + newSubscriptionSource);
mIsSubscriptionFromRuim =
(newSubscriptionSource == CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM);
diff --git a/src/java/com/android/internal/telephony/TelephonyCapabilities.java b/src/java/com/android/internal/telephony/TelephonyCapabilities.java
index c5bfe79..35c862f 100644
--- a/src/java/com/android/internal/telephony/TelephonyCapabilities.java
+++ b/src/java/com/android/internal/telephony/TelephonyCapabilities.java
@@ -219,4 +219,14 @@
return context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TELEPHONY_CALLING);
}
+
+ /**
+ * @return true if this device supports telephony messaging, false if it does not.
+ */
+ public static boolean supportsTelephonyMessaging(@NonNull FeatureFlags featureFlags,
+ Context context) {
+ if (!TelephonyCapabilities.minimalTelephonyCdmCheck(featureFlags)) return true;
+ return context.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_TELEPHONY_MESSAGING);
+ }
}
diff --git a/src/java/com/android/internal/telephony/VoiceIndication.java b/src/java/com/android/internal/telephony/VoiceIndication.java
index 9720bb7..6ae6470 100644
--- a/src/java/com/android/internal/telephony/VoiceIndication.java
+++ b/src/java/com/android/internal/telephony/VoiceIndication.java
@@ -40,6 +40,7 @@
import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
import com.android.internal.telephony.cdma.CdmaInformationRecords;
+import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.gsm.SsData;
import java.util.ArrayList;
@@ -106,6 +107,7 @@
*/
public void cdmaCallWaiting(int indicationType,
android.hardware.radio.voice.CdmaCallWaiting callWaitingRecord) {
+ if (Flags.phoneTypeCleanup()) return;
mRil.processIndication(HAL_SERVICE_VOICE, indicationType);
// TODO: create a CdmaCallWaitingNotification constructor that takes in these fields to make
@@ -136,6 +138,7 @@
*/
public void cdmaInfoRec(int indicationType,
android.hardware.radio.voice.CdmaInformationRecord[] records) {
+ if (Flags.phoneTypeCleanup()) return;
mRil.processIndication(HAL_SERVICE_VOICE, indicationType);
for (int i = 0; i < records.length; i++) {
@@ -235,6 +238,7 @@
* @param status CDMA OTA provision status
*/
public void cdmaOtaProvisionStatus(int indicationType, int status) {
+ if (Flags.phoneTypeCleanup()) return;
mRil.processIndication(HAL_SERVICE_VOICE, indicationType);
int[] response = new int[] {status};
diff --git a/src/java/com/android/internal/telephony/data/AccessNetworksManager.java b/src/java/com/android/internal/telephony/data/AccessNetworksManager.java
index d364120..65c462a 100644
--- a/src/java/com/android/internal/telephony/data/AccessNetworksManager.java
+++ b/src/java/com/android/internal/telephony/data/AccessNetworksManager.java
@@ -56,7 +56,6 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.SlidingWindowEventCounter;
import com.android.internal.telephony.flags.FeatureFlags;
-import com.android.internal.util.FunctionalUtils;
import com.android.telephony.Rlog;
import java.io.FileDescriptor;
@@ -324,12 +323,6 @@
public void onNetworkValidationRequested(@NetCapability int networkCapability,
@NonNull IIntegerConsumer resultCodeCallback) {
DataNetworkController dnc = mPhone.getDataNetworkController();
- if (!mFeatureFlags.networkValidation()) {
- FunctionalUtils.ignoreRemoteException(resultCodeCallback::accept)
- .accept(DataServiceCallback.RESULT_ERROR_UNSUPPORTED);
- return;
- }
-
log("onNetworkValidationRequested: networkCapability = ["
+ DataUtils.networkCapabilityToString(networkCapability) + "]");
diff --git a/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java b/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java
index 3ab5283..d57059a 100644
--- a/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java
+++ b/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java
@@ -47,10 +47,9 @@
import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
-import java.util.Comparator;
+import java.util.ArrayDeque;
import java.util.HashMap;
import java.util.Map;
-import java.util.PriorityQueue;
import java.util.concurrent.TimeUnit;
/**
@@ -94,9 +93,8 @@
private class ValidatedNetworkCache {
// A cache with fixed size. It remembers 10 most recently successfully validated networks.
private static final int VALIDATED_NETWORK_CACHE_SIZE = 10;
- private final PriorityQueue<ValidatedNetwork> mValidatedNetworkPQ =
- new PriorityQueue<>((Comparator<ValidatedNetwork>) Comparator.comparingLong(
- (ValidatedNetwork n) -> n.mValidationTimeStamp));
+
+ private final ArrayDeque<ValidatedNetwork> mValidatedNetworkAQ = new ArrayDeque<>();
private final Map<String, ValidatedNetwork> mValidatedNetworkMap = new HashMap<>();
private static final class ValidatedNetwork {
@@ -131,7 +129,7 @@
if (!validated) {
// If validation failed, clear it from the cache.
- mValidatedNetworkPQ.remove(mValidatedNetworkMap.get(networkIdentity));
+ mValidatedNetworkAQ.remove(mValidatedNetworkMap.get(networkIdentity));
mValidatedNetworkMap.remove(networkIdentity);
return;
}
@@ -141,16 +139,16 @@
// Already existed in cache, update.
network.update(time);
// Re-add to re-sort.
- mValidatedNetworkPQ.remove(network);
- mValidatedNetworkPQ.add(network);
+ mValidatedNetworkAQ.remove(network);
+ mValidatedNetworkAQ.add(network);
} else {
network = new ValidatedNetwork(networkIdentity, time);
mValidatedNetworkMap.put(networkIdentity, network);
- mValidatedNetworkPQ.add(network);
+ mValidatedNetworkAQ.add(network);
}
// If exceeded max size, remove the one with smallest validation timestamp.
- if (mValidatedNetworkPQ.size() > VALIDATED_NETWORK_CACHE_SIZE) {
- ValidatedNetwork networkToRemove = mValidatedNetworkPQ.poll();
+ if (mValidatedNetworkAQ.size() > VALIDATED_NETWORK_CACHE_SIZE) {
+ ValidatedNetwork networkToRemove = mValidatedNetworkAQ.poll();
mValidatedNetworkMap.remove(networkToRemove.mValidationIdentity);
}
}
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java
index ff93463..d8e6f6a 100644
--- a/src/java/com/android/internal/telephony/data/DataNetwork.java
+++ b/src/java/com/android/internal/telephony/data/DataNetwork.java
@@ -3919,11 +3919,6 @@
*/
private void updateValidationStatus(
@PreciseDataConnectionState.NetworkValidationStatus int networkValidationStatus) {
- if (!mFlags.networkValidation()) {
- // Do nothing, if network validation feature is disabled
- return;
- }
-
// if network validation status is changed, notify preciseDataConnectionState.
if (mNetworkValidationStatus != networkValidationStatus) {
log("updateValidationStatus:"
diff --git a/src/java/com/android/internal/telephony/data/DataNetworkController.java b/src/java/com/android/internal/telephony/data/DataNetworkController.java
index b4de1fe..6b916f2 100644
--- a/src/java/com/android/internal/telephony/data/DataNetworkController.java
+++ b/src/java/com/android/internal/telephony/data/DataNetworkController.java
@@ -3387,6 +3387,7 @@
mPendingImsDeregDataNetworks.remove(dataNetwork);
mDataRetryManager.cancelPendingHandoverRetry(dataNetwork);
if (dataNetwork.isInternetSupported()) updateOverallInternetDataState();
+ onPcoDataChanged(dataNetwork);
if (dataNetwork.getNetworkCapabilities().hasCapability(
NetworkCapabilities.NET_CAPABILITY_IMS)) {
diff --git a/src/java/com/android/internal/telephony/data/DataStallRecoveryManager.java b/src/java/com/android/internal/telephony/data/DataStallRecoveryManager.java
index 6147d66..e3060e5 100644
--- a/src/java/com/android/internal/telephony/data/DataStallRecoveryManager.java
+++ b/src/java/com/android/internal/telephony/data/DataStallRecoveryManager.java
@@ -46,6 +46,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.data.DataConfigManager.DataConfigManagerCallback;
import com.android.internal.telephony.data.DataNetworkController.DataNetworkControllerCallback;
import com.android.internal.telephony.data.DataSettingsManager.DataSettingsManagerCallback;
@@ -800,12 +801,17 @@
}
// Skip recovery if it can cause a call to drop
- if (mPhone.getState() != PhoneConstants.State.IDLE
- && getRecoveryAction() > RECOVERY_ACTION_CLEANUP) {
+ if (!isPhoneStateIdle() && getRecoveryAction() > RECOVERY_ACTION_CLEANUP) {
logl("skip data stall recovery as there is an active call");
return false;
}
+ // Skip when network scan started
+ if (isAnyPhoneNetworkScanStarted()) {
+ logl("skip data stall recovery as network scan started");
+ return false;
+ }
+
// Skip when poor signal strength
if (mPhone.getSignalStrength().getLevel() <= CellSignalStrength.SIGNAL_STRENGTH_POOR) {
logl("skip data stall recovery as in poor signal condition");
@@ -825,6 +831,38 @@
}
/**
+ * Checks if any network scan is currently started on any of the available phones.
+ *
+ * @return {@code true} if any network scan is started on any phone; {@code false} otherwise.
+ */
+ private boolean isAnyPhoneNetworkScanStarted() {
+ for (Phone phone : PhoneFactory.getPhones()) {
+ logl("NetworkScanStarted: " + phone.getNetworkScanStarted()
+ + " on phone" + phone.getPhoneId());
+ if (phone.getNetworkScanStarted()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Check whether the phone state is {@link PhoneConstants.State#IDLE} for all phones.
+ * If any phone is not IDLE (voice call active on any phone), do not trigger recovery.
+ *
+ * @return {@code true} if all phones are IDLE and {@code false} if any phones are not IDLE.
+ */
+ private boolean isPhoneStateIdle() {
+ for (Phone phone : PhoneFactory.getPhones()) {
+ logl("Phone State: " + phone.getState() + " on phone" + phone.getPhoneId());
+ if (phone.getState() != PhoneConstants.State.IDLE) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
* Set the validation status into metrics.
*
* @param isValid true for validation passed & false for validation failed
diff --git a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
index 06ebff2..e2b36f0 100644
--- a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
+++ b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
@@ -187,10 +187,14 @@
mFeatureFlags = featureFlags;
mResources = ctx.getResources();
- if (TelephonyCapabilities.minimalTelephonyCdmCheck(mFeatureFlags)
- && !ctx.getPackageManager().hasSystemFeature(
- PackageManager.FEATURE_TELEPHONY_CALLING)) {
- throw new UnsupportedOperationException("EmergencyNumberTracker requires calling");
+ if (TelephonyCapabilities.minimalTelephonyCdmCheck(mFeatureFlags)) {
+ if (!ctx.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING)
+ && !ctx.getPackageManager()
+ .hasSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING)) {
+ throw new UnsupportedOperationException(
+ "EmergencyNumberTracker requires telephony calling or messaging feature to"
+ + " be enabled");
+ }
}
if (mPhone != null) {
diff --git a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
index d8cbb91..7863b25 100644
--- a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
+++ b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
@@ -1485,7 +1485,13 @@
satelliteController.countOfP2PSmsAvailableNotificationShown,
satelliteController.countOfP2PSmsAvailableNotificationRemoved,
satelliteController.isNtnOnlyCarrier,
- satelliteController.versionOfSatelliteAccessConfig);
+ satelliteController.versionOfSatelliteAccessConfig,
+ satelliteController.countOfIncomingDatagramTypeSosSmsSuccess,
+ satelliteController.countOfIncomingDatagramTypeSosSmsFail,
+ satelliteController.countOfOutgoingDatagramTypeSmsSuccess,
+ satelliteController.countOfOutgoingDatagramTypeSmsFail,
+ satelliteController.countOfIncomingDatagramTypeSmsSuccess,
+ satelliteController.countOfIncomingDatagramTypeSmsFail);
}
private static StatsEvent buildStatsEvent(SatelliteSession satelliteSession) {
@@ -1612,7 +1618,8 @@
stats.satelliteSessionGapMaxSec,
stats.carrierId,
stats.isDeviceEntitled,
- stats.isMultiSim);
+ stats.isMultiSim,
+ stats.countOfSatelliteSessions);
}
private static StatsEvent buildStatsEvent(SatelliteEntitlement stats) {
diff --git a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
index 9ac62e0..4346da4 100644
--- a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
+++ b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
@@ -786,6 +786,18 @@
+= stats.countOfP2PSmsAvailableNotificationRemoved;
// Does not update isNtnOnlyCarrier due to it is a dimension field.
existingStats.versionOfSatelliteAccessConfig = stats.versionOfSatelliteAccessConfig;
+ existingStats.countOfIncomingDatagramTypeSosSmsSuccess
+ += stats.countOfIncomingDatagramTypeSosSmsSuccess;
+ existingStats.countOfIncomingDatagramTypeSosSmsFail
+ += stats.countOfIncomingDatagramTypeSosSmsFail;
+ existingStats.countOfOutgoingDatagramTypeSmsSuccess
+ += stats.countOfOutgoingDatagramTypeSmsSuccess;
+ existingStats.countOfOutgoingDatagramTypeSmsFail
+ += stats.countOfOutgoingDatagramTypeSmsFail;
+ existingStats.countOfIncomingDatagramTypeSmsSuccess
+ += stats.countOfIncomingDatagramTypeSmsSuccess;
+ existingStats.countOfIncomingDatagramTypeSmsFail
+ += stats.countOfIncomingDatagramTypeSmsFail;
} else {
mAtoms.satelliteController = insertAtRandomPlace(mAtoms.satelliteController, stats,
mMaxNumSatelliteStats);
@@ -886,6 +898,7 @@
// dimension fields.
existingStats.isDeviceEntitled = stats.isDeviceEntitled;
existingStats.isMultiSim = stats.isMultiSim;
+ existingStats.countOfSatelliteSessions += stats.countOfSatelliteSessions;
} else {
mAtoms.carrierRoamingSatelliteControllerStats = insertAtRandomPlace(
mAtoms.carrierRoamingSatelliteControllerStats, stats, mMaxNumSatelliteStats);
diff --git a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
index 9337164..59ceb6d 100644
--- a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
+++ b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
@@ -105,6 +105,12 @@
private final int mCountOfP2PSmsAvailableNotificationRemoved;
private static boolean sIsNtnOnlyCarrier;
private static int sVersionOfSatelliteAccessConfig;
+ private final int mCountOfIncomingDatagramTypeSosSmsSuccess;
+ private final int mCountOfIncomingDatagramTypeSosSmsFail;
+ private final int mCountOfOutgoingDatagramTypeSmsSuccess;
+ private final int mCountOfOutgoingDatagramTypeSmsFail;
+ private final int mCountOfIncomingDatagramTypeSmsSuccess;
+ private final int mCountOfIncomingDatagramTypeSmsFail;
private SatelliteControllerParams(Builder builder) {
this.mCountOfSatelliteServiceEnablementsSuccess =
@@ -181,6 +187,17 @@
this.sVersionOfSatelliteAccessConfig =
builder.mVersionOfSatelliteAccessConfig.get();
}
+
+ this.mCountOfIncomingDatagramTypeSosSmsSuccess =
+ builder.mCountOfIncomingDatagramTypeSosSmsSuccess;
+ this.mCountOfIncomingDatagramTypeSosSmsFail =
+ builder.mCountOfIncomingDatagramTypeSosSmsFail;
+ this.mCountOfOutgoingDatagramTypeSmsSuccess =
+ builder.mCountOfOutgoingDatagramTypeSmsSuccess;
+ this.mCountOfOutgoingDatagramTypeSmsFail = builder.mCountOfOutgoingDatagramTypeSmsFail;
+ this.mCountOfIncomingDatagramTypeSmsSuccess =
+ builder.mCountOfIncomingDatagramTypeSmsSuccess;
+ this.mCountOfIncomingDatagramTypeSmsFail = builder.mCountOfIncomingDatagramTypeSmsFail;
}
public int getCountOfSatelliteServiceEnablementsSuccess() {
@@ -331,6 +348,30 @@
return sVersionOfSatelliteAccessConfig;
}
+ public int getCountOfIncomingDatagramTypeSosSmsSuccess() {
+ return mCountOfIncomingDatagramTypeSosSmsSuccess;
+ }
+
+ public int getCountOfIncomingDatagramTypeSosSmsFail() {
+ return mCountOfIncomingDatagramTypeSosSmsFail;
+ }
+
+ public int getCountOfOutgoingDatagramTypeSmsSuccess() {
+ return mCountOfOutgoingDatagramTypeSmsSuccess;
+ }
+
+ public int getCountOfOutgoingDatagramTypeSmsFail() {
+ return mCountOfOutgoingDatagramTypeSmsFail;
+ }
+
+ public int getCountOfIncomingDatagramTypeSmsSuccess() {
+ return mCountOfIncomingDatagramTypeSmsSuccess;
+ }
+
+ public int getCountOfIncomingDatagramTypeSmsFail() {
+ return mCountOfIncomingDatagramTypeSmsFail;
+ }
+
/**
* A builder class to create {@link SatelliteControllerParams} data structure class
*/
@@ -372,6 +413,12 @@
private int mCountOfP2PSmsAvailableNotificationRemoved = 0;
private Optional<Boolean> mIsNtnOnlyCarrier = Optional.empty();
private Optional<Integer> mVersionOfSatelliteAccessConfig = Optional.empty();
+ private int mCountOfIncomingDatagramTypeSosSmsSuccess;
+ private int mCountOfIncomingDatagramTypeSosSmsFail;
+ private int mCountOfOutgoingDatagramTypeSmsSuccess;
+ private int mCountOfOutgoingDatagramTypeSmsFail;
+ private int mCountOfIncomingDatagramTypeSmsSuccess;
+ private int mCountOfIncomingDatagramTypeSmsFail;
/**
* Sets countOfSatelliteServiceEnablementsSuccess value of {@link SatelliteController}
@@ -740,6 +787,67 @@
}
/**
+ * Sets countOfIncomingDatagramTypeSosSmsSuccess value of {@link SatelliteController}
+ * atom then returns Builder class
+ */
+ public Builder setCountOfIncomingDatagramTypeSosSmsSuccess(
+ int countOfIncomingDatagramTypeSosSmsSuccess) {
+ this.mCountOfIncomingDatagramTypeSosSmsSuccess =
+ countOfIncomingDatagramTypeSosSmsSuccess;
+ return this;
+ }
+
+ /**
+ * Sets countOfIncomingDatagramTypeSosSmsFail value of {@link SatelliteController} atom
+ * then returns Builder class
+ */
+ public Builder setCountOfIncomingDatagramTypeSosSmsFail(
+ int countOfIncomingDatagramTypeSosSmsFail) {
+ this.mCountOfIncomingDatagramTypeSosSmsFail = countOfIncomingDatagramTypeSosSmsFail;
+ return this;
+ }
+
+ /**
+ * Sets countOfOutgoingDatagramTypeSmsSuccess value of {@link SatelliteController} atom
+ * then returns Builder class
+ */
+ public Builder setCountOfOutgoingDatagramTypeSmsSuccess(
+ int countOfOutgoingDatagramTypeSmsSuccess) {
+ this.mCountOfOutgoingDatagramTypeSmsSuccess = countOfOutgoingDatagramTypeSmsSuccess;
+ return this;
+ }
+
+ /**
+ * Sets countOfOutgoingDatagramTypeSmsFail value of {@link SatelliteController} atom
+ * then returns Builder class
+ */
+ public Builder setCountOfOutgoingDatagramTypeSmsFail(
+ int countOfOutgoingDatagramTypeSmsFail) {
+ this.mCountOfOutgoingDatagramTypeSmsFail = countOfOutgoingDatagramTypeSmsFail;
+ return this;
+ }
+
+ /**
+ * Sets countOfIncomingDatagramTypeSmsSuccess value of {@link SatelliteController} atom
+ * then returns Builder class
+ */
+ public Builder setCountOfIncomingDatagramTypeSmsSuccess(
+ int countOfIncomingDatagramTypeSmsSuccess) {
+ this.mCountOfIncomingDatagramTypeSmsSuccess = countOfIncomingDatagramTypeSmsSuccess;
+ return this;
+ }
+
+ /**
+ * Sets countOfIncomingDatagramTypeSmsFail value of {@link SatelliteController} atom
+ * then returns Builder class
+ */
+ public Builder setCountOfIncomingDatagramTypeSmsFail(
+ int countOfIncomingDatagramTypeSmsFail) {
+ this.mCountOfIncomingDatagramTypeSmsFail = countOfIncomingDatagramTypeSmsFail;
+ return this;
+ }
+
+ /**
* Returns ControllerParams, which contains whole component of
* {@link SatelliteController} atom
*/
@@ -799,6 +907,16 @@
+ ", countOfP2PSmsAvailableNotificationRemoved="
+ mCountOfP2PSmsAvailableNotificationRemoved
+ ", versionOfSatelliteAccessConfig=" + sVersionOfSatelliteAccessConfig
+ + ", countOfIncomingDatagramTypeSosSmsSuccess="
+ + mCountOfIncomingDatagramTypeSosSmsSuccess
+ + ", countOfIncomingDatagramTypeSosSmsFail="
+ + mCountOfIncomingDatagramTypeSosSmsFail
+ + ", countOfOutgoingDatagramTypeSmsSuccess="
+ + mCountOfOutgoingDatagramTypeSmsSuccess
+ + ", countOfOutgoingDatagramTypeSmsFail=" + mCountOfOutgoingDatagramTypeSmsFail
+ + ", countOfIncomingDatagramTypeSmsSuccess="
+ + mCountOfIncomingDatagramTypeSmsSuccess
+ + ", countOfIncomingDatagramTypeSmsFail=" + mCountOfIncomingDatagramTypeSmsFail
+ ")";
}
}
@@ -2053,6 +2171,7 @@
*/
public Builder setSupportedSatelliteServices(int[] supportedSatelliteServices) {
this.mSupportedSatelliteServices = supportedSatelliteServices;
+ Arrays.sort(this.mSupportedSatelliteServices);
return this;
}
@@ -2138,6 +2257,7 @@
private static int sCarrierId;
private static boolean sIsDeviceEntitled;
private static boolean sIsMultiSim;
+ private final int mCountOfSatelliteSessions;
private CarrierRoamingSatelliteControllerStatsParams(Builder builder) {
this.mConfigDataSource = builder.mConfigDataSource;
@@ -2173,6 +2293,8 @@
if (builder.mIsMultiSim.isPresent()) {
sIsMultiSim = builder.mIsMultiSim.get();
}
+
+ this.mCountOfSatelliteSessions = builder.mCountOfSatelliteSessions;
}
public int getConfigDataSource() {
@@ -2216,6 +2338,10 @@
return sIsMultiSim;
}
+ public int getCountOfSatelliteSessions() {
+ return mCountOfSatelliteSessions;
+ }
+
/**
* A builder class to create {@link CarrierRoamingSatelliteControllerStatsParams}
* data structure class
@@ -2231,6 +2357,7 @@
private Optional<Integer> mCarrierId = Optional.empty();
private Optional<Boolean> mIsDeviceEntitled = Optional.empty();
private Optional<Boolean> mIsMultiSim = Optional.empty();
+ private int mCountOfSatelliteSessions = 0;
/**
* Sets configDataSource value of {@link CarrierRoamingSatelliteControllerStats} atom
@@ -2317,6 +2444,15 @@
}
/**
+ * Increase the countOfSatelliteSession value of
+ * {@link CarrierRoamingSatelliteControllerStats} atom by one then returns Builder class
+ */
+ public Builder increaseCountOfSatelliteSessions() {
+ this.mCountOfSatelliteSessions++;
+ return this;
+ }
+
+ /**
* Returns CarrierRoamingSatelliteControllerStatsParams, which contains whole component
* of {@link CarrierRoamingSatelliteControllerStats} atom
*/
@@ -2342,6 +2478,7 @@
+ ", carrierId=" + sCarrierId
+ ", isDeviceEntitled=" + sIsDeviceEntitled
+ ", isMultiSim=" + sIsMultiSim
+ + ", countOfSatelliteSession=" + mCountOfSatelliteSessions
+ ")";
}
}
@@ -2477,6 +2614,7 @@
*/
public Builder setEntitlementServiceType(int[] entitlementServiceType) {
this.mEntitlementServiceType = entitlementServiceType;
+ Arrays.sort(this.mEntitlementServiceType);
return this;
}
@@ -2872,6 +3010,16 @@
param.getCountOfP2PSmsAvailableNotificationRemoved();
proto.isNtnOnlyCarrier = param.isNtnOnlyCarrier();
proto.versionOfSatelliteAccessConfig = param.getVersionSatelliteAccessConfig();
+ proto.countOfIncomingDatagramTypeSosSmsSuccess =
+ param.getCountOfIncomingDatagramTypeSosSmsSuccess();
+ proto.countOfIncomingDatagramTypeSosSmsFail =
+ param.getCountOfIncomingDatagramTypeSosSmsFail();
+ proto.countOfOutgoingDatagramTypeSmsSuccess =
+ param.getCountOfOutgoingDatagramTypeSmsSuccess();
+ proto.countOfOutgoingDatagramTypeSmsFail = param.getCountOfOutgoingDatagramTypeSmsFail();
+ proto.countOfIncomingDatagramTypeSmsSuccess =
+ param.getCountOfIncomingDatagramTypeSmsSuccess();
+ proto.countOfIncomingDatagramTypeSmsFail = param.getCountOfIncomingDatagramTypeSmsFail();
if (DBG) logd("onSatelliteControllerMetrics" + param);
mAtomsStorage.addSatelliteControllerStats(proto);
}
@@ -3008,6 +3156,7 @@
proto.carrierId = param.getCarrierId();
proto.isDeviceEntitled = param.isDeviceEntitled();
proto.isMultiSim = param.isMultiSim();
+ proto.countOfSatelliteSessions = param.getCountOfSatelliteSessions();
if (DBG) logd("onCarrierRoamingSatelliteControllerStatsMetrics: " + param);
mAtomsStorage.addCarrierRoamingSatelliteControllerStats(proto);
}
diff --git a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
index bb509be..bc7d5d1 100644
--- a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
+++ b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
@@ -81,6 +81,8 @@
private static final int CMD_SEND_SMS = 8;
private static final int EVENT_SEND_SMS_DONE = 9;
private static final int EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT = 10;
+ private static final int CMD_SEND_MT_SMS_POLLING_MESSAGE = 11;
+
private static final Long TIMEOUT_DATAGRAM_DELAY_IN_DEMO_MODE = TimeUnit.SECONDS.toMillis(10);
@NonNull private static DatagramDispatcher sInstance;
@NonNull private final Context mContext;
@@ -422,10 +424,16 @@
case EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT: {
synchronized (mLock) {
mIsMtSmsPollingThrottled = false;
- if (allowMtSmsPolling()) {
- sendMtSmsPollingMessage();
- }
}
+ if (allowMtSmsPolling()) {
+ sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE));
+ }
+ break;
+ }
+
+ case CMD_SEND_MT_SMS_POLLING_MESSAGE: {
+ plogd("CMD_SEND_MT_SMS_POLLING_MESSAGE");
+ handleCmdSendMtSmsPollingMessage();
break;
}
@@ -517,9 +525,9 @@
mIsAligned = isAligned;
plogd("setDeviceAlignedWithSatellite: " + mIsAligned);
if (isAligned && mIsDemoMode) handleEventSatelliteAligned();
- if (allowMtSmsPolling()) {
- sendMtSmsPollingMessage();
- }
+ }
+ if (allowMtSmsPolling()) {
+ sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE));
}
}
@@ -759,9 +767,11 @@
if (resultCode == SATELLITE_RESULT_SUCCESS) {
long smsTransmissionTime = mSmsTransmissionStartTime > 0
? (System.currentTimeMillis() - mSmsTransmissionStartTime) : 0;
+ mControllerMetricsStats.reportOutgoingDatagramSuccessCount(datagramType, false);
mSessionMetricsStats.addCountOfSuccessfulOutgoingDatagram(
datagramType, smsTransmissionTime);
} else {
+ mControllerMetricsStats.reportOutgoingDatagramFailCount(datagramType, false);
mSessionMetricsStats.addCountOfFailedOutgoingDatagram(
datagramType, resultCode);
}
@@ -841,10 +851,9 @@
mShouldPollMtSms = shouldPollMtSms();
}
}
-
- if (allowMtSmsPolling()) {
- sendMtSmsPollingMessage();
- }
+ }
+ if (allowMtSmsPolling()) {
+ sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE));
}
}
@@ -1321,23 +1330,26 @@
&& satelliteController.shouldSendSmsToDatagramDispatcher(satellitePhone);
}
- @GuardedBy("mLock")
- private void sendMtSmsPollingMessage() {
- if (!mShouldPollMtSms) {
- return;
- }
-
- plogd("sendMtSmsPollingMessage");
- if (!allowCheckMessageInNotConnected()) {
- mShouldPollMtSms = false;
- }
-
- for (Entry<Long, PendingRequest> entry : mPendingSmsMap.entrySet()) {
- PendingRequest pendingRequest = entry.getValue();
- if (pendingRequest.isMtSmsPolling) {
- plogd("sendMtSmsPollingMessage: mPendingSmsMap already has the polling message.");
+ private void handleCmdSendMtSmsPollingMessage() {
+ synchronized (mLock) {
+ if (!mShouldPollMtSms) {
+ plogd("sendMtSmsPollingMessage: mShouldPollMtSms=" + mShouldPollMtSms);
return;
}
+
+ plogd("sendMtSmsPollingMessage");
+ if (!allowCheckMessageInNotConnected()) {
+ mShouldPollMtSms = false;
+ }
+
+ for (Entry<Long, PendingRequest> entry : mPendingSmsMap.entrySet()) {
+ PendingRequest pendingRequest = entry.getValue();
+ if (pendingRequest.isMtSmsPolling) {
+ plogd("sendMtSmsPollingMessage: mPendingSmsMap already "
+ + "has the polling message.");
+ return;
+ }
+ }
}
Phone satellitePhone = SatelliteController.getInstance().getSatellitePhone();
@@ -1370,7 +1382,6 @@
removeMessages(EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT);
}
- @GuardedBy("mLock")
private boolean allowMtSmsPolling() {
if (!mFeatureFlags.carrierRoamingNbIotNtn()) return false;
@@ -1383,11 +1394,15 @@
return false;
}
- if (!mIsAligned) return false;
+ boolean isModemStateConnectedOrTransferring;
+ synchronized (mLock) {
+ if (!mIsAligned) return false;
- boolean isModemStateConnectedOrTransferring =
- mModemState == SATELLITE_MODEM_STATE_CONNECTED
- || mModemState == SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING;
+ isModemStateConnectedOrTransferring =
+ mModemState == SATELLITE_MODEM_STATE_CONNECTED
+ || mModemState == SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING;
+ }
+
if (!isModemStateConnectedOrTransferring && !allowCheckMessageInNotConnected()) {
plogd("EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT:"
+ " allow_check_message_in_not_connected is disabled");
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index 78276fd..11d2b76 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -626,7 +626,6 @@
private List<SatelliteSubscriberProvisionStatus> mLastEvaluatedSubscriberProvisionStatus =
new ArrayList<>();
// The ID of the satellite subscription that has highest priority and is provisioned.
- @GuardedBy("mSatelliteTokenProvisionedLock")
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
protected int mSelectedSatelliteSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
// The last ICC ID that framework configured to modem.
@@ -3811,6 +3810,9 @@
} else {
logd("onSmsReceived: DatagramController is not initialized");
}
+
+ mControllerMetricsStats.reportIncomingNtnSmsCount(
+ SatelliteManager.SATELLITE_RESULT_SUCCESS);
}
/**
@@ -6733,10 +6735,7 @@
SATELLITE_SYSTEM_NOTIFICATION_TIME, 0L);
logv("determineAutoConnectSystemNotification lastSetTimestamp = " + lastSetTimestamp);
long currentTime = System.currentTimeMillis();
- int subId;
- synchronized (mSatellitePhoneLock) {
- subId = mSatellitePhone.getSubId();
- }
+ int subId = getSelectedSatelliteSubId();
long throttleTime = getNotificationDisplayThrottleTimeout(subId);
if (lastSetTimestamp == 0L || currentTime - lastSetTimestamp >= throttleTime) {
// Reset the flag and update the timestamp
@@ -7532,6 +7531,7 @@
*/
public void requestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) {
if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
+ logd("requestSatelliteSubscriberProvisionStatus: carrierRoamingNbIotNtn is disabled");
result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null);
return;
}
@@ -7599,10 +7599,8 @@
}
public int getSelectedSatelliteSubId() {
- synchronized (mSatelliteTokenProvisionedLock) {
- plogd("getSelectedSatelliteSubId: subId=" + mSelectedSatelliteSubId);
- return mSelectedSatelliteSubId;
- }
+ plogd("getSelectedSatelliteSubId: subId=" + mSelectedSatelliteSubId);
+ return mSelectedSatelliteSubId;
}
/**
@@ -7970,15 +7968,13 @@
/** Return the carrier ID of the binding satellite subscription. */
public int getSatelliteCarrierId() {
- synchronized (mSatelliteTokenProvisionedLock) {
- SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(
- mSelectedSatelliteSubId);
- if (subInfo == null) {
- logd("getSatelliteCarrierId: returns UNKNOWN_CARRIER_ID");
- return UNKNOWN_CARRIER_ID;
- }
- return subInfo.getCarrierId();
+ SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(
+ mSelectedSatelliteSubId);
+ if (subInfo == null) {
+ logd("getSatelliteCarrierId: returns UNKNOWN_CARRIER_ID");
+ return UNKNOWN_CARRIER_ID;
}
+ return subInfo.getCarrierId();
}
/**
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java b/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java
index 03c294b..d33f828 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java
@@ -307,7 +307,7 @@
private void handleSatelliteProvisionStateChangedEvent(boolean provisioned) {
if (!provisioned
- && !isSatelliteConnectedViaCarrierWithinHysteresisTime()) {
+ && !isSatelliteEmergencyMessagingViaCarrierAvailable()) {
cleanUpResources(false);
}
}
@@ -347,7 +347,7 @@
if (!isCellularAvailable
&& isSatelliteAllowed()
&& ((isDeviceProvisioned() && isSatelliteAllowedByReasons())
- || isSatelliteConnectedViaCarrierWithinHysteresisTime())
+ || isSatelliteEmergencyMessagingViaCarrierAvailable())
&& shouldTrackCall(mEmergencyConnection.getState())) {
plogd("handleTimeoutEvent: Sent EVENT_DISPLAY_EMERGENCY_MESSAGE to Dialer");
Bundle extras = createExtraBundleForEventDisplayEmergencyMessage(
@@ -367,7 +367,7 @@
private boolean isSatelliteAllowed() {
synchronized (mLock) {
- if (isSatelliteConnectedViaCarrierWithinHysteresisTime()) return true;
+ if (isSatelliteEmergencyMessagingViaCarrierAvailable()) return true;
return mIsSatelliteAllowedForCurrentLocation;
}
}
@@ -388,7 +388,12 @@
return satelliteProvisioned != null ? satelliteProvisioned : false;
}
- private boolean isSatelliteConnectedViaCarrierWithinHysteresisTime() {
+ private boolean isSatelliteEmergencyMessagingViaCarrierAvailable() {
+ if (!mSatelliteController.isSatelliteEmergencyMessagingSupportedViaCarrier()) {
+ plogd("isSatelliteEmergencyMessagingViaCarrierAvailable: false, "
+ + "device does not support satellite emergency messaging via carrier");
+ return false;
+ }
return mIsSatelliteConnectedViaCarrierWithinHysteresisTime.get();
}
@@ -567,7 +572,7 @@
}
private void selectEmergencyCallWaitForConnectionTimeoutDuration() {
- if (isSatelliteConnectedViaCarrierWithinHysteresisTime()) {
+ if (isSatelliteEmergencyMessagingViaCarrierAvailable()) {
int satelliteSubId = mSubIdOfSatelliteConnectedViaCarrierWithinHysteresisTime.get();
mTimeoutMillis =
mSatelliteController.getCarrierEmergencyCallWaitForConnectionTimeoutMillis(
@@ -769,7 +774,7 @@
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
public int getEmergencyCallToSatelliteHandoverType() {
- if (isSatelliteConnectedViaCarrierWithinHysteresisTime()) {
+ if (isSatelliteEmergencyMessagingViaCarrierAvailable()) {
int satelliteSubId = mSubIdOfSatelliteConnectedViaCarrierWithinHysteresisTime.get();
return mSatelliteController.getCarrierRoamingNtnEmergencyCallToSatelliteHandoverType(
satelliteSubId);
@@ -841,6 +846,8 @@
private void updateSatelliteConnectedViaCarrierWithinHysteresisTimeState() {
Pair<Boolean, Integer> satelliteConnectedState =
mSatelliteController.isSatelliteConnectedViaCarrierWithinHysteresisTime();
+ plogd("updateSatelliteConnectedViaCarrierWithinHysteresisTimeState: subId="
+ + satelliteConnectedState.second + ", connected="+ satelliteConnectedState.first);
mIsSatelliteConnectedViaCarrierWithinHysteresisTime.set(satelliteConnectedState.first);
if (satelliteConnectedState.first) {
mSubIdOfSatelliteConnectedViaCarrierWithinHysteresisTime.set(
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
index 777fe7b..8d78045 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
@@ -113,6 +113,10 @@
/** Log carrier roaming satellite session start */
public void onSessionStart() {
mSessionStartTimeList.add(getCurrentTime());
+ mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics(
+ new SatelliteStats.CarrierRoamingSatelliteControllerStatsParams.Builder()
+ .increaseCountOfSatelliteSessions()
+ .build());
}
/** Log carrier roaming satellite session end */
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/ControllerMetricsStats.java b/src/java/com/android/internal/telephony/satellite/metrics/ControllerMetricsStats.java
index aef0808..5d0fa9d 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/ControllerMetricsStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/ControllerMetricsStats.java
@@ -145,6 +145,9 @@
builder.setCountOfDatagramTypeLocationSharingSuccess(ADD_COUNT);
} else if (datagramType == SatelliteManager.DATAGRAM_TYPE_KEEP_ALIVE) {
builder.setCountOfDatagramTypeKeepAliveSuccess(ADD_COUNT).build();
+ } else if (datagramType == SatelliteManager.DATAGRAM_TYPE_SMS) {
+ builder.setCountOfDatagramTypeSosSmsSuccess(ADD_COUNT)
+ .setCountOfOutgoingDatagramTypeSmsSuccess(ADD_COUNT);
}
}
@@ -169,6 +172,9 @@
builder.setCountOfDatagramTypeLocationSharingFail(ADD_COUNT);
} else if (datagramType == SatelliteManager.DATAGRAM_TYPE_KEEP_ALIVE) {
builder.setCountOfDatagramTypeKeepAliveFail(ADD_COUNT);
+ } else if (datagramType == SatelliteManager.DATAGRAM_TYPE_SMS) {
+ builder.setCountOfDatagramTypeSosSmsFail(ADD_COUNT)
+ .setCountOfOutgoingDatagramTypeSmsFail(ADD_COUNT);
}
}
@@ -177,7 +183,7 @@
mSatelliteStats.onSatelliteControllerMetrics(controllerParam);
}
- /** Report a counter when an attempt for incoming datagram is failed */
+ /** Increase counters for successful and failed incoming datagram attempts */
public void reportIncomingDatagramCount(
@NonNull @SatelliteManager.SatelliteResult int result, boolean isDemoMode) {
SatelliteStats.SatelliteControllerParams.Builder builder =
@@ -190,9 +196,12 @@
}
} else {
if (result == SatelliteManager.SATELLITE_RESULT_SUCCESS) {
- builder.setCountOfIncomingDatagramSuccess(ADD_COUNT);
+ builder.setCountOfIncomingDatagramSuccess(ADD_COUNT)
+ .setCountOfIncomingDatagramTypeSosSmsSuccess(ADD_COUNT);
+
} else {
- builder.setCountOfIncomingDatagramFail(ADD_COUNT);
+ builder.setCountOfIncomingDatagramFail(ADD_COUNT)
+ .setCountOfIncomingDatagramTypeSosSmsFail(ADD_COUNT);
}
}
SatelliteStats.SatelliteControllerParams controllerParam = builder.build();
@@ -200,6 +209,23 @@
mSatelliteStats.onSatelliteControllerMetrics(controllerParam);
}
+ /** Increase counters for successful and failed incoming ntn sms attempts */
+ public void reportIncomingNtnSmsCount(
+ @NonNull @SatelliteManager.SatelliteResult int result) {
+ SatelliteStats.SatelliteControllerParams.Builder builder =
+ new SatelliteStats.SatelliteControllerParams.Builder();
+ if (result == SatelliteManager.SATELLITE_RESULT_SUCCESS) {
+ builder.setCountOfIncomingDatagramTypeSosSmsSuccess(ADD_COUNT)
+ .setCountOfIncomingDatagramTypeSmsSuccess(ADD_COUNT);
+ } else {
+ builder.setCountOfIncomingDatagramTypeSosSmsFail(ADD_COUNT)
+ .setCountOfIncomingDatagramTypeSmsFail(ADD_COUNT);
+ }
+ SatelliteStats.SatelliteControllerParams controllerParam = builder.build();
+ logd("reportIncomingNtnSmsCount(): " + controllerParam);
+ mSatelliteStats.onSatelliteControllerMetrics(controllerParam);
+ }
+
/** Report a counter when an attempt for de-provision is success or not */
public void reportProvisionCount(@NonNull @SatelliteManager.SatelliteResult int result) {
SatelliteStats.SatelliteControllerParams controllerParam;
diff --git a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java
index c586d19..026bfff 100644
--- a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java
+++ b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java
@@ -4158,8 +4158,7 @@
}
UserHandle myUserHandle = UserHandle.of(UserHandle.getCallingUserId());
- return mFeatureFlags.subscriptionUserAssociationQuery()
- && isSubscriptionAssociatedWithUserNoCheck(subscriptionId, myUserHandle);
+ return isSubscriptionAssociatedWithUserNoCheck(subscriptionId, myUserHandle);
}
/**
diff --git a/tests/telephonytests/src/android/telephony/ims/ImsFeatureTest.java b/tests/telephonytests/src/android/telephony/ims/ImsFeatureTest.java
index 2dc0b31..175b875 100644
--- a/tests/telephonytests/src/android/telephony/ims/ImsFeatureTest.java
+++ b/tests/telephonytests/src/android/telephony/ims/ImsFeatureTest.java
@@ -19,7 +19,7 @@
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
diff --git a/tests/telephonytests/src/android/telephony/ims/ImsServiceTest.java b/tests/telephonytests/src/android/telephony/ims/ImsServiceTest.java
index d9d387c..725f84d 100644
--- a/tests/telephonytests/src/android/telephony/ims/ImsServiceTest.java
+++ b/tests/telephonytests/src/android/telephony/ims/ImsServiceTest.java
@@ -23,7 +23,7 @@
import static junit.framework.Assert.fail;
import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
diff --git a/tests/telephonytests/src/android/telephony/ims/SipTransportImplBaseTest.java b/tests/telephonytests/src/android/telephony/ims/SipTransportImplBaseTest.java
index 11b1d22..1fd9b6c 100644
--- a/tests/telephonytests/src/android/telephony/ims/SipTransportImplBaseTest.java
+++ b/tests/telephonytests/src/android/telephony/ims/SipTransportImplBaseTest.java
@@ -22,7 +22,7 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyList;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CallManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/CallManagerTest.java
index 82bbc18..7918115 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CallManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CallManagerTest.java
@@ -18,11 +18,11 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.isA;
-import static org.mockito.Matchers.isNull;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyChar;
import static org.mockito.Mockito.anyString;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierActionAgentTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierActionAgentTest.java
index ed45cd5..aa4f0ca 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierActionAgentTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierActionAgentTest.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierPrivilegesTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierPrivilegesTrackerTest.java
index 1c58ef2..19e186f 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierPrivilegesTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierPrivilegesTrackerTest.java
@@ -30,9 +30,9 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierResolverTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierResolverTest.java
index 753f85c..d4c2914 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierResolverTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierResolverTest.java
@@ -18,7 +18,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierServicesSmsFilterTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierServicesSmsFilterTest.java
index e68d065..7787be7 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierServicesSmsFilterTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierServicesSmsFilterTest.java
@@ -18,10 +18,10 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.timeout;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java
index 7710648..4cb637f 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java
@@ -26,9 +26,9 @@
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.argThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CellIdentityCdmaTest.java b/tests/telephonytests/src/com/android/internal/telephony/CellIdentityCdmaTest.java
deleted file mode 100644
index 53719b1..0000000
--- a/tests/telephonytests/src/com/android/internal/telephony/CellIdentityCdmaTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import static org.junit.Assert.assertEquals;
-
-import android.os.Parcel;
-import android.telephony.CellIdentityCdma;
-import android.test.AndroidTestCase;
-
-import androidx.test.filters.SmallTest;
-
-import com.android.internal.telephony.flags.Flags;
-
-/** Unit tests for {@link CellIdentityCdma}. */
-
-public class CellIdentityCdmaTest extends AndroidTestCase {
- private static final String LOG_TAG = "CellIdentityCdmaTest";
-
- // Network Id ranges from 0 to 65535.
- private static final int NETWORK_ID = 65535;
- // CDMA System Id ranges from 0 to 32767
- private static final int SYSTEM_ID = 32767;
- // Base Station Id ranges from 0 to 65535
- private static final int BASESTATION_ID = 65535;
- // Longitude ranges from -2592000 to 2592000.
- private static final int LONGITUDE = 2592000;
- // Latitude ranges from -1296000 to 1296000.
- private static final int LATITUDE = 1296000;
- private static final String ALPHA_LONG = "long";
- private static final String ALPHA_SHORT = "short";
-
- @SmallTest
- public void testConstructor() {
- if (Flags.cleanupCdma()) return;
- CellIdentityCdma ci =
- new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- ALPHA_LONG, ALPHA_SHORT);
-
- assertEquals(NETWORK_ID, ci.getNetworkId());
- assertEquals(LATITUDE, ci.getLatitude());
- assertEquals(LONGITUDE, ci.getLongitude());
- assertEquals(ALPHA_LONG, ci.getOperatorAlphaLong());
- assertEquals(ALPHA_SHORT, ci.getOperatorAlphaShort());
-
- String globalCi = Integer.toString(SYSTEM_ID, 16) + Integer.toString(NETWORK_ID, 16)
- + Integer.toString(BASESTATION_ID, 16);
- assertEquals(globalCi, ci.getGlobalCellId());
- }
-
- @SmallTest
- public void testNullIsland() {
- if (Flags.cleanupCdma()) return;
- CellIdentityCdma ci =
- new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, -1, 0,
- ALPHA_LONG, ALPHA_SHORT);
-
- assertEquals(Integer.MAX_VALUE, ci.getLatitude());
- assertEquals(Integer.MAX_VALUE, ci.getLongitude());
- }
-
- @SmallTest
- public void testEquals() {
- if (Flags.cleanupCdma()) return;
- CellIdentityCdma ciA =
- new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- ALPHA_LONG, ALPHA_SHORT);
- CellIdentityCdma ciB =
- new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- ALPHA_LONG, ALPHA_SHORT);
-
- assertTrue(ciA.equals(ciB));
-
- ciA = new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- null, null);
- ciB = new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- null, null);
-
- assertTrue(ciA.equals(ciB));
-
- ciA = new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- ALPHA_LONG, ALPHA_SHORT);
- ciB = new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- null, null);
-
- assertFalse(ciA.equals(ciB));
- }
-
- @SmallTest
- public void testParcel() {
- if (Flags.cleanupCdma()) return;
- CellIdentityCdma ci =
- new CellIdentityCdma(NETWORK_ID, SYSTEM_ID, BASESTATION_ID, LONGITUDE, LATITUDE,
- ALPHA_LONG, ALPHA_SHORT);
-
- Parcel p = Parcel.obtain();
- ci.writeToParcel(p, 0);
- p.setDataPosition(0);
-
- CellIdentityCdma newCi = CellIdentityCdma.CREATOR.createFromParcel(p);
- assertEquals(ci, newCi);
- }
-}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthCdmaTest.java b/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthCdmaTest.java
deleted file mode 100644
index ab5e732..0000000
--- a/tests/telephonytests/src/com/android/internal/telephony/CellSignalStrengthCdmaTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import android.os.Parcel;
-import android.telephony.CellSignalStrengthCdma;
-import android.test.AndroidTestCase;
-
-import androidx.test.filters.SmallTest;
-
-import com.android.internal.telephony.flags.Flags;
-
-/** Unit tests for {@link CellSignalStrengthCdma}. */
-
-public class CellSignalStrengthCdmaTest extends AndroidTestCase {
-
- private static final int CDMA_DBM = -74;
- private static final int CDMA_ECIO = -124;
- private static final int EVDO_DBM = -23;
- private static final int EVDO_ECIO = -108;
- private static final int EVDO_SNR = 7;
-
- @SmallTest
- public void testConstructor() {
- if (Flags.cleanupCdma()) return;
- CellSignalStrengthCdma css = new CellSignalStrengthCdma(
- CDMA_DBM, CDMA_ECIO, EVDO_DBM, EVDO_ECIO, EVDO_SNR);
- assertEquals(CDMA_DBM, css.getCdmaDbm());
- assertEquals(CDMA_ECIO, css.getCdmaEcio());
- assertEquals(EVDO_DBM, css.getEvdoDbm());
- assertEquals(EVDO_ECIO, css.getEvdoEcio());
- assertEquals(EVDO_SNR, css.getEvdoSnr());
- }
-
- @SmallTest
- public void testInvalidConstructor() {
- if (Flags.cleanupCdma()) return;
- CellSignalStrengthCdma css = new CellSignalStrengthCdma(200, 2000, 20, 400, 200);
- assertEquals(Integer.MAX_VALUE, css.getCdmaDbm());
- assertEquals(Integer.MAX_VALUE, css.getCdmaEcio());
- assertEquals(Integer.MAX_VALUE, css.getEvdoDbm());
- assertEquals(Integer.MAX_VALUE, css.getEvdoEcio());
- assertEquals(Integer.MAX_VALUE, css.getEvdoSnr());
- }
-
- @SmallTest
- public void testDefaultConstructor() {
- if (Flags.cleanupCdma()) return;
- CellSignalStrengthCdma css = new CellSignalStrengthCdma();
- assertEquals(Integer.MAX_VALUE, css.getCdmaDbm());
- assertEquals(Integer.MAX_VALUE, css.getCdmaEcio());
- assertEquals(Integer.MAX_VALUE, css.getEvdoDbm());
- assertEquals(Integer.MAX_VALUE, css.getEvdoEcio());
- assertEquals(Integer.MAX_VALUE, css.getEvdoSnr());
- }
-
- @SmallTest
- public void testEquals() {
- if (Flags.cleanupCdma()) return;
- assertTrue(new CellSignalStrengthCdma(
- CDMA_DBM, CDMA_ECIO, EVDO_DBM, EVDO_ECIO, EVDO_SNR).equals(
- new CellSignalStrengthCdma(
- CDMA_DBM, CDMA_ECIO, EVDO_DBM, EVDO_ECIO, EVDO_SNR)));
- assertFalse(new CellSignalStrengthCdma(
- CDMA_DBM, CDMA_ECIO, EVDO_DBM, EVDO_ECIO, EVDO_SNR).equals(
- new CellSignalStrengthCdma(CDMA_DBM, CDMA_ECIO, -24, EVDO_ECIO, EVDO_SNR)));
- }
-
- @SmallTest
- public void testParcel() {
- if (Flags.cleanupCdma()) return;
- CellSignalStrengthCdma css = new CellSignalStrengthCdma(
- CDMA_DBM, CDMA_ECIO, EVDO_DBM, EVDO_ECIO, EVDO_SNR);
-
- Parcel p = Parcel.obtain();
- css.writeToParcel(p, 0);
- p.setDataPosition(0);
-
- CellSignalStrengthCdma newCss = CellSignalStrengthCdma.CREATOR.createFromParcel(p);
- assertEquals(css, newCss);
- }
-}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java b/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java
index 39139bf..8f77c05 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java
@@ -20,9 +20,9 @@
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -791,14 +791,14 @@
public ContextFixture() {
MockitoAnnotations.initMocks(this);
- doAnswer(new Answer<List<ResolveInfo>>() {
+ lenient().doAnswer(new Answer<List<ResolveInfo>>() {
@Override
public List<ResolveInfo> answer(InvocationOnMock invocation) throws Throwable {
return doQueryIntentServices((Intent) invocation.getArguments()[0]);
}
}).when(mPackageManager).queryIntentServices((Intent) any(), anyInt());
- doAnswer(new Answer<List<ResolveInfo>>() {
+ lenient().doAnswer(new Answer<List<ResolveInfo>>() {
@Override
public List<ResolveInfo> answer(InvocationOnMock invocation) throws Throwable {
return doQueryIntentServices((Intent) invocation.getArguments()[0]);
@@ -812,30 +812,32 @@
Log.d(TAG, "NameNotFoundException: e=" + e);
}
- doAnswer((Answer<Boolean>)
+ lenient().doAnswer((Answer<Boolean>)
invocation -> mSystemFeatures.contains((String) invocation.getArgument(0)))
.when(mPackageManager).hasSystemFeature(any());
try {
- doReturn(mResources).when(mPackageManager).getResourcesForApplication(anyString());
+ lenient().doReturn(mResources).when(mPackageManager)
+ .getResourcesForApplication(anyString());
} catch (NameNotFoundException ex) {
Log.d(TAG, "NameNotFoundException: ex=" + ex);
}
- doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
- doReturn(mBundle).when(mCarrierConfigManager).getConfig();
- doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt(), anyString());
- doAnswer(invocation -> mNetworkId++).when(mNetwork).getNetId();
- doReturn(mNetwork).when(mConnectivityManager).registerNetworkAgent(
+ lenient().doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
+ lenient().doReturn(mBundle).when(mCarrierConfigManager).getConfig();
+ lenient().doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt(),
+ anyString());
+ lenient().doAnswer(invocation -> mNetworkId++).when(mNetwork).getNetId();
+ lenient().doReturn(mNetwork).when(mConnectivityManager).registerNetworkAgent(
any(), any(), any(), any(), any(), any(), anyInt());
- doReturn(true).when(mEuiccManager).isEnabled();
+ lenient().doReturn(true).when(mEuiccManager).isEnabled();
mConfiguration.locale = Locale.US;
- doReturn(mConfiguration).when(mResources).getConfiguration();
+ lenient().doReturn(mConfiguration).when(mResources).getConfiguration();
mDisplayMetrics.density = 2.25f;
- doReturn(mDisplayMetrics).when(mResources).getDisplayMetrics();
+ lenient().doReturn(mDisplayMetrics).when(mResources).getDisplayMetrics();
mPermissionTable.add(PERMISSION_ENABLE_ALL);
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/DefaultPhoneNotifierTest.java b/tests/telephonytests/src/com/android/internal/telephony/DefaultPhoneNotifierTest.java
index 522cdac..7591161 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/DefaultPhoneNotifierTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/DefaultPhoneNotifierTest.java
@@ -23,7 +23,7 @@
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/DeviceStateMonitorTest.java b/tests/telephonytests/src/com/android/internal/telephony/DeviceStateMonitorTest.java
index 6baf10a..057b745 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/DeviceStateMonitorTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/DeviceStateMonitorTest.java
@@ -22,10 +22,10 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/GbaManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/GbaManagerTest.java
index e97b1c0..97c4962 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/GbaManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/GbaManagerTest.java
@@ -22,9 +22,9 @@
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java
index 967c41e..1093bb9 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaConnectionTest.java
@@ -89,7 +89,6 @@
@Test @SmallTest
public void testOriginalDialString(){
- doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mPhone).getPhoneType();
connection = new GsmCdmaConnection(mPhone, "+8610000", mCT, null,
new DialArgs.Builder().build());
assertEquals("+8610000", connection.getOrigDialString());
diff --git a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
index 6035c8d..3f77744 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java
@@ -37,8 +37,8 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
@@ -147,14 +147,6 @@
private static final int EVENT_EMERGENCY_CALL_TOGGLE = 2;
private static final int EVENT_SET_ICC_LOCK_ENABLED = 3;
- private void switchToGsm() {
- mSimulatedCommands.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_GSM);
- mPhoneUT.sendMessage(mPhoneUT.obtainMessage(GsmCdmaPhone.EVENT_VOICE_RADIO_TECH_CHANGED,
- new AsyncResult(null, new int[]{ServiceState.RIL_RADIO_TECHNOLOGY_GSM}, null)));
- processAllMessages();
- assertEquals(PhoneConstants.PHONE_TYPE_GSM, mPhoneUT.getPhoneType());
- }
-
@Before
public void setUp() throws Exception {
super.setUp(getClass().getSimpleName());
@@ -386,39 +378,6 @@
@Test
@SmallTest
- public void testGetSubscriberIdForCdmaLtePhone() {
- final String subscriberId = "abcdefghijk";
- IccRecords iccRecords = Mockito.mock(IccRecords.class);
- doReturn(subscriberId).when(iccRecords).getIMSI();
- doReturn(iccRecords).when(mUiccController)
- .getIccRecords(anyInt() /* phoneId */, eq(UiccController.APP_FAM_3GPP));
-
- // Ensure the phone type is CdmaLte
- GsmCdmaPhone spyPhone = spy(mPhoneUT);
- doReturn(false).when(spyPhone).isPhoneTypeCdma();
- doReturn(true).when(spyPhone).isPhoneTypeCdmaLte();
- doReturn(false).when(spyPhone).isPhoneTypeGsm();
-
- assertEquals(subscriberId, spyPhone.getSubscriberId());
- }
-
- @Test
- @SmallTest
- public void testGetSubscriberIdForCdmaPhone() {
- final String subscriberId = "987654321";
- doReturn(subscriberId).when(mSST).getImsi();
-
- // Ensure the phone type is GSM
- GsmCdmaPhone spyPhone = spy(mPhoneUT);
- doReturn(true).when(spyPhone).isPhoneTypeCdma();
- doReturn(false).when(spyPhone).isPhoneTypeCdmaLte();
- doReturn(false).when(spyPhone).isPhoneTypeGsm();
-
- assertEquals(subscriberId, spyPhone.getSubscriberId());
- }
-
- @Test
- @SmallTest
public void testGetCellLocation() {
// GSM
CellIdentity cellLocation = new CellIdentityGsm();
@@ -681,16 +640,16 @@
doReturn(true).when(mTelephonyManager).isEmergencyNumber(emergencyNumber);
// Feature flag enabled
- // Device does not have FEATURE_TELEPHONY_CALLING
+ // Device does not have FEATURE_TELEPHONY_MESSAGING
doReturn(false).when(mPackageManager).hasSystemFeature(
- eq(PackageManager.FEATURE_TELEPHONY_CALLING));
+ eq(PackageManager.FEATURE_TELEPHONY_MESSAGING));
mPhoneUT.notifySmsSent(emergencyNumber);
processAllMessages();
assertFalse(mPhoneUT.isInEmergencySmsMode());
- // Device has FEATURE_TELEPHONY_CALLING
+ // Device has FEATURE_TELEPHONY_MESSAGING
doReturn(true).when(mPackageManager).hasSystemFeature(
- eq(PackageManager.FEATURE_TELEPHONY_CALLING));
+ eq(PackageManager.FEATURE_TELEPHONY_MESSAGING));
mPhoneUT.notifySmsSent(emergencyNumber);
processAllMessages();
assertTrue(mPhoneUT.isInEmergencySmsMode());
@@ -1068,8 +1027,6 @@
public void testGetLine1NumberForGsmPhone() {
final String msisdn = "+1234567890";
doReturn(msisdn).when(mSimRecords).getMsisdnNumber();
-
- switchToGsm();
assertEquals(msisdn, mPhoneUT.getLine1Number());
}
@@ -2436,14 +2393,6 @@
}
@Test
- public void getImei() {
- assertTrue(mPhoneUT.isPhoneTypeGsm());
- Message message = mPhoneUT.obtainMessage(Phone.EVENT_RADIO_AVAILABLE);
- mPhoneUT.handleMessage(message);
- verify(mSimulatedCommandsVerifier, times(2)).getImei(nullable(Message.class));
- }
-
- @Test
public void testSetAllowedNetworkTypes_admin2gRestrictionHonored() throws Exception {
// circumvent loading/saving to sim db. it's not behavior under test.
TelephonyManager.setupISubForTest(Mockito.mock(SubscriptionManagerService.class));
diff --git a/tests/telephonytests/src/com/android/internal/telephony/LocaleTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/LocaleTrackerTest.java
index 6674af0..7f9249b 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/LocaleTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/LocaleTrackerTest.java
@@ -19,7 +19,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.reset;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/MultiSimSettingControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/MultiSimSettingControllerTest.java
index 855a5dc..50455ea 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/MultiSimSettingControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/MultiSimSettingControllerTest.java
@@ -249,8 +249,6 @@
bundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
- doReturn(true).when(mFeatureFlags).resetPrimarySimDefaultValues();
-
replaceInstance(PhoneFactory.class, "sPhones", null, mPhones);
// Capture listener to emulate the carrier config change notification used later
ArgumentCaptor<CarrierConfigManager.CarrierConfigChangeListener> listenerArgumentCaptor =
diff --git a/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java
index ba9bc74..4db6f56 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java
@@ -1373,6 +1373,60 @@
}
@Test
+ public void testSecondaryPciTimerExpire() throws Exception {
+ testTransitionToCurrentStateNrConnectedMmwave();
+ assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_ADVANCED,
+ mNetworkTypeController.getOverrideNetworkType());
+
+ mBundle.putString(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING,
+ "connected_mmwave,any,10;connected,any,10;not_restricted_rrc_con,any,10");
+ mBundle.putInt(CarrierConfigManager.KEY_NR_ADVANCED_PCI_CHANGE_SECONDARY_TIMER_SECONDS_INT,
+ 30);
+ sendCarrierConfigChanged();
+
+ // should trigger 10 second primary timer
+ doReturn(NetworkRegistrationInfo.NR_STATE_NONE).when(mServiceState).getNrState();
+ mNetworkTypeController.sendMessage(3 /* EVENT_SERVICE_STATE_CHANGED */);
+ processAllMessages();
+
+ assertEquals("legacy", getCurrentState().getName());
+ assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_ADVANCED,
+ mNetworkTypeController.getOverrideNetworkType());
+ assertTrue(mNetworkTypeController.areAnyTimersActive());
+
+ // Before primary timer expires, PCI changed, indicating 5G UW might soon recover
+ moveTimeForward(5 * 1000);
+ mNetworkTypeController.sendMessage(11 /* EVENT_PHYSICAL_CHANNEL_CONFIGS_CHANGED */,
+ new AsyncResult(null,
+ List.of(new PhysicalChannelConfig.Builder()
+ .setPhysicalCellId(2)
+ .setNetworkType(TelephonyManager.NETWORK_TYPE_NR)
+ .setCellConnectionStatus(CellInfo.CONNECTION_PRIMARY_SERVING)
+ .build()),
+ null));
+ processAllMessages();
+
+ // primary timer expires
+ moveTimeForward(5 * 1000);
+ processAllMessages();
+
+ // should trigger 30 second secondary timer
+ assertEquals("legacy", getCurrentState().getName());
+ assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_ADVANCED,
+ mNetworkTypeController.getOverrideNetworkType());
+ assertTrue(mNetworkTypeController.areAnyTimersActive());
+
+ // secondary timer expires
+ moveTimeForward(30 * 1000);
+ processAllMessages();
+
+ assertEquals("legacy", getCurrentState().getName());
+ assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE,
+ mNetworkTypeController.getOverrideNetworkType());
+ assertFalse(mNetworkTypeController.areAnyTimersActive());
+ }
+
+ @Test
public void testSecondaryTimerReset() throws Exception {
doReturn(NetworkRegistrationInfo.NR_STATE_CONNECTED).when(mServiceState).getNrState();
mBundle.putString(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING,
diff --git a/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java b/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java
index 7a30984..b08830c 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/PhoneNumberUtilsTest.java
@@ -21,8 +21,6 @@
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
-import com.android.internal.telephony.flags.Flags;
-
import android.net.Uri;
import android.platform.test.flag.junit.SetFlagsRule;
import android.telephony.PhoneNumberUtils;
@@ -32,6 +30,8 @@
import androidx.test.filters.FlakyTest;
import androidx.test.filters.SmallTest;
+import com.android.internal.telephony.flags.Flags;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -560,6 +560,8 @@
assertEquals("+16502910000", PhoneNumberUtils.formatNumberToE164("650 2910000", "US"));
assertNull(PhoneNumberUtils.formatNumberToE164("1234567", "US"));
assertEquals("+18004664114", PhoneNumberUtils.formatNumberToE164("800-GOOG-114", "US"));
+
+ assertEquals("+447445032046", PhoneNumberUtils.formatNumberToE164("0 7445 032046", "GB"));
}
@SmallTest
diff --git a/tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java
index cbcd89d..24267db 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java
@@ -28,7 +28,7 @@
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/RILTest.java b/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
index d537d77..8a7c1f0 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
@@ -32,7 +32,6 @@
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_CONFERENCE;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DATA_REGISTRATION_STATE;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DELETE_SMS_ON_SIM;
-import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DEVICE_IDENTITY;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DEVICE_IMEI;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_DTMF;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ENABLE_UICC_APPLICATIONS;
@@ -57,7 +56,6 @@
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND;
-import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_REGISTRATION_STATE;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_SEND_SMS;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_CALL_FAIL_CAUSE;
import static com.android.internal.telephony.RILConstants.RIL_REQUEST_NV_READ_ITEM;
@@ -98,8 +96,8 @@
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
@@ -1012,15 +1010,6 @@
@FlakyTest
@Test
- public void testGetDeviceIdentity() throws Exception {
- mRILUnderTest.getDeviceIdentity(obtainMessage());
- verify(mRadioProxy).getDeviceIdentity(mSerialNumberCaptor.capture());
- verifyRILResponse(
- mRILUnderTest, mSerialNumberCaptor.getValue(), RIL_REQUEST_DEVICE_IDENTITY);
- }
-
- @FlakyTest
- @Test
public void testExitEmergencyCallbackMode() throws Exception {
mRILUnderTest.exitEmergencyCallbackMode(obtainMessage());
verify(mRadioProxy).exitEmergencyCallbackMode(mSerialNumberCaptor.capture());
@@ -1156,15 +1145,6 @@
@FlakyTest
@Test
- public void testGetImsRegistrationState() throws Exception {
- mRILUnderTest.getImsRegistrationState(obtainMessage());
- verify(mRadioProxy).getImsRegistrationState(mSerialNumberCaptor.capture());
- verifyRILResponse(
- mRILUnderTest, mSerialNumberCaptor.getValue(), RIL_REQUEST_IMS_REGISTRATION_STATE);
- }
-
- @FlakyTest
- @Test
public void testSendRetryImsGsmSms() throws Exception {
String smscPdu = "smscPdu";
String pdu = "pdu";
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java
index bd732ea..316ccd7 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java
@@ -27,9 +27,8 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.atLeast;
@@ -98,7 +97,6 @@
import androidx.test.filters.SmallTest;
import com.android.internal.R;
-import com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager;
import com.android.internal.telephony.data.AccessNetworksManager;
import com.android.internal.telephony.data.DataNetworkController;
import com.android.internal.telephony.emergency.EmergencyStateTracker;
@@ -121,7 +119,6 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.stream.Collectors;
@@ -1010,52 +1007,6 @@
@Test
@MediumTest
- public void testUpdatePhoneType() {
- String brandOverride = "spn from brand override";
- doReturn(brandOverride).when(mUiccProfile).getOperatorBrandOverride();
- doReturn(false).when(mPhone).isPhoneTypeGsm();
- doReturn(true).when(mPhone).isPhoneTypeCdmaLte();
- doReturn(CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM).when(mCdmaSSM).
- getCdmaSubscriptionSource();
-
- // switch to CDMA
- logd("Calling updatePhoneType");
- sst.updatePhoneType();
-
- ArgumentCaptor<Integer> integerArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
- verify(mRuimRecords).registerForRecordsLoaded(eq(sst), integerArgumentCaptor.capture(),
- nullable(Object.class));
-
- // response for mRuimRecords.registerForRecordsLoaded()
- Message msg = Message.obtain();
- msg.what = integerArgumentCaptor.getValue();
- msg.obj = new AsyncResult(null, null, null);
- sst.sendMessage(msg);
- waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
-
- // on RUIM_RECORDS_LOADED, sst is expected to call following apis
- verify(mRuimRecords, times(1)).isProvisioned();
-
- // switch back to GSM
- doReturn(true).when(mPhone).isPhoneTypeGsm();
- doReturn(false).when(mPhone).isPhoneTypeCdmaLte();
-
- // response for mRuimRecords.registerForRecordsLoaded() can be sent after switching to GSM
- msg = Message.obtain();
- msg.what = integerArgumentCaptor.getValue();
- msg.obj = new AsyncResult(null, null, null);
- sst.sendMessage(msg);
-
- // There's no easy way to check if the msg was handled or discarded. Wait to make sure sst
- // did not crash, and then verify that the functions called records loaded are not called
- // again
- waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
-
- verify(mRuimRecords, times(1)).isProvisioned();
- }
-
- @Test
- @MediumTest
public void testRegAndUnregForVoiceRoamingOn() throws Exception {
sst.registerForVoiceRoamingOn(mTestHandler, EVENT_DATA_ROAMING_ON, null);
@@ -1800,59 +1751,6 @@
}
@Test
- @MediumTest
- public void testRegisterForSubscriptionInfoReady() {
- sst.registerForSubscriptionInfoReady(mTestHandler, EVENT_SUBSCRIPTION_INFO_READY, null);
-
- // Call functions which would trigger posting of message on test handler
- doReturn(false).when(mPhone).isPhoneTypeGsm();
- sst.updatePhoneType();
- mSimulatedCommands.notifyOtaProvisionStatusChanged();
-
- waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
-
- // verify posted message
- ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
- verify(mTestHandler).sendMessageAtTime(messageArgumentCaptor.capture(), anyLong());
- assertEquals(EVENT_SUBSCRIPTION_INFO_READY, messageArgumentCaptor.getValue().what);
- }
-
- @Test
- @MediumTest
- public void testRoamingPhoneTypeSwitch() {
- // Enable roaming
- doReturn(true).when(mPhone).isPhoneTypeGsm();
-
- mSimulatedCommands.setVoiceRegState(NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING);
- mSimulatedCommands.setDataRegState(NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING);
- mSimulatedCommands.notifyNetworkStateChanged();
-
- waitForLastHandlerAction(mSSTTestHandler.getThreadHandler());
-
- sst.registerForDataRoamingOff(mTestHandler, EVENT_DATA_ROAMING_OFF, null, true);
- sst.registerForVoiceRoamingOff(mTestHandler, EVENT_VOICE_ROAMING_OFF, null);
- sst.registerForDataConnectionDetached(AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
- mTestHandler, EVENT_DATA_CONNECTION_DETACHED, null);
-
- // Call functions which would trigger posting of message on test handler
- doReturn(false).when(mPhone).isPhoneTypeGsm();
- sst.updatePhoneType();
-
- // verify if registered handler has message posted to it
- ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
- verify(mTestHandler, atLeast(3)).sendMessageAtTime(
- messageArgumentCaptor.capture(), anyLong());
- HashSet<Integer> messageSet = new HashSet<>();
- for (Message m : messageArgumentCaptor.getAllValues()) {
- messageSet.add(m.what);
- }
-
- assertTrue(messageSet.contains(EVENT_DATA_ROAMING_OFF));
- assertTrue(messageSet.contains(EVENT_VOICE_ROAMING_OFF));
- assertTrue(messageSet.contains(EVENT_DATA_CONNECTION_DETACHED));
- }
-
- @Test
@SmallTest
public void testGetDesiredPowerState() {
sst.setRadioPower(true);
@@ -1867,34 +1765,6 @@
}
@Test
- @SmallTest
- public void testIsConcurrentVoiceAndDataAllowed() {
- doReturn(false).when(mPhone).isPhoneTypeGsm();
- sst.mSS.setCssIndicator(1);
- assertEquals(true, sst.isConcurrentVoiceAndDataAllowed());
- sst.mSS.setCssIndicator(0);
- assertEquals(false, sst.isConcurrentVoiceAndDataAllowed());
-
- doReturn(true).when(mPhone).isPhoneTypeGsm();
- NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
- .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
- .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_HSPA)
- .setDomain(NetworkRegistrationInfo.DOMAIN_PS)
- .build();
- sst.mSS.addNetworkRegistrationInfo(nri);
- assertEquals(true, sst.isConcurrentVoiceAndDataAllowed());
- nri = new NetworkRegistrationInfo.Builder()
- .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
- .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_GPRS)
- .setDomain(NetworkRegistrationInfo.DOMAIN_PS)
- .build();
- sst.mSS.addNetworkRegistrationInfo(nri);
- assertEquals(false, sst.isConcurrentVoiceAndDataAllowed());
- sst.mSS.setCssIndicator(1);
- assertEquals(true, sst.isConcurrentVoiceAndDataAllowed());
- }
-
- @Test
@MediumTest
public void testIsImsRegistered() throws Exception {
mSimulatedCommands.setImsRegistrationState(new int[]{1, PhoneConstants.PHONE_TYPE_GSM});
@@ -2763,59 +2633,6 @@
@Test
@SmallTest
- public void testGetMdn() {
- doReturn(false).when(mPhone).isPhoneTypeGsm();
- doReturn(false).when(mPhone).isPhoneTypeCdma();
- doReturn(true).when(mPhone).isPhoneTypeCdmaLte();
- doReturn(CdmaSubscriptionSourceManager.SUBSCRIPTION_FROM_RUIM).when(mCdmaSSM)
- .getCdmaSubscriptionSource();
- doReturn(PHONE_ID).when(mPhone).getPhoneId();
-
- logd("Calling updatePhoneType");
- // switch to CDMA
- sst.updatePhoneType();
-
- // trigger RUIM_RECORDS_LOADED
- ArgumentCaptor<Integer> integerArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
- verify(mRuimRecords).registerForRecordsLoaded(eq(sst), integerArgumentCaptor.capture(),
- nullable(Object.class));
-
- // response for mRuimRecords.registerForRecordsLoaded()
- Message msg = Message.obtain();
- msg.what = integerArgumentCaptor.getValue();
- msg.obj = new AsyncResult(null, null, null);
- sst.sendMessage(msg);
-
- // wait for RUIM_RECORDS_LOADED to be handled
- waitForHandlerAction(sst, 5000);
-
- // mdn should be null as nothing populated it
- assertEquals(null, sst.getMdnNumber());
-
- // if ruim is provisioned, mdn should still be null
- doReturn(true).when(mRuimRecords).isProvisioned();
- assertEquals(null, sst.getMdnNumber());
-
- // if ruim is not provisioned, and mdn is non null, sst should still return the correct
- // value
- doReturn(false).when(mRuimRecords).isProvisioned();
- String mockMdn = "mockMdn";
- doReturn(mockMdn).when(mRuimRecords).getMdn();
-
- // trigger RUIM_RECORDS_LOADED
- Message msg1 = Message.obtain();
- msg1.what = integerArgumentCaptor.getValue();
- msg1.obj = new AsyncResult(null, null, null);
- sst.sendMessage(msg1);
-
- // wait for RUIM_RECORDS_LOADED to be handled
- waitForHandlerAction(sst, 5000);
-
- assertEquals(mockMdn, sst.getMdnNumber());
- }
-
- @Test
- @SmallTest
public void testOnLteVopsInfoChanged() {
ServiceState ss = new ServiceState();
ss.setVoiceRegState(ServiceState.STATE_IN_SERVICE);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SimActivationTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/SimActivationTrackerTest.java
index 23d992a..eb312f1 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SimActivationTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SimActivationTrackerTest.java
@@ -22,7 +22,7 @@
import static android.telephony.TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/Sms7BitEncodingTranslatorTest.java b/tests/telephonytests/src/com/android/internal/telephony/Sms7BitEncodingTranslatorTest.java
index 3295640..263e784 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/Sms7BitEncodingTranslatorTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/Sms7BitEncodingTranslatorTest.java
@@ -18,7 +18,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SmsDispatchersControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/SmsDispatchersControllerTest.java
index 6b982a3..37362d5 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SmsDispatchersControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SmsDispatchersControllerTest.java
@@ -26,9 +26,9 @@
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.isNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doNothing;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
index fff3363..26ab6da 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
@@ -21,13 +21,14 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.spy;
import android.app.ActivityManager;
@@ -174,23 +175,6 @@
new ArrayList<String>(), EmergencyNumber.EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING,
EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL);
- private static final Field MESSAGE_QUEUE_FIELD;
- private static final Field MESSAGE_WHEN_FIELD;
- private static final Field MESSAGE_NEXT_FIELD;
-
- static {
- try {
- MESSAGE_QUEUE_FIELD = MessageQueue.class.getDeclaredField("mMessages");
- MESSAGE_QUEUE_FIELD.setAccessible(true);
- MESSAGE_WHEN_FIELD = Message.class.getDeclaredField("when");
- MESSAGE_WHEN_FIELD.setAccessible(true);
- MESSAGE_NEXT_FIELD = Message.class.getDeclaredField("next");
- MESSAGE_NEXT_FIELD.setAccessible(true);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException("Failed to initialize TelephonyTest", e);
- }
- }
-
// Mocked classes
protected FeatureFlags mFeatureFlags;
protected GsmCdmaPhone mPhone;
@@ -580,11 +564,11 @@
mDomainSelectionResolver = Mockito.mock(DomainSelectionResolver.class);
mNullCipherNotifier = Mockito.mock(NullCipherNotifier.class);
- doReturn(true).when(mFeatureFlags).hsumBroadcast();
- doReturn(true).when(mFeatureFlags).hsumPackageManager();
- doReturn(true).when(mFeatureFlags).dataServiceCheck();
- doReturn(true).when(mFeatureFlags).phoneTypeCleanup();
- doReturn(true).when(mFeatureFlags).cleanupCdma();
+ lenient().doReturn(true).when(mFeatureFlags).hsumBroadcast();
+ lenient().doReturn(true).when(mFeatureFlags).hsumPackageManager();
+ lenient().doReturn(true).when(mFeatureFlags).dataServiceCheck();
+ lenient().doReturn(true).when(mFeatureFlags).phoneTypeCleanup();
+ lenient().doReturn(true).when(mFeatureFlags).cleanupCdma();
WorkerThread.reset();
TelephonyManager.disableServiceHandleCaching();
@@ -612,16 +596,16 @@
Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
mServiceManagerMockedServices.put("isub", mSubscriptionManagerService);
- doReturn(mSubscriptionManagerService).when(mSubscriptionManagerService)
+ lenient().doReturn(mSubscriptionManagerService).when(mSubscriptionManagerService)
.queryLocalInterface(anyString());
mPhone.mCi = mSimulatedCommands;
mCT.mCi = mSimulatedCommands;
- doReturn(mUiccCard).when(mPhone).getUiccCard();
- doReturn(mUiccCard).when(mUiccSlot).getUiccCard();
- doReturn(mUiccCard).when(mUiccController).getUiccCardForPhone(anyInt());
- doReturn(mUiccPort).when(mPhone).getUiccPort();
- doReturn(mUiccProfile).when(mUiccPort).getUiccProfile();
+ lenient().doReturn(mUiccCard).when(mPhone).getUiccCard();
+ lenient().doReturn(mUiccCard).when(mUiccSlot).getUiccCard();
+ lenient().doReturn(mUiccCard).when(mUiccController).getUiccCardForPhone(anyInt());
+ lenient().doReturn(mUiccPort).when(mPhone).getUiccPort();
+ lenient().doReturn(mUiccProfile).when(mUiccPort).getUiccProfile();
mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
mTelecomManager = mContext.getSystemService(TelecomManager.class);
@@ -646,127 +630,130 @@
mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
//mTelephonyComponentFactory
- doReturn(mTelephonyComponentFactory).when(mTelephonyComponentFactory).inject(anyString());
- doReturn(mSST).when(mTelephonyComponentFactory)
+ lenient().doReturn(mTelephonyComponentFactory).when(mTelephonyComponentFactory)
+ .inject(anyString());
+ lenient().doReturn(mSST).when(mTelephonyComponentFactory)
.makeServiceStateTracker(nullable(GsmCdmaPhone.class),
nullable(CommandsInterface.class), nullable(FeatureFlags.class));
- doReturn(mEmergencyNumberTracker).when(mTelephonyComponentFactory)
+ lenient().doReturn(mEmergencyNumberTracker).when(mTelephonyComponentFactory)
.makeEmergencyNumberTracker(nullable(Phone.class),
nullable(CommandsInterface.class), any(FeatureFlags.class));
- doReturn(getTestEmergencyNumber()).when(mEmergencyNumberTracker)
+ lenient().doReturn(getTestEmergencyNumber()).when(mEmergencyNumberTracker)
.getEmergencyNumber(any());
- doReturn(mUiccProfile).when(mTelephonyComponentFactory)
+ lenient().doReturn(mUiccProfile).when(mTelephonyComponentFactory)
.makeUiccProfile(nullable(Context.class), nullable(CommandsInterface.class),
nullable(IccCardStatus.class), anyInt(), nullable(UiccCard.class),
nullable(Object.class), any(FeatureFlags.class));
- doReturn(mCT).when(mTelephonyComponentFactory)
+ lenient().doReturn(mCT).when(mTelephonyComponentFactory)
.makeGsmCdmaCallTracker(nullable(GsmCdmaPhone.class), any(FeatureFlags.class));
- doReturn(mIccPhoneBookIntManager).when(mTelephonyComponentFactory)
+ lenient().doReturn(mIccPhoneBookIntManager).when(mTelephonyComponentFactory)
.makeIccPhoneBookInterfaceManager(nullable(Phone.class));
- doReturn(mDisplayInfoController).when(mTelephonyComponentFactory)
+ lenient().doReturn(mDisplayInfoController).when(mTelephonyComponentFactory)
.makeDisplayInfoController(nullable(Phone.class), any(FeatureFlags.class));
- doReturn(mWspTypeDecoder).when(mTelephonyComponentFactory)
+ lenient().doReturn(mWspTypeDecoder).when(mTelephonyComponentFactory)
.makeWspTypeDecoder(nullable(byte[].class));
- doReturn(mImsCT).when(mTelephonyComponentFactory)
+ lenient().doReturn(mImsCT).when(mTelephonyComponentFactory)
.makeImsPhoneCallTracker(nullable(ImsPhone.class), any(FeatureFlags.class));
- doReturn(mCdmaSSM).when(mTelephonyComponentFactory)
+ lenient().doReturn(mCdmaSSM).when(mTelephonyComponentFactory)
.getCdmaSubscriptionSourceManagerInstance(nullable(Context.class),
nullable(CommandsInterface.class), nullable(Handler.class),
anyInt(), nullable(Object.class));
- doReturn(mImsExternalCallTracker).when(mTelephonyComponentFactory)
+ lenient().doReturn(mImsExternalCallTracker).when(mTelephonyComponentFactory)
.makeImsExternalCallTracker(nullable(ImsPhone.class));
- doReturn(mImsNrSaModeHandler).when(mTelephonyComponentFactory)
+ lenient().doReturn(mImsNrSaModeHandler).when(mTelephonyComponentFactory)
.makeImsNrSaModeHandler(nullable(ImsPhone.class));
- doReturn(mAppSmsManager).when(mTelephonyComponentFactory)
+ lenient().doReturn(mAppSmsManager).when(mTelephonyComponentFactory)
.makeAppSmsManager(nullable(Context.class));
- doReturn(mCarrierSignalAgent).when(mTelephonyComponentFactory)
+ lenient().doReturn(mCarrierSignalAgent).when(mTelephonyComponentFactory)
.makeCarrierSignalAgent(nullable(Phone.class));
- doReturn(mCarrierActionAgent).when(mTelephonyComponentFactory)
+ lenient().doReturn(mCarrierActionAgent).when(mTelephonyComponentFactory)
.makeCarrierActionAgent(nullable(Phone.class));
- doReturn(mDeviceStateMonitor).when(mTelephonyComponentFactory)
+ lenient().doReturn(mDeviceStateMonitor).when(mTelephonyComponentFactory)
.makeDeviceStateMonitor(nullable(Phone.class), any(FeatureFlags.class));
- doReturn(mAccessNetworksManager).when(mTelephonyComponentFactory)
+ lenient().doReturn(mAccessNetworksManager).when(mTelephonyComponentFactory)
.makeAccessNetworksManager(nullable(Phone.class), any(Looper.class));
- doReturn(mNitzStateMachine).when(mTelephonyComponentFactory)
+ lenient().doReturn(mNitzStateMachine).when(mTelephonyComponentFactory)
.makeNitzStateMachine(nullable(GsmCdmaPhone.class));
- doReturn(mLocaleTracker).when(mTelephonyComponentFactory)
+ lenient().doReturn(mLocaleTracker).when(mTelephonyComponentFactory)
.makeLocaleTracker(nullable(Phone.class), nullable(NitzStateMachine.class),
nullable(Looper.class), any(FeatureFlags.class));
- doReturn(mEriManager).when(mTelephonyComponentFactory)
+ lenient().doReturn(mEriManager).when(mTelephonyComponentFactory)
.makeEriManager(nullable(Phone.class), anyInt());
- doReturn(mLinkBandwidthEstimator).when(mTelephonyComponentFactory)
+ lenient().doReturn(mLinkBandwidthEstimator).when(mTelephonyComponentFactory)
.makeLinkBandwidthEstimator(nullable(Phone.class), any(Looper.class));
- doReturn(mDataProfileManager).when(mTelephonyComponentFactory)
+ lenient().doReturn(mDataProfileManager).when(mTelephonyComponentFactory)
.makeDataProfileManager(any(Phone.class), any(DataNetworkController.class),
any(DataServiceManager.class), any(Looper.class),
any(FeatureFlags.class),
any(DataProfileManager.DataProfileManagerCallback.class));
- doReturn(mSafetySource).when(mTelephonyComponentFactory)
+ lenient().doReturn(mSafetySource).when(mTelephonyComponentFactory)
.makeCellularNetworkSecuritySafetySource(any(Context.class));
- doReturn(mIdentifierDisclosureNotifier)
+ lenient().doReturn(mIdentifierDisclosureNotifier)
.when(mTelephonyComponentFactory)
.makeIdentifierDisclosureNotifier(
nullable(CellularNetworkSecuritySafetySource.class));
- doReturn(mNullCipherNotifier)
+ lenient().doReturn(mNullCipherNotifier)
.when(mTelephonyComponentFactory)
.makeNullCipherNotifier(nullable(CellularNetworkSecuritySafetySource.class));
//mPhone
- doReturn(mContext).when(mPhone).getContext();
- doReturn(mContext).when(mPhone2).getContext();
- doReturn(mContext).when(mImsPhone).getContext();
- doReturn(true).when(mPhone).getUnitTestMode();
- doReturn(mUiccProfile).when(mPhone).getIccCard();
- doReturn(mServiceState).when(mPhone).getServiceState();
- doReturn(mServiceState).when(mImsPhone).getServiceState();
- doReturn(mPhone).when(mImsPhone).getDefaultPhone();
- doReturn(true).when(mPhone).isPhoneTypeGsm();
- doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mPhone).getPhoneType();
- doReturn(mCT).when(mPhone).getCallTracker();
- doReturn(mSST).when(mPhone).getServiceStateTracker();
- doReturn(mDeviceStateMonitor).when(mPhone).getDeviceStateMonitor();
- doReturn(mDisplayInfoController).when(mPhone).getDisplayInfoController();
- doReturn(mSignalStrengthController).when(mPhone).getSignalStrengthController();
- doReturn(mEmergencyNumberTracker).when(mPhone).getEmergencyNumberTracker();
- doReturn(mCarrierSignalAgent).when(mPhone).getCarrierSignalAgent();
- doReturn(mCarrierActionAgent).when(mPhone).getCarrierActionAgent();
- doReturn(mAppSmsManager).when(mPhone).getAppSmsManager();
- doReturn(mIccSmsInterfaceManager).when(mPhone).getIccSmsInterfaceManager();
- doReturn(mAccessNetworksManager).when(mPhone).getAccessNetworksManager();
- doReturn(mDataSettingsManager).when(mDataNetworkController).getDataSettingsManager();
- doReturn(mDataNetworkController).when(mPhone).getDataNetworkController();
- doReturn(mDataSettingsManager).when(mPhone).getDataSettingsManager();
- doReturn(mCarrierPrivilegesTracker).when(mPhone).getCarrierPrivilegesTracker();
- doReturn(mSignalStrength).when(mPhone).getSignalStrength();
- doReturn(mVoiceCallSessionStats).when(mPhone).getVoiceCallSessionStats();
- doReturn(mVoiceCallSessionStats).when(mImsPhone).getVoiceCallSessionStats();
- doReturn(mSmsStats).when(mPhone).getSmsStats();
- doReturn(mTelephonyAnalytics).when(mPhone).getTelephonyAnalytics();
- doReturn(mImsStats).when(mImsPhone).getImsStats();
+ lenient().doReturn(mContext).when(mPhone).getContext();
+ lenient().doReturn(mContext).when(mPhone2).getContext();
+ lenient().doReturn(mContext).when(mImsPhone).getContext();
+ lenient().doReturn(true).when(mPhone).getUnitTestMode();
+ lenient().doReturn(mUiccProfile).when(mPhone).getIccCard();
+ lenient().doReturn(mServiceState).when(mPhone).getServiceState();
+ lenient().doReturn(mServiceState).when(mImsPhone).getServiceState();
+ lenient().doReturn(mPhone).when(mImsPhone).getDefaultPhone();
+ lenient().doReturn(true).when(mPhone).isPhoneTypeGsm();
+ lenient().doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mPhone).getPhoneType();
+ lenient().doReturn(mCT).when(mPhone).getCallTracker();
+ lenient().doReturn(mSST).when(mPhone).getServiceStateTracker();
+ lenient().doReturn(mDeviceStateMonitor).when(mPhone).getDeviceStateMonitor();
+ lenient().doReturn(mDisplayInfoController).when(mPhone).getDisplayInfoController();
+ lenient().doReturn(mSignalStrengthController).when(mPhone).getSignalStrengthController();
+ lenient().doReturn(mEmergencyNumberTracker).when(mPhone).getEmergencyNumberTracker();
+ lenient().doReturn(mCarrierSignalAgent).when(mPhone).getCarrierSignalAgent();
+ lenient().doReturn(mCarrierActionAgent).when(mPhone).getCarrierActionAgent();
+ lenient().doReturn(mAppSmsManager).when(mPhone).getAppSmsManager();
+ lenient().doReturn(mIccSmsInterfaceManager).when(mPhone).getIccSmsInterfaceManager();
+ lenient().doReturn(mAccessNetworksManager).when(mPhone).getAccessNetworksManager();
+ lenient().doReturn(mDataSettingsManager).when(mDataNetworkController)
+ .getDataSettingsManager();
+ lenient().doReturn(mDataNetworkController).when(mPhone).getDataNetworkController();
+ lenient().doReturn(mDataSettingsManager).when(mPhone).getDataSettingsManager();
+ lenient().doReturn(mCarrierPrivilegesTracker).when(mPhone).getCarrierPrivilegesTracker();
+ lenient().doReturn(mSignalStrength).when(mPhone).getSignalStrength();
+ lenient().doReturn(mVoiceCallSessionStats).when(mPhone).getVoiceCallSessionStats();
+ lenient().doReturn(mVoiceCallSessionStats).when(mImsPhone).getVoiceCallSessionStats();
+ lenient().doReturn(mSmsStats).when(mPhone).getSmsStats();
+ lenient().doReturn(mTelephonyAnalytics).when(mPhone).getTelephonyAnalytics();
+ lenient().doReturn(mImsStats).when(mImsPhone).getImsStats();
mIccSmsInterfaceManager.mDispatchersController = mSmsDispatchersController;
- doReturn(mLinkBandwidthEstimator).when(mPhone).getLinkBandwidthEstimator();
- doReturn(mCellIdentity).when(mPhone).getCurrentCellIdentity();
- doReturn(mCellLocation).when(mCellIdentity).asCellLocation();
- doReturn(mDataConfigManager).when(mDataNetworkController).getDataConfigManager();
- doReturn(mDataProfileManager).when(mDataNetworkController).getDataProfileManager();
- doReturn(mDataRetryManager).when(mDataNetworkController).getDataRetryManager();
- doReturn(mCarrierPrivilegesTracker).when(mPhone).getCarrierPrivilegesTracker();
- doReturn(0).when(mPhone).getPhoneId();
- doReturn(1).when(mPhone2).getPhoneId();
- doReturn(true).when(mPhone).hasCalling();
- doReturn(true).when(mPhone2).hasCalling();
+ lenient().doReturn(mLinkBandwidthEstimator).when(mPhone).getLinkBandwidthEstimator();
+ lenient().doReturn(mCellIdentity).when(mPhone).getCurrentCellIdentity();
+ lenient().doReturn(mCellLocation).when(mCellIdentity).asCellLocation();
+ lenient().doReturn(mDataConfigManager).when(mDataNetworkController).getDataConfigManager();
+ lenient().doReturn(mDataProfileManager).when(mDataNetworkController)
+ .getDataProfileManager();
+ lenient().doReturn(mDataRetryManager).when(mDataNetworkController).getDataRetryManager();
+ lenient().doReturn(mCarrierPrivilegesTracker).when(mPhone).getCarrierPrivilegesTracker();
+ lenient().doReturn(0).when(mPhone).getPhoneId();
+ lenient().doReturn(1).when(mPhone2).getPhoneId();
+ lenient().doReturn(true).when(mPhone).hasCalling();
+ lenient().doReturn(true).when(mPhone2).hasCalling();
//mUiccController
- doReturn(mUiccCardApplication3gpp).when(mUiccController).getUiccCardApplication(anyInt(),
- eq(UiccController.APP_FAM_3GPP));
- doReturn(mUiccCardApplication3gpp2).when(mUiccController).getUiccCardApplication(anyInt(),
- eq(UiccController.APP_FAM_3GPP2));
- doReturn(mUiccCardApplicationIms).when(mUiccController).getUiccCardApplication(anyInt(),
- eq(UiccController.APP_FAM_IMS));
- doReturn(mUiccCard).when(mUiccController).getUiccCard(anyInt());
- doReturn(mUiccPort).when(mUiccController).getUiccPort(anyInt());
+ lenient().doReturn(mUiccCardApplication3gpp).when(mUiccController).getUiccCardApplication(
+ anyInt(), eq(UiccController.APP_FAM_3GPP));
+ lenient().doReturn(mUiccCardApplication3gpp2).when(mUiccController).getUiccCardApplication(
+ anyInt(), eq(UiccController.APP_FAM_3GPP2));
+ lenient().doReturn(mUiccCardApplicationIms).when(mUiccController).getUiccCardApplication(
+ anyInt(), eq(UiccController.APP_FAM_IMS));
+ lenient().doReturn(mUiccCard).when(mUiccController).getUiccCard(anyInt());
+ lenient().doReturn(mUiccPort).when(mUiccController).getUiccPort(anyInt());
- doAnswer(new Answer<IccRecords>() {
+ lenient().doAnswer(new Answer<IccRecords>() {
public IccRecords answer(InvocationOnMock invocation) {
switch ((Integer) invocation.getArguments()[1]) {
case UiccController.APP_FAM_3GPP:
@@ -781,53 +768,54 @@
}
}
}).when(mUiccController).getIccRecords(anyInt(), anyInt());
- doReturn(new UiccSlot[] {mUiccSlot}).when(mUiccController).getUiccSlots();
- doReturn(mUiccSlot).when(mUiccController).getUiccSlotForPhone(anyInt());
- doReturn(mPinStorage).when(mUiccController).getPinStorage();
+ lenient().doReturn(new UiccSlot[] {mUiccSlot}).when(mUiccController).getUiccSlots();
+ lenient().doReturn(mUiccSlot).when(mUiccController).getUiccSlotForPhone(anyInt());
+ lenient().doReturn(mPinStorage).when(mUiccController).getPinStorage();
//UiccCardApplication
- doReturn(mSimRecords).when(mUiccCardApplication3gpp).getIccRecords();
- doReturn(mRuimRecords).when(mUiccCardApplication3gpp2).getIccRecords();
- doReturn(mIsimUiccRecords).when(mUiccCardApplicationIms).getIccRecords();
+ lenient().doReturn(mSimRecords).when(mUiccCardApplication3gpp).getIccRecords();
+ lenient().doReturn(mRuimRecords).when(mUiccCardApplication3gpp2).getIccRecords();
+ lenient().doReturn(mIsimUiccRecords).when(mUiccCardApplicationIms).getIccRecords();
//mUiccProfile
- doReturn(mSimRecords).when(mUiccProfile).getIccRecords();
- doAnswer(new Answer<IccRecords>() {
+ lenient().doReturn(mSimRecords).when(mUiccProfile).getIccRecords();
+ lenient().doAnswer(new Answer<IccRecords>() {
public IccRecords answer(InvocationOnMock invocation) {
return mSimRecords;
}
}).when(mUiccProfile).getIccRecords();
//mUiccProfile
- doReturn(mUiccCardApplication3gpp).when(mUiccProfile).getApplication(
+ lenient().doReturn(mUiccCardApplication3gpp).when(mUiccProfile).getApplication(
eq(UiccController.APP_FAM_3GPP));
- doReturn(mUiccCardApplication3gpp2).when(mUiccProfile).getApplication(
+ lenient().doReturn(mUiccCardApplication3gpp2).when(mUiccProfile).getApplication(
eq(UiccController.APP_FAM_3GPP2));
- doReturn(mUiccCardApplicationIms).when(mUiccProfile).getApplication(
+ lenient().doReturn(mUiccCardApplicationIms).when(mUiccProfile).getApplication(
eq(UiccController.APP_FAM_IMS));
//SMS
- doReturn(true).when(mSmsStorageMonitor).isStorageAvailable();
- doReturn(true).when(mSmsUsageMonitor).check(nullable(String.class), anyInt());
- doReturn(true).when(mTelephonyManager).getSmsReceiveCapableForPhone(anyInt(), anyBoolean());
- doReturn(true).when(mTelephonyManager).getSmsSendCapableForPhone(
+ lenient().doReturn(true).when(mSmsStorageMonitor).isStorageAvailable();
+ lenient().doReturn(true).when(mSmsUsageMonitor).check(nullable(String.class), anyInt());
+ lenient().doReturn(true).when(mTelephonyManager).getSmsReceiveCapableForPhone(anyInt(),
+ anyBoolean());
+ lenient().doReturn(true).when(mTelephonyManager).getSmsSendCapableForPhone(
anyInt(), anyBoolean());
//Misc
- doReturn(ServiceState.RIL_RADIO_TECHNOLOGY_LTE).when(mServiceState)
+ lenient().doReturn(ServiceState.RIL_RADIO_TECHNOLOGY_LTE).when(mServiceState)
.getRilDataRadioTechnology();
- doReturn(new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_LTE,
+ lenient().doReturn(new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_LTE,
TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, false, false, false))
.when(mDisplayInfoController).getTelephonyDisplayInfo();
- doReturn(mPhone).when(mCT).getPhone();
- doReturn(mImsEcbm).when(mImsManager).getEcbmInterface();
- doReturn(mPhone).when(mInboundSmsHandler).getPhone();
- doReturn(mImsCallProfile).when(mImsCall).getCallProfile();
- doReturn(mIBinder).when(mIIntentSender).asBinder();
+ lenient().doReturn(mPhone).when(mCT).getPhone();
+ lenient().doReturn(mImsEcbm).when(mImsManager).getEcbmInterface();
+ lenient().doReturn(mPhone).when(mInboundSmsHandler).getPhone();
+ lenient().doReturn(mImsCallProfile).when(mImsCall).getCallProfile();
+ lenient().doReturn(mIBinder).when(mIIntentSender).asBinder();
doAnswer(invocation -> {
Intent[] intents = invocation.getArgument(6);
if (intents != null && intents.length > 0) {
- doReturn(intents[0]).when(mIActivityManager)
+ lenient().doReturn(intents[0]).when(mIActivityManager)
.getIntentForIntentSender(mIIntentSender);
}
return mIIntentSender;
@@ -835,8 +823,9 @@
nullable(String.class), nullable(String.class), nullable(IBinder.class),
nullable(String.class), anyInt(), nullable(Intent[].class),
nullable(String[].class), anyInt(), nullable(Bundle.class), anyInt());
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
- doReturn(true).when(mTelephonyManager).isDataCapable();
+ lenient().doReturn(mTelephonyManager).when(mTelephonyManager)
+ .createForSubscriptionId(anyInt());
+ lenient().doReturn(true).when(mTelephonyManager).isDataCapable();
mContextFixture.addSystemFeature(PackageManager.FEATURE_TELECOM);
mContextFixture.addSystemFeature(PackageManager.FEATURE_TELEPHONY_CALLING);
@@ -844,45 +833,46 @@
mContextFixture.addSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC);
mContextFixture.addSystemFeature(PackageManager.FEATURE_TELEPHONY_MESSAGING);
- doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
- doReturn(mServiceState).when(mSST).getServiceState();
- doReturn(mServiceStateStats).when(mSST).getServiceStateStats();
+ lenient().doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
+ lenient().doReturn(mServiceState).when(mSST).getServiceState();
+ lenient().doReturn(mServiceStateStats).when(mSST).getServiceStateStats();
mSST.mSS = mServiceState;
mSST.mRestrictedState = mRestrictedState;
mServiceManagerMockedServices.put("connectivity_metrics_logger", mConnMetLoggerBinder);
mServiceManagerMockedServices.put("package", mMockPackageManager);
mServiceManagerMockedServices.put("legacy_permission", mMockLegacyPermissionManager);
logd("mMockLegacyPermissionManager replaced");
- doReturn(new int[]{AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
+ lenient().doReturn(new int[]{AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
AccessNetworkConstants.TRANSPORT_TYPE_WLAN})
.when(mAccessNetworksManager).getAvailableTransports();
- doReturn(true).when(mDataSettingsManager).isDataEnabled();
- doReturn(mNetworkRegistrationInfo).when(mServiceState).getNetworkRegistrationInfo(
+ lenient().doReturn(true).when(mDataSettingsManager).isDataEnabled();
+ lenient().doReturn(mNetworkRegistrationInfo).when(mServiceState).getNetworkRegistrationInfo(
anyInt(), anyInt());
- doReturn(RIL.RADIO_HAL_VERSION_2_0).when(mPhone).getHalVersion(anyInt());
- doReturn(2).when(mSignalStrength).getLevel();
- doReturn(mMockRadioConfigProxy).when(mMockRadioConfig).getRadioConfigProxy(any());
+ lenient().doReturn(RIL.RADIO_HAL_VERSION_2_0).when(mPhone).getHalVersion(anyInt());
+ lenient().doReturn(2).when(mSignalStrength).getLevel();
+ lenient().doReturn(mMockRadioConfigProxy).when(mMockRadioConfig).getRadioConfigProxy(any());
// WiFi
- doReturn(mWifiInfo).when(mWifiManager).getConnectionInfo();
- doReturn(2).when(mWifiManager).calculateSignalLevel(anyInt());
- doReturn(4).when(mWifiManager).getMaxSignalLevel();
+ lenient().doReturn(mWifiInfo).when(mWifiManager).getConnectionInfo();
+ lenient().doReturn(2).when(mWifiManager).calculateSignalLevel(anyInt());
+ lenient().doReturn(4).when(mWifiManager).getMaxSignalLevel();
- doAnswer(invocation -> {
+ lenient().doAnswer(invocation -> {
NetworkCapabilities nc = invocation.getArgument(0);
return new VcnNetworkPolicyResult(
false /* isTearDownRequested */, nc);
}).when(mVcnManager).applyVcnNetworkPolicy(any(), any());
//SIM
- doReturn(1).when(mTelephonyManager).getSimCount();
- doReturn(1).when(mTelephonyManager).getPhoneCount();
- doReturn(1).when(mTelephonyManager).getActiveModemCount();
+ lenient().doReturn(1).when(mTelephonyManager).getSimCount();
+ lenient().doReturn(1).when(mTelephonyManager).getPhoneCount();
+ lenient().doReturn(1).when(mTelephonyManager).getActiveModemCount();
// Have getMaxPhoneCount always return the same value with getPhoneCount by default.
- doAnswer((invocation)->Math.max(mTelephonyManager.getActiveModemCount(),
+ lenient().doAnswer((invocation)->Math.max(mTelephonyManager.getActiveModemCount(),
mTelephonyManager.getPhoneCount()))
.when(mTelephonyManager).getSupportedModemCount();
- doReturn(mStatsManager).when(mContext).getSystemService(eq(Context.NETWORK_STATS_SERVICE));
+ lenient().doReturn(mStatsManager).when(mContext)
+ .getSystemService(eq(Context.NETWORK_STATS_SERVICE));
//Data
//Initial state is: userData enabled, provisioned.
@@ -893,56 +883,57 @@
Settings.Global.DEVICE_PROVISIONING_MOBILE_DATA_ENABLED, 1);
Settings.Global.putInt(resolver, Settings.Global.DATA_ROAMING, 0);
- doReturn(90).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(90).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_EIMS));
- doReturn(80).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(80).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_SUPL));
- doReturn(70).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(70).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_MMS));
- doReturn(70).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(70).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_XCAP));
- doReturn(50).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(50).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_CBS));
- doReturn(50).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(50).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_MCX));
- doReturn(50).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(50).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_FOTA));
- doReturn(40).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(40).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_IMS));
- doReturn(30).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(30).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_DUN));
- doReturn(20).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(20).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_ENTERPRISE));
- doReturn(20).when(mDataConfigManager).getNetworkCapabilityPriority(
+ lenient().doReturn(20).when(mDataConfigManager).getNetworkCapabilityPriority(
eq(NetworkCapabilities.NET_CAPABILITY_INTERNET));
- doReturn(60000).when(mDataConfigManager).getAnomalyNetworkConnectingTimeoutMs();
- doReturn(60000).when(mDataConfigManager)
+ lenient().doReturn(60000).when(mDataConfigManager).getAnomalyNetworkConnectingTimeoutMs();
+ lenient().doReturn(60000).when(mDataConfigManager)
.getAnomalyNetworkDisconnectingTimeoutMs();
- doReturn(60000).when(mDataConfigManager).getNetworkHandoverTimeoutMs();
- doReturn(new DataConfigManager.EventFrequency(300000, 12))
+ lenient().doReturn(60000).when(mDataConfigManager).getNetworkHandoverTimeoutMs();
+ lenient().doReturn(new DataConfigManager.EventFrequency(300000, 12))
.when(mDataConfigManager).getAnomalySetupDataCallThreshold();
- doReturn(new DataConfigManager.EventFrequency(0, 2))
+ lenient().doReturn(new DataConfigManager.EventFrequency(0, 2))
.when(mDataConfigManager).getAnomalyImsReleaseRequestThreshold();
- doReturn(new DataConfigManager.EventFrequency(300000, 12))
+ lenient().doReturn(new DataConfigManager.EventFrequency(300000, 12))
.when(mDataConfigManager).getAnomalyNetworkUnwantedThreshold();
// CellularNetworkValidator
- doReturn(SubscriptionManager.INVALID_PHONE_INDEX)
+ lenient().doReturn(SubscriptionManager.INVALID_PHONE_INDEX)
.when(mCellularNetworkValidator).getSubIdInValidation();
- doReturn(true).when(mCellularNetworkValidator).isValidationFeatureSupported();
+ lenient().doReturn(true).when(mCellularNetworkValidator).isValidationFeatureSupported();
// Metrics
- doReturn(null).when(mContext).getFileStreamPath(anyString());
- doReturn(mPersistAtomsStorage).when(mMetricsCollector).getAtomsStorage();
- doReturn(mDefaultNetworkMonitor).when(mMetricsCollector).getDefaultNetworkMonitor();
- doReturn(mWifiManager).when(mContext).getSystemService(eq(Context.WIFI_SERVICE));
- doReturn(mDeviceStateHelper).when(mMetricsCollector).getDeviceStateHelper();
- doReturn(CELLULAR_SERVICE_STATE__FOLD_STATE__STATE_UNKNOWN)
+ lenient().doReturn(null).when(mContext).getFileStreamPath(anyString());
+ lenient().doReturn(mPersistAtomsStorage).when(mMetricsCollector).getAtomsStorage();
+ lenient().doReturn(mDefaultNetworkMonitor).when(mMetricsCollector)
+ .getDefaultNetworkMonitor();
+ lenient().doReturn(mWifiManager).when(mContext).getSystemService(eq(Context.WIFI_SERVICE));
+ lenient().doReturn(mDeviceStateHelper).when(mMetricsCollector).getDeviceStateHelper();
+ lenient().doReturn(CELLULAR_SERVICE_STATE__FOLD_STATE__STATE_UNKNOWN)
.when(mDeviceStateHelper)
.getFoldState();
- doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_STATE_SERVICE));
+ lenient().doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_STATE_SERVICE));
- doReturn(false).when(mDomainSelectionResolver).isDomainSelectionSupported();
+ lenient().doReturn(false).when(mDomainSelectionResolver).isDomainSelectionSupported();
DomainSelectionResolver.setDomainSelectionResolver(mDomainSelectionResolver);
//Use reflection to mock singletons
@@ -1341,36 +1332,12 @@
}
/**
- * @return The longest delay from all the message queues.
- */
- private long getLongestDelay() {
- long delay = 0;
- for (TestableLooper looper : mTestableLoopers) {
- MessageQueue queue = looper.getLooper().getQueue();
- try {
- Message msg = (Message) MESSAGE_QUEUE_FIELD.get(queue);
- while (msg != null) {
- delay = Math.max(msg.getWhen(), delay);
- msg = (Message) MESSAGE_NEXT_FIELD.get(msg);
- }
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Access failed in TelephonyTest", e);
- }
- }
- return delay;
- }
-
- /**
* @return {@code true} if there are any messages in the queue.
*/
private boolean messagesExist() {
for (TestableLooper looper : mTestableLoopers) {
- MessageQueue queue = looper.getLooper().getQueue();
- try {
- Message msg = (Message) MESSAGE_QUEUE_FIELD.get(queue);
- if (msg != null) return true;
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Access failed in TelephonyTest", e);
+ if (looper.peekWhen() > 0) {
+ return true;
}
}
return false;
@@ -1380,8 +1347,14 @@
* Handle all messages including the delayed messages.
*/
public void processAllFutureMessages() {
+ final long now = SystemClock.uptimeMillis();
while (messagesExist()) {
- moveTimeForward(getLongestDelay());
+ for (TestableLooper looper : mTestableLoopers) {
+ long nextDelay = looper.peekWhen() - now;
+ if (nextDelay > 0) {
+ looper.moveTimeForward(nextDelay);
+ }
+ }
processAllMessages();
}
}
@@ -1406,20 +1379,7 @@
*/
public void moveTimeForward(long milliSeconds) {
for (TestableLooper looper : mTestableLoopers) {
- MessageQueue queue = looper.getLooper().getQueue();
- try {
- Message msg = (Message) MESSAGE_QUEUE_FIELD.get(queue);
- while (msg != null) {
- long updatedWhen = msg.getWhen() - milliSeconds;
- if (updatedWhen < 0) {
- updatedWhen = 0;
- }
- MESSAGE_WHEN_FIELD.set(msg, updatedWhen);
- msg = (Message) MESSAGE_NEXT_FIELD.get(msg);
- }
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Access failed in TelephonyTest", e);
- }
+ looper.moveTimeForward(milliSeconds);
}
}
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/VisualVoicemailSmsFilterTest.java b/tests/telephonytests/src/com/android/internal/telephony/VisualVoicemailSmsFilterTest.java
index 9f76337..df094ce 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/VisualVoicemailSmsFilterTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/VisualVoicemailSmsFilterTest.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.when;
import android.content.ComponentName;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/WapPushOverSmsTest.java b/tests/telephonytests/src/com/android/internal/telephony/WapPushOverSmsTest.java
index 58e5617..2fdd442 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/WapPushOverSmsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/WapPushOverSmsTest.java
@@ -17,8 +17,8 @@
package com.android.internal.telephony;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/cat/CATServiceTest.java b/tests/telephonytests/src/com/android/internal/telephony/cat/CATServiceTest.java
index a07ddbe..7ee4832 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/cat/CATServiceTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/cat/CATServiceTest.java
@@ -211,7 +211,7 @@
mCatService.sendStkSms("test", "12345", 1, cmdPrms, mProxyController);
verify(mSmsController, Mockito.times(1)).sendTextForSubscriber(anyInt(),
anyString(), nullable(String.class), anyString(), nullable(String.class),
- anyString(), Mockito.anyObject(), any(), eq(false), anyLong(), eq(true), eq(true));
+ anyString(), Mockito.any(), any(), eq(false), anyLong(), eq(true), eq(true));
}
@Test
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/AccessNetworksManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/AccessNetworksManagerTest.java
index ddd72e3..1203510 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/AccessNetworksManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/AccessNetworksManagerTest.java
@@ -42,7 +42,6 @@
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.NetworkService;
import android.telephony.data.ApnSetting;
-import android.telephony.data.DataServiceCallback;
import android.telephony.data.IQualifiedNetworksService;
import android.telephony.data.IQualifiedNetworksServiceCallback;
import android.testing.AndroidTestingRunner;
@@ -323,9 +322,7 @@
}
@Test
- public void testRequestNetworkValidation_WithFlagEnabled() throws Exception {
- when(mFeatureFlags.networkValidation()).thenReturn(true);
-
+ public void testRequestNetworkValidation() throws Exception {
mQnsCallback.onNetworkValidationRequested(NetworkCapabilities.NET_CAPABILITY_IMS,
mIIntegerConsumer);
processAllMessages();
@@ -333,23 +330,6 @@
}
@Test
- public void testRequestNetworkValidation_WithFlagDisabled() throws Exception {
- mIIntegerConsumerResults.clear();
- when(mFeatureFlags.networkValidation()).thenReturn(false);
-
- mQnsCallback.onNetworkValidationRequested(NetworkCapabilities.NET_CAPABILITY_IMS,
- mIIntegerConsumer);
- processAllMessages();
-
- assertThat(waitForIIntegerConsumerResult(1 /*numOfEvents*/)).isTrue();
- assertThat((long) mIIntegerConsumerResults.get(0))
- .isEqualTo(DataServiceCallback.RESULT_ERROR_UNSUPPORTED);
- verify(mDataNetworkController, never()).requestNetworkValidation(
- NetworkCapabilities.NET_CAPABILITY_IMS,
- mIntegerConsumer);
- }
-
- @Test
public void testCallbackForReconnectQualifiedNetworkType() throws Exception {
mAccessNetworksManager.registerCallback(mMockedCallback);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java
index 9226f47..7ae55b7 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java
@@ -24,7 +24,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java
index eba0dd6..a7bd9bc 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java
@@ -4043,6 +4043,13 @@
processAllMessages();
verify(mMockedDataNetworkControllerCallback).onNrAdvancedCapableByPcoChanged(eq(true));
+
+ // Deactivate the data, verify notify PCO gone.
+ mDataNetworkControllerUT.tearDownAllDataNetworks(
+ DataNetwork.TEAR_DOWN_REASON_AIRPLANE_MODE_ON);
+ processAllFutureMessages();
+
+ verify(mMockedDataNetworkControllerCallback).onNrAdvancedCapableByPcoChanged(eq(false));
}
@Test
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java
index 3289715..6e92353 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java
@@ -25,7 +25,7 @@
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.argThat;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
@@ -34,7 +34,6 @@
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import android.net.ConnectivityManager;
import android.net.InetAddresses;
@@ -2294,8 +2293,7 @@
}
@Test
- public void testValidationStatusOnPreciseDataConnectionState_FlagEnabled() throws Exception {
- when(mFeatureFlags.networkValidation()).thenReturn(true);
+ public void testValidationStatusOnPreciseDataConnectionState() throws Exception {
setupIwlanDataNetwork();
ArgumentCaptor<PreciseDataConnectionState> pdcsCaptor =
@@ -2344,37 +2342,7 @@
}
@Test
- public void testValidationStatus_FlagDisabled() throws Exception {
- // network validation flag disabled
- when(mFeatureFlags.networkValidation()).thenReturn(false);
- setupIwlanDataNetwork();
-
- // precise data connection state posted for setup data call response
- ArgumentCaptor<PreciseDataConnectionState> pdcsCaptor =
- ArgumentCaptor.forClass(PreciseDataConnectionState.class);
- verify(mPhone, times(2)).notifyDataConnection(pdcsCaptor.capture());
-
- // data state updated with network validation status
- DataCallResponse response = createDataCallResponse(123,
- DataCallResponse.LINK_STATUS_ACTIVE, Collections.emptyList(), null,
- PreciseDataConnectionState.NETWORK_VALIDATION_SUCCESS);
- mDataNetworkUT.sendMessage(8 /*EVENT_DATA_STATE_CHANGED*/, new AsyncResult(
- AccessNetworkConstants.TRANSPORT_TYPE_WLAN, List.of(response), null));
- processAllMessages();
-
- // Verify updated validation status at precise data connection state not posted due to flag
- // disabled
- pdcsCaptor = ArgumentCaptor.forClass(PreciseDataConnectionState.class);
- verify(mPhone, times(2)).notifyDataConnection(pdcsCaptor.capture());
- List<PreciseDataConnectionState> pdcsList = pdcsCaptor.getAllValues();
- assertThat(pdcsList.get(1).getNetworkValidationStatus())
- .isEqualTo(PreciseDataConnectionState.NETWORK_VALIDATION_UNSUPPORTED);
- }
-
- @Test
- public void testHandoverWithSuccessNetworkValidation_FlagEnabled() throws Exception {
- when(mFeatureFlags.networkValidation()).thenReturn(true);
-
+ public void testHandoverWithSuccessNetworkValidation() throws Exception {
setupDataNetwork();
setSuccessfulSetupDataResponse(
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/DataStallRecoveryManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/DataStallRecoveryManagerTest.java
index 55b4f1c..8cbd61f 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/DataStallRecoveryManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/DataStallRecoveryManagerTest.java
@@ -19,10 +19,11 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -581,4 +582,24 @@
// recovery action will jump to modem reset action if user doing the radio restart.
assertThat(mDataStallRecoveryManager.getRecoveryAction()).isEqualTo(4);
}
+
+ @Test
+ public void testDoNotDoRecoveryActionWhenActiveCall() throws Exception {
+ sendOnInternetDataNetworkCallback(true);
+ mDataStallRecoveryManager.setRecoveryAction(
+ DataStallRecoveryManager.RECOVERY_ACTION_RADIO_RESTART);
+ doReturn(mSignalStrength).when(mPhone).getSignalStrength();
+ // Simulate active call
+ doReturn(PhoneConstants.State.OFFHOOK).when(mPhone).getState();
+
+ logd("Sending validation failed callback");
+ sendValidationStatusCallback(NetworkAgent.VALIDATION_STATUS_NOT_VALID);
+ processAllFutureMessages();
+
+ verify(mSST, never()).powerOffRadioSafely();
+ verify(mPhone, never()).rebootModem(any());
+
+ assertThat(mDataStallRecoveryManager.getRecoveryAction())
+ .isEqualTo(DataStallRecoveryManager.RECOVERY_ACTION_RADIO_RESTART);
+ }
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
index a9c2ece..cd2e88a 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
@@ -42,7 +42,7 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java
index 28edeae..8fc0684 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java
@@ -38,7 +38,6 @@
import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyLong;
-import static org.mockito.Mockito.anyVararg;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
@@ -2529,7 +2528,7 @@
when(phone.getSubId()).thenReturn(1);
setEcmSupportedConfig(phone, true);
PersistableBundle bundle = mCarrierConfigManager.getConfigForSubId(phone.getSubId());
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(anyInt(), anyVararg());
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(anyInt(), any());
EmergencyStateTracker testEst = setupEmergencyStateTracker(
false /* isSuplDdsSwitchRequiredForEmergencyCall */);
@@ -3054,7 +3053,7 @@
PersistableBundle bundle = mCarrierConfigManager.getConfigForSubId(testPhone.getSubId());
bundle.putBoolean(CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL,
true);
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(anyInt(), anyVararg());
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(anyInt(), any());
// onCarrierConfigChanged with valid subscription
carrierConfigChangeListener.onCarrierConfigChanged(
testPhone.getPhoneId(), testPhone.getSubId(),
diff --git a/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccConnectorTest.java b/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccConnectorTest.java
index 3ec3ab5..a95d0d7 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccConnectorTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/euicc/EuiccConnectorTest.java
@@ -21,8 +21,8 @@
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doThrow;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java
index e542a41..5affa6e 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java
@@ -22,12 +22,12 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsDispatcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsDispatcherTest.java
index 6935807..1033db1 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsDispatcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmSmsDispatcherTest.java
@@ -25,9 +25,10 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
+import static org.junit.Assume.assumeFalse;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -42,6 +43,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.location.Country;
import android.location.CountryDetector;
@@ -59,6 +61,7 @@
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
+import androidx.test.InstrumentationRegistry;
import androidx.test.filters.FlakyTest;
import androidx.test.filters.MediumTest;
import androidx.test.filters.SmallTest;
@@ -534,9 +537,15 @@
}
}
+ private void skipOnAutomotive() {
+ assumeFalse(InstrumentationRegistry.getTargetContext().getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_AUTOMOTIVE));
+ }
+
@Test
@SmallTest
public void testSendMultipartSmsByCarrierAppNoResponse() throws Exception {
+ skipOnAutomotive(); // TODO(b/401440427): don't skip
mockCarrierApp();
// do not mock result, instead reduce the timeout for test
mGsmSmsDispatcher.mCarrierMessagingTimeout = 100;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsEnablementTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsEnablementTrackerTest.java
index 270960c..62e9e87 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsEnablementTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsEnablementTrackerTest.java
@@ -23,11 +23,11 @@
import static junit.framework.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.os.Handler;
import android.os.Looper;
@@ -224,7 +224,7 @@
mTracker.disableIms(SLOT_1, SUB_1);
waitForHandler(mHandler);
- verifyZeroInteractions(mMockServiceControllerBinder);
+ verifyNoMoreInteractions(mMockServiceControllerBinder);
assertTrue(mTracker.isState(SLOT_1, mTracker.STATE_IMS_DISABLED));
}
@@ -299,7 +299,7 @@
mTracker.enableIms(SLOT_1, SUB_1);
waitForHandler(mHandler);
- verifyZeroInteractions(mMockServiceControllerBinder);
+ verifyNoMoreInteractions(mMockServiceControllerBinder);
assertTrue(mTracker.isState(SLOT_1, mTracker.STATE_IMS_ENABLED));
}
@@ -417,7 +417,7 @@
mTracker.enableIms(SLOT_1, SUB_1);
waitForHandler(mHandler);
- verifyZeroInteractions(mMockServiceControllerBinder);
+ verifyNoMoreInteractions(mMockServiceControllerBinder);
assertTrue(mTracker.isState(SLOT_1, mTracker.STATE_IMS_RESETTING));
}
@@ -435,7 +435,7 @@
mTracker.disableIms(SLOT_1, SUB_1);
waitForHandler(mHandler);
- verifyZeroInteractions(mMockServiceControllerBinder);
+ verifyNoMoreInteractions(mMockServiceControllerBinder);
assertTrue(mTracker.isState(SLOT_1, mTracker.STATE_IMS_RESETTING));
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsResolverTest.java b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsResolverTest.java
index 130fba8..bfc3e4a 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsResolverTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsResolverTest.java
@@ -23,9 +23,9 @@
import static junit.framework.TestCase.assertFalse;
import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsServiceControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsServiceControllerTest.java
index 5f16d9b..529acf3 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsServiceControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsServiceControllerTest.java
@@ -22,9 +22,9 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsTestBase.java b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsTestBase.java
index c6b0fa1..43d8345 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsTestBase.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsTestBase.java
@@ -23,6 +23,7 @@
import android.os.Looper;
import android.os.Message;
import android.os.MessageQueue;
+import android.os.SystemClock;
import android.testing.TestableLooper;
import androidx.test.InstrumentationRegistry;
@@ -31,7 +32,6 @@
import org.mockito.MockitoAnnotations;
-import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
@@ -41,22 +41,6 @@
* Helper class to load Mockito Resources into a test.
*/
public class ImsTestBase {
- private static final Field MESSAGE_QUEUE_FIELD;
- private static final Field MESSAGE_WHEN_FIELD;
- private static final Field MESSAGE_NEXT_FIELD;
-
- static {
- try {
- MESSAGE_QUEUE_FIELD = MessageQueue.class.getDeclaredField("mMessages");
- MESSAGE_QUEUE_FIELD.setAccessible(true);
- MESSAGE_WHEN_FIELD = Message.class.getDeclaredField("when");
- MESSAGE_WHEN_FIELD.setAccessible(true);
- MESSAGE_NEXT_FIELD = Message.class.getDeclaredField("next");
- MESSAGE_NEXT_FIELD.setAccessible(true);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException("Failed to initialize TelephonyTest", e);
- }
- }
protected Context mContext;
protected List<TestableLooper> mTestableLoopers = new ArrayList<>();
@@ -131,36 +115,12 @@
}
/**
- * @return The longest delay from all the message queues.
- */
- private long getLongestDelay() {
- long delay = 0;
- for (TestableLooper looper : mTestableLoopers) {
- MessageQueue queue = looper.getLooper().getQueue();
- try {
- Message msg = (Message) MESSAGE_QUEUE_FIELD.get(queue);
- while (msg != null) {
- delay = Math.max(msg.getWhen(), delay);
- msg = (Message) MESSAGE_NEXT_FIELD.get(msg);
- }
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Access failed in TelephonyTest", e);
- }
- }
- return delay;
- }
-
- /**
* @return {@code true} if there are any messages in the queue.
*/
private boolean messagesExist() {
for (TestableLooper looper : mTestableLoopers) {
- MessageQueue queue = looper.getLooper().getQueue();
- try {
- Message msg = (Message) MESSAGE_QUEUE_FIELD.get(queue);
- if (msg != null) return true;
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Access failed in TelephonyTest", e);
+ if (looper.peekWhen() > 0) {
+ return true;
}
}
return false;
@@ -170,8 +130,14 @@
* Handle all messages including the delayed messages.
*/
public void processAllFutureMessages() {
+ final long now = SystemClock.uptimeMillis();
while (messagesExist()) {
- moveTimeForward(getLongestDelay());
+ for (TestableLooper looper : mTestableLoopers) {
+ long nextDelay = looper.peekWhen() - now;
+ if (nextDelay > 0) {
+ looper.moveTimeForward(nextDelay);
+ }
+ }
processAllMessages();
}
}
@@ -196,20 +162,7 @@
*/
public void moveTimeForward(long milliSeconds) {
for (TestableLooper looper : mTestableLoopers) {
- MessageQueue queue = looper.getLooper().getQueue();
- try {
- Message msg = (Message) MESSAGE_QUEUE_FIELD.get(queue);
- while (msg != null) {
- long updatedWhen = msg.getWhen() - milliSeconds;
- if (updatedWhen < 0) {
- updatedWhen = 0;
- }
- MESSAGE_WHEN_FIELD.set(msg, updatedWhen);
- msg = (Message) MESSAGE_NEXT_FIELD.get(msg);
- }
- } catch (IllegalAccessException e) {
- throw new RuntimeException("Access failed in TelephonyTest", e);
- }
+ looper.moveTimeForward(milliSeconds);
}
}
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java
index 5903032..26ef9b9 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java
@@ -43,11 +43,11 @@
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyChar;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.nullable;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyChar;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java
index 451c315..6cc2f4f 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java
@@ -26,7 +26,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/metrics/PersistAtomsStorageTest.java b/tests/telephonytests/src/com/android/internal/telephony/metrics/PersistAtomsStorageTest.java
index 9d8451e..5bc8e68 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/metrics/PersistAtomsStorageTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/metrics/PersistAtomsStorageTest.java
@@ -1153,6 +1153,13 @@
mSatelliteController1.countOfP2PSmsAvailableNotificationShown = 3;
mSatelliteController1.countOfP2PSmsAvailableNotificationRemoved = 5;
mSatelliteController1.isNtnOnlyCarrier = false;
+ mSatelliteController1.versionOfSatelliteAccessConfig = 10;
+ mSatelliteController1.countOfIncomingDatagramTypeSosSmsSuccess = 1;
+ mSatelliteController1.countOfIncomingDatagramTypeSosSmsFail = 2;
+ mSatelliteController1.countOfOutgoingDatagramTypeSmsSuccess = 3;
+ mSatelliteController1.countOfOutgoingDatagramTypeSmsFail = 4;
+ mSatelliteController1.countOfIncomingDatagramTypeSmsSuccess = 5;
+ mSatelliteController1.countOfIncomingDatagramTypeSmsFail = 6;
mSatelliteController2 = new SatelliteController();
mSatelliteController2.countOfSatelliteServiceEnablementsSuccess = 2 + 1;
@@ -1187,6 +1194,13 @@
mSatelliteController2.countOfP2PSmsAvailableNotificationShown = 30;
mSatelliteController2.countOfP2PSmsAvailableNotificationRemoved = 50;
mSatelliteController2.isNtnOnlyCarrier = true;
+ mSatelliteController2.versionOfSatelliteAccessConfig = 12;
+ mSatelliteController2.countOfIncomingDatagramTypeSosSmsSuccess = 11;
+ mSatelliteController2.countOfIncomingDatagramTypeSosSmsFail = 12;
+ mSatelliteController2.countOfOutgoingDatagramTypeSmsSuccess = 31;
+ mSatelliteController2.countOfOutgoingDatagramTypeSmsFail = 14;
+ mSatelliteController2.countOfIncomingDatagramTypeSmsSuccess = 15;
+ mSatelliteController2.countOfIncomingDatagramTypeSmsFail = 16;
// SatelliteController atom has one data point
mSatelliteControllers =
@@ -1394,6 +1408,7 @@
mCarrierRoamingSatelliteControllerStats1.carrierId = 1;
mCarrierRoamingSatelliteControllerStats1.isDeviceEntitled = true;
mCarrierRoamingSatelliteControllerStats1.isMultiSim = false;
+ mCarrierRoamingSatelliteControllerStats1.countOfSatelliteSessions = 1;
mCarrierRoamingSatelliteControllerStats2 = new CarrierRoamingSatelliteControllerStats();
mCarrierRoamingSatelliteControllerStats2.configDataSource =
@@ -1407,6 +1422,7 @@
mCarrierRoamingSatelliteControllerStats2.carrierId = 10;
mCarrierRoamingSatelliteControllerStats2.isDeviceEntitled = false;
mCarrierRoamingSatelliteControllerStats2.isMultiSim = true;
+ mCarrierRoamingSatelliteControllerStats2.countOfSatelliteSessions = 2;
// CarrierRoamingSatelliteController has one data point
mCarrierRoamingSatelliteControllerStats = new CarrierRoamingSatelliteControllerStats[] {
@@ -4456,6 +4472,20 @@
expected.countOfP2PSmsAvailableNotificationRemoved =
mSatelliteController1.countOfP2PSmsAvailableNotificationRemoved * 2;
expected.isNtnOnlyCarrier = mSatelliteController1.isNtnOnlyCarrier;
+ expected.versionOfSatelliteAccessConfig =
+ mSatelliteController1.versionOfSatelliteAccessConfig;
+ expected.countOfIncomingDatagramTypeSosSmsSuccess =
+ mSatelliteController1.countOfIncomingDatagramTypeSosSmsSuccess * 2;
+ expected.countOfIncomingDatagramTypeSosSmsFail =
+ mSatelliteController1.countOfIncomingDatagramTypeSosSmsFail * 2;
+ expected.countOfOutgoingDatagramTypeSmsSuccess =
+ mSatelliteController1.countOfOutgoingDatagramTypeSmsSuccess * 2;
+ expected.countOfOutgoingDatagramTypeSmsFail =
+ mSatelliteController1.countOfOutgoingDatagramTypeSmsFail * 2;
+ expected.countOfIncomingDatagramTypeSmsSuccess =
+ mSatelliteController1.countOfIncomingDatagramTypeSmsSuccess * 2;
+ expected.countOfIncomingDatagramTypeSmsFail =
+ mSatelliteController1.countOfIncomingDatagramTypeSmsFail * 2;
// Service state and service switch should be added successfully
verifyCurrentStateSavedToFileOnce();
@@ -4608,6 +4638,26 @@
satelliteController1.countOfP2PSmsAvailableNotificationRemoved
+ satelliteController2.countOfP2PSmsAvailableNotificationRemoved;
expected.isNtnOnlyCarrier = false;
+ expected.versionOfSatelliteAccessConfig =
+ mSatelliteController2.versionOfSatelliteAccessConfig;
+ expected.countOfIncomingDatagramTypeSosSmsSuccess =
+ mSatelliteController1.countOfIncomingDatagramTypeSosSmsSuccess
+ + mSatelliteController2.countOfIncomingDatagramTypeSosSmsSuccess;
+ expected.countOfIncomingDatagramTypeSosSmsFail =
+ mSatelliteController1.countOfIncomingDatagramTypeSosSmsFail
+ + mSatelliteController2.countOfIncomingDatagramTypeSosSmsFail;
+ expected.countOfOutgoingDatagramTypeSmsSuccess =
+ mSatelliteController1.countOfOutgoingDatagramTypeSmsSuccess
+ + mSatelliteController2.countOfOutgoingDatagramTypeSmsSuccess;
+ expected.countOfOutgoingDatagramTypeSmsFail =
+ mSatelliteController1.countOfOutgoingDatagramTypeSmsFail
+ + mSatelliteController2.countOfOutgoingDatagramTypeSmsFail;
+ expected.countOfIncomingDatagramTypeSmsSuccess =
+ mSatelliteController1.countOfIncomingDatagramTypeSmsSuccess
+ + mSatelliteController2.countOfIncomingDatagramTypeSmsSuccess;
+ expected.countOfIncomingDatagramTypeSmsFail =
+ mSatelliteController1.countOfIncomingDatagramTypeSmsFail
+ + mSatelliteController2.countOfIncomingDatagramTypeSmsFail;
// Service state and service switch should be added successfully
verifyCurrentStateSavedToFileOnce();
@@ -5158,6 +5208,8 @@
expected.carrierId = mCarrierRoamingSatelliteControllerStats1.carrierId;
expected.isDeviceEntitled = mCarrierRoamingSatelliteControllerStats1.isDeviceEntitled;
expected.isMultiSim = mCarrierRoamingSatelliteControllerStats1.isMultiSim;
+ expected.countOfSatelliteSessions =
+ mCarrierRoamingSatelliteControllerStats1.countOfSatelliteSessions * 2;
verifyCurrentStateSavedToFileOnce();
CarrierRoamingSatelliteControllerStats[] output =
mPersistAtomsStorage.getCarrierRoamingSatelliteControllerStats(0L);
@@ -6054,6 +6106,20 @@
stats.countOfP2PSmsAvailableNotificationShown);
assertEquals(expectedStats.countOfP2PSmsAvailableNotificationRemoved,
stats.countOfP2PSmsAvailableNotificationRemoved);
+ assertEquals(expectedStats.versionOfSatelliteAccessConfig,
+ stats.versionOfSatelliteAccessConfig);
+ assertEquals(expectedStats.countOfIncomingDatagramTypeSosSmsSuccess,
+ stats.countOfIncomingDatagramTypeSosSmsSuccess);
+ assertEquals(expectedStats.countOfIncomingDatagramTypeSosSmsFail,
+ stats.countOfIncomingDatagramTypeSosSmsFail);
+ assertEquals(expectedStats.countOfOutgoingDatagramTypeSmsSuccess,
+ stats.countOfOutgoingDatagramTypeSmsSuccess);
+ assertEquals(expectedStats.countOfOutgoingDatagramTypeSmsFail,
+ stats.countOfOutgoingDatagramTypeSmsFail);
+ assertEquals(expectedStats.countOfIncomingDatagramTypeSmsSuccess,
+ stats.countOfIncomingDatagramTypeSmsSuccess);
+ assertEquals(expectedStats.countOfIncomingDatagramTypeSmsFail,
+ stats.countOfIncomingDatagramTypeSmsFail);
actualCount++;
}
}
@@ -6461,6 +6527,8 @@
stats.satelliteSessionGapMaxSec);
assertEquals(expectedStats.isDeviceEntitled, stats.isDeviceEntitled);
assertEquals(expectedStats.isMultiSim, stats.isMultiSim);
+ assertEquals(expectedStats.countOfSatelliteSessions,
+ stats.countOfSatelliteSessions);
count++;
}
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/metrics/SatelliteStatsTest.java b/tests/telephonytests/src/com/android/internal/telephony/metrics/SatelliteStatsTest.java
index fce481e..d438198 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/metrics/SatelliteStatsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/metrics/SatelliteStatsTest.java
@@ -48,6 +48,7 @@
import org.junit.Test;
import org.mockito.ArgumentCaptor;
+import java.util.Arrays;
import java.util.concurrent.TimeUnit;
public class SatelliteStatsTest extends TelephonyTest {
@@ -110,6 +111,13 @@
.setCountOfP2PSmsAvailableNotificationShown(3)
.setCountOfP2PSmsAvailableNotificationRemoved(3)
.setIsNtnOnlyCarrier(false)
+ .setVersionOfSatelliteAccessControl(10)
+ .setCountOfIncomingDatagramTypeSosSmsSuccess(1)
+ .setCountOfIncomingDatagramTypeSmsFail(2)
+ .setCountOfOutgoingDatagramTypeSmsSuccess(3)
+ .setCountOfOutgoingDatagramTypeSmsFail(4)
+ .setCountOfIncomingDatagramTypeSmsSuccess(5)
+ .setCountOfIncomingDatagramTypeSmsFail(6)
.build();
mSatelliteStats.onSatelliteControllerMetrics(param);
@@ -181,6 +189,20 @@
stats.countOfP2PSmsAvailableNotificationRemoved);
assertEquals(SatelliteStats.SatelliteControllerParams.isNtnOnlyCarrier(),
stats.isNtnOnlyCarrier);
+ assertEquals(SatelliteStats.SatelliteControllerParams.getVersionSatelliteAccessConfig(),
+ stats.versionOfSatelliteAccessConfig);
+ assertEquals(param.getCountOfIncomingDatagramTypeSosSmsSuccess(),
+ stats.countOfIncomingDatagramTypeSosSmsSuccess);
+ assertEquals(param.getCountOfIncomingDatagramTypeSosSmsFail(),
+ stats.countOfIncomingDatagramTypeSosSmsFail);
+ assertEquals(param.getCountOfOutgoingDatagramTypeSmsSuccess(),
+ stats.countOfOutgoingDatagramTypeSmsSuccess);
+ assertEquals(param.getCountOfOutgoingDatagramTypeSmsFail(),
+ stats.countOfOutgoingDatagramTypeSmsFail);
+ assertEquals(param.getCountOfIncomingDatagramTypeSmsSuccess(),
+ stats.countOfIncomingDatagramTypeSmsSuccess);
+ assertEquals(param.getCountOfIncomingDatagramTypeSmsSuccess(),
+ stats.countOfIncomingDatagramTypeSmsSuccess);
verifyNoMoreInteractions(mPersistAtomsStorage);
}
@@ -460,6 +482,7 @@
.setCarrierId(10)
.setIsDeviceEntitled(true)
.setIsMultiSim(true)
+ .increaseCountOfSatelliteSessions()
.build();
mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics(param);
@@ -481,6 +504,7 @@
assertEquals(param.getCarrierId(), stats.carrierId);
assertEquals(param.isDeviceEntitled(), stats.isDeviceEntitled);
assertEquals(param.isMultiSim(), stats.isMultiSim);
+ assertEquals(param.getCountOfSatelliteSessions(), stats.countOfSatelliteSessions);
verifyNoMoreInteractions(mPersistAtomsStorage);
}
@@ -500,6 +524,7 @@
.setCarrierId(10)
.setIsDeviceEntitled(true)
.setIsMultiSim(true)
+ .increaseCountOfSatelliteSessions()
.build();
mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics(param);
@@ -545,6 +570,7 @@
assertEquals(20, stats.carrierId);
assertEquals(false, stats.isDeviceEntitled);
assertEquals(param.isMultiSim(), stats.isMultiSim);
+ assertEquals(param.getCountOfSatelliteSessions(), stats.countOfSatelliteSessions);
verifyNoMoreInteractions(mPersistAtomsStorage);
}
@@ -632,4 +658,38 @@
assertEquals(param.getConfigDataSource(), stats.configDataSource);
verifyNoMoreInteractions(mPersistAtomsStorage);
}
+
+ @Test
+ public void testReportRepeatedDataWithAscendingOrder() {
+ int[] supportedSatelliteServicesArray = {3, 2, 1};
+ SatelliteStats.CarrierRoamingSatelliteSessionParams sessionParams =
+ new SatelliteStats.CarrierRoamingSatelliteSessionParams.Builder()
+ .setSupportedSatelliteServices(supportedSatelliteServicesArray)
+ .build();
+ mSatelliteStats.onCarrierRoamingSatelliteSessionMetrics(sessionParams);
+ ArgumentCaptor<CarrierRoamingSatelliteSession> sessionArgumentCaptor =
+ ArgumentCaptor.forClass(CarrierRoamingSatelliteSession.class);
+ verify(mPersistAtomsStorage).addCarrierRoamingSatelliteSessionStats(
+ sessionArgumentCaptor.capture());
+ CarrierRoamingSatelliteSession sessionStats = sessionArgumentCaptor.getValue();
+
+ Arrays.sort(supportedSatelliteServicesArray);
+ assertEquals(supportedSatelliteServicesArray, sessionStats.supportedSatelliteServices);
+ verifyNoMoreInteractions(mPersistAtomsStorage);
+
+ int[] entitlementServiceTypeArray = {2, 3, 1};
+ SatelliteStats.SatelliteEntitlementParams entitlementParams =
+ new SatelliteStats.SatelliteEntitlementParams.Builder()
+ .setEntitlementServiceType(entitlementServiceTypeArray)
+ .build();
+ mSatelliteStats.onSatelliteEntitlementMetrics(entitlementParams);
+ ArgumentCaptor<SatelliteEntitlement> entitlementArgumentCaptor =
+ ArgumentCaptor.forClass(SatelliteEntitlement.class);
+ verify(mPersistAtomsStorage).addSatelliteEntitlementStats(
+ entitlementArgumentCaptor.capture());
+ SatelliteEntitlement entitlementStats = entitlementArgumentCaptor.getValue();
+ Arrays.sort(entitlementServiceTypeArray);
+ assertEquals(entitlementServiceTypeArray, entitlementStats.entitlementServiceType);
+ verifyNoMoreInteractions(mPersistAtomsStorage);
+ }
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramControllerTest.java
index 7cb53d2..f4d7e61 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramControllerTest.java
@@ -35,7 +35,7 @@
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -148,9 +148,9 @@
int errorCode = SATELLITE_RESULT_SUCCESS;
mDatagramControllerUT.updateSendStatus(SUB_ID, DATAGRAM_TYPE_KEEP_ALIVE,
SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING, sendPendingCount, errorCode);
- verifyZeroInteractions(mMockSatelliteSessionController);
- verifyZeroInteractions(mMockPointingAppController);
- verifyZeroInteractions(mMockDatagramReceiver);
+ verifyNoMoreInteractions(mMockSatelliteSessionController);
+ verifyNoMoreInteractions(mMockPointingAppController);
+ verifyNoMoreInteractions(mMockDatagramReceiver);
}
@Test
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java
index ba31203..f383068 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java
@@ -43,7 +43,6 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import android.annotation.NonNull;
@@ -230,7 +229,7 @@
eq(SATELLITE_RESULT_SUCCESS));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
doReturn(false).when(mMockDatagramController)
@@ -273,7 +272,7 @@
mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
true, mResultListener::offer);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
mInOrder.verify(mMockDatagramController)
.needsWaitingForSatelliteConnected(eq(datagramType));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
@@ -282,7 +281,7 @@
moveTimeForward(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
mInOrder.verify(mMockDatagramController)
.updateSendStatus(eq(mPhone.getSubId()),
eq(datagramType),
@@ -305,7 +304,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertEquals(0, mResultListener.size());
clearInvocations(mMockSatelliteModemInterface);
@@ -315,7 +314,7 @@
mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramType, mDatagram,
true, mResultListener::offer);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
mInOrder.verify(mMockDatagramController)
.needsWaitingForSatelliteConnected(eq(datagramType));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
@@ -329,7 +328,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_OFF);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertEquals(1, mResultListener.size());
assertThat(mResultListener.peek()).isEqualTo(
SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED);
@@ -805,7 +804,7 @@
eq(SATELLITE_RESULT_SUCCESS));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
doReturn(false).when(mMockDatagramController)
@@ -899,7 +898,7 @@
eq(SATELLITE_RESULT_SUCCESS));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
moveTimeForward(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
@@ -922,7 +921,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
processAllMessages();
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
}
@Test
@@ -947,7 +946,7 @@
eq(SATELLITE_RESULT_SUCCESS));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
eq(SatelliteServiceUtils.isLastSosMessage(datagramType)));
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
mDatagramDispatcherUT.onSatelliteModemStateChanged(
@@ -1008,7 +1007,7 @@
eq(SATELLITE_RESULT_SUCCESS));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(
eq(SatelliteServiceUtils.isLastSosMessage(datagramTypeSms)));
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramTypeSos, mDatagram,
@@ -1020,7 +1019,7 @@
eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT),
eq(2),
eq(SATELLITE_RESULT_SUCCESS));
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertTrue(mDatagramDispatcherUT.isDatagramWaitForConnectedStateTimerStarted());
doReturn(false).when(mMockDatagramController)
@@ -1108,7 +1107,7 @@
mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, datagramTypeSos, mDatagram,
true, mResultListener::offer);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true);
processAllMessages();
@@ -1153,6 +1152,7 @@
mDatagramDispatcherUT.handleMessage(
mDatagramDispatcherUT.obtainMessage(10 /*EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT*/,
new AsyncResult(null, null, null)));
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
@@ -1171,7 +1171,7 @@
mDatagramDispatcherUT.obtainMessage(10 /*EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT*/,
new AsyncResult(null, null, null)));
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
}
@Test
@@ -1188,7 +1188,7 @@
mDatagramDispatcherUT.obtainMessage(10 /*EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT*/,
new AsyncResult(null, null, null)));
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
}
@@ -1201,6 +1201,7 @@
R.bool.config_satellite_allow_check_message_in_not_connected, true);
mDatagramDispatcherUT.setDeviceAlignedWithSatellite(true);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
@@ -1214,7 +1215,7 @@
mDatagramDispatcherUT.setDeviceAlignedWithSatellite(false);
- verifyZeroInteractions(mMockSmsDispatchersController);
+ verifyNoMoreInteractions(mMockSmsDispatchersController);
}
@Test
@@ -1227,6 +1228,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_NOT_CONNECTED);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
@@ -1239,6 +1241,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
@@ -1251,6 +1254,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
@@ -1278,6 +1282,7 @@
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
@@ -1295,6 +1300,7 @@
.thenReturn(true);
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(0)).sendMtSmsPollingMessage();
@@ -1303,6 +1309,7 @@
.thenReturn(false);
mDatagramDispatcherUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ processAllMessages();
verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
index 738a44e..b72cff8 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
@@ -38,7 +38,6 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import android.annotation.NonNull;
@@ -190,7 +189,7 @@
eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT), eq(0),
eq(SatelliteManager.SATELLITE_RESULT_SUCCESS));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(eq(false));
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertTrue(mDatagramReceiverUT.isDatagramWaitForConnectedStateTimerStarted());
doReturn(false).when(mMockDatagramController)
@@ -220,7 +219,7 @@
mInOrder.verify(mMockDatagramController)
.needsWaitingForSatelliteConnected(eq(SatelliteManager.DATAGRAM_TYPE_UNKNOWN));
mInOrder.verify(mMockDatagramController).getDatagramWaitTimeForConnectedState(eq(false));
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertTrue(mDatagramReceiverUT.isDatagramWaitForConnectedStateTimerStarted());
moveTimeForward(TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS);
@@ -233,7 +232,7 @@
eq(SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE),
eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0),
eq(SatelliteManager.SATELLITE_RESULT_SUCCESS));
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertEquals(1, mResultListener.size());
assertThat(mResultListener.peek()).isEqualTo(
SatelliteManager.SATELLITE_RESULT_NOT_REACHABLE);
@@ -244,7 +243,7 @@
mDatagramReceiverUT.onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
processAllMessages();
- verifyZeroInteractions(mMockSatelliteModemInterface);
+ verifyNoMoreInteractions(mMockSatelliteModemInterface);
assertEquals(0, mResultListener.size());
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
index ee43d2a..58c74f1 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
@@ -107,7 +107,6 @@
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.anyVararg;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.clearInvocations;
@@ -648,7 +647,7 @@
mCarrierConfigBundle = mContextFixture.getCarrierConfigBundle();
doReturn(mCarrierConfigBundle)
- .when(mCarrierConfigManager).getConfigForSubId(anyInt(), anyVararg());
+ .when(mCarrierConfigManager).getConfigForSubId(anyInt(), any());
doAnswer(invocation -> {
Executor executor = invocation.getArgument(0);
CarrierConfigManager.CarrierConfigChangeListener listener = invocation.getArgument(1);
@@ -3911,7 +3910,7 @@
KEY_EMERGENCY_CALL_TO_SATELLITE_T911_HANDOVER_TIMEOUT_MILLIS_INT,
timeoutMillisForCarrier1);
doReturn(carrierConfigBundle1)
- .when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID), anyVararg());
+ .when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID), any());
int timeoutMillisForCarrier2 = 2000;
PersistableBundle carrierConfigBundle2 = new PersistableBundle();
@@ -3923,7 +3922,7 @@
KEY_EMERGENCY_CALL_TO_SATELLITE_T911_HANDOVER_TIMEOUT_MILLIS_INT,
timeoutMillisForCarrier2);
doReturn(carrierConfigBundle2)
- .when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID1), anyVararg());
+ .when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID1), any());
for (Pair<Executor, CarrierConfigManager.CarrierConfigChangeListener> pair
: mCarrierConfigChangedListenerList) {
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java
index 0a60b85..2d8fb21 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommenderTest.java
@@ -332,6 +332,43 @@
}
@Test
+ public void testTimeoutBeforeEmergencyCallEnd_EventDisplayEmergencyMessageNotSent_Test2() {
+ /*
+ * This test is to test the case where the device is provisioned, supports satellite
+ * via OEM, and is connected via carrier within the hysteresis time. However, satellite
+ * is not allowed at current location and emergency messaing via carrier is not supported.
+ * In this case, the EVENT_DISPLAY_EMERGENCY_MESSAGE should not be sent.
+ */
+ mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true, SUB_ID1);
+ mTestSatelliteController.isSatelliteEmergencyMessagingSupportedViaCarrier = false;
+ mTestSatelliteController.isOemEnabledSatelliteSupported = true;
+ mTestSatelliteController.setDeviceProvisioned(true);
+ mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
+ mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
+ processAllMessages();
+ assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
+ assertRegisterForStateChangedEventsTriggered(mPhone, 1, 1);
+ assertRegisterForStateChangedEventsTriggered(mPhone2, 1, 1);
+ assertNull(mTestSOSMessageRecommender.isSatelliteAllowedCallback);
+
+ // Move Location service to emergency mode
+ mTestSOSMessageRecommender.onEmergencyCallConnectionStateChanged(
+ mTestConnection.getTelecomCallId(), Connection.STATE_DIALING);
+ processAllMessages();
+ assertNotNull(mTestSOSMessageRecommender.isSatelliteAllowedCallback);
+
+ // Wait for the timeout to expires
+ mTestSOSMessageRecommender.isSatelliteAllowedCallback.onResult(false);
+ moveTimeForward(TEST_EMERGENCY_CALL_TO_SOS_MSG_HYSTERESIS_TIMEOUT_MILLIS);
+ processAllMessages();
+ assertFalse(mTestConnection.isEventSent(TelephonyManager.EVENT_DISPLAY_EMERGENCY_MESSAGE));
+ assertUnregisterForStateChangedEventsTriggered(mPhone, 1, 1);
+ assertUnregisterForStateChangedEventsTriggered(mPhone2, 1, 1);
+ verify(mMockSatelliteStats, times(1)).onSatelliteSosMessageRecommender(any());
+ assertFalse(mTestSOSMessageRecommender.isDialerNotified());
+ }
+
+ @Test
public void testTimeoutBeforeEmergencyCallEnd_T911_FromNotConnectedToConnected() {
mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false, -1);
@@ -684,6 +721,20 @@
processAllMessages();
assertEquals(carrierTimeoutMillis, mTestSOSMessageRecommender.getTimeOutMillis());
verify(mMockSatelliteStats, never()).onSatelliteSosMessageRecommender(any());
+
+ // OEM supports satellite, device is connected to carrier satellite within hysteresis time,
+ // but emergency messaging via carrier is not supported. Thus, OEM timer will be used.
+ mTestSatelliteController.isSatelliteEmergencyMessagingSupportedViaCarrier = false;
+ mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true, SUB_ID1);
+ subscriptionInfo = new SubscriptionInfo.Builder()
+ .setId(SUB_ID1).setOnlyNonTerrestrialNetwork(true).build();
+ when(mMockSubscriptionManagerService.getSubscriptionInfo(eq(SUB_ID1)))
+ .thenReturn(subscriptionInfo);
+ mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
+ processAllMessages();
+ assertEquals(TEST_EMERGENCY_CALL_TO_SOS_MSG_HYSTERESIS_TIMEOUT_MILLIS,
+ mTestSOSMessageRecommender.getTimeOutMillis());
+ verify(mMockSatelliteStats, never()).onSatelliteSosMessageRecommender(any());
}
@Test
@@ -717,6 +768,22 @@
}
@Test
+ public void testGetEmergencyCallToSatelliteHandoverType_OnlySatelliteViaOemAvailable() {
+ mSetFlagsRule.enableFlags(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN);
+
+ mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true, SUB_ID1);
+ mTestSatelliteController.isSatelliteEmergencyMessagingSupportedViaCarrier = false;
+ mTestSatelliteController.isOemEnabledSatelliteSupported = true;
+ mTestSatelliteController.setDeviceProvisioned(true);
+ mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
+ assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS,
+ mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());
+ verify(mMockSatelliteStats, never()).onSatelliteSosMessageRecommender(any());
+
+ mSetFlagsRule.disableFlags(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN);
+ }
+
+ @Test
public void testGetEmergencyCallToSatelliteHandoverType_OemAndCarrierNotAvailable() {
mSetFlagsRule.enableFlags(Flags.FLAG_CARRIER_ROAMING_NB_IOT_NTN);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/IccPhoneBookInterfaceManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/IccPhoneBookInterfaceManagerTest.java
index 53627ca..8cf8c6e 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/IccPhoneBookInterfaceManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/IccPhoneBookInterfaceManagerTest.java
@@ -18,8 +18,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyObject;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
@@ -87,7 +86,7 @@
response.sendToTarget();
return null;
}
- }).when(mAdnRecordCache).requestLoadAllAdnLike(anyInt(), anyInt(), (Message) anyObject());
+ }).when(mAdnRecordCache).requestLoadAllAdnLike(anyInt(), anyInt(), (Message) any());
doAnswer(invocation -> {
Message response = (Message) invocation.getArguments()[0];
@@ -95,7 +94,7 @@
AsyncResult.forMessage(response).result = mAdnList;
response.sendToTarget();
return null;
- }).when(mSimPhonebookRecordCache).requestLoadAllPbRecords((Message)anyObject());
+ }).when(mSimPhonebookRecordCache).requestLoadAllPbRecords((Message)any());
mIccPhoneBookInterfaceManagerHandler = new IccPhoneBookInterfaceManagerHandler(TAG);
mIccPhoneBookInterfaceManagerHandler.start();
@@ -131,7 +130,7 @@
response.sendToTarget();
return null;
}
- }).when(mAdnRecordCache).requestLoadAllAdnLike(anyInt(), anyInt(), (Message) anyObject());
+ }).when(mAdnRecordCache).requestLoadAllAdnLike(anyInt(), anyInt(), (Message) any());
List<AdnRecord> adnListResultNew = mIccPhoneBookInterfaceMgr.getAdnRecordsInEf(
IccConstants.EF_ADN);
//the later read return null due to exception
@@ -153,7 +152,7 @@
AsyncResult.forMessage(response).exception = new RuntimeException();
response.sendToTarget();
return null;
- }).when(mSimPhonebookRecordCache).requestLoadAllPbRecords((Message) anyObject());
+ }).when(mSimPhonebookRecordCache).requestLoadAllPbRecords((Message) any());
List<AdnRecord> adnListResultNew = mIccPhoneBookInterfaceMgr.getAdnRecordsInEf(
IccConstants.EF_ADN);
//the later read return null due to exception
@@ -177,7 +176,7 @@
}
}).when(mAdnRecordCache).updateAdnBySearch(
anyInt(), any(), any(),
- any(), (Message) anyObject());
+ any(), (Message) any());
ContentValues values = new ContentValues();
values.put(IccProvider.STR_TAG, "");
@@ -206,7 +205,7 @@
response.sendToTarget();
return null;
}).when(mSimPhonebookRecordCache).updateSimPbAdnBySearch(any(),
- any(), (Message) anyObject());
+ any(), (Message) any());
ContentValues values = new ContentValues();
values.put(IccProvider.STR_TAG, "");
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/RuimRecordsTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/RuimRecordsTest.java
deleted file mode 100644
index a9b433f..0000000
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/RuimRecordsTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.uicc;
-
-import static org.junit.Assert.*;
-
-import android.os.AsyncResult;
-import android.os.HandlerThread;
-
-import com.android.internal.telephony.TelephonyTest;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class RuimRecordsTest extends TelephonyTest {
-
- private RuimRecords mRuimRecords;
-
- private class RuimRecordsTestHandler extends HandlerThread {
- private RuimRecordsTestHandler(String name) {
- super(name);
- }
-
- @Override
- public void onLooperPrepared() {
- mRuimRecords = new RuimRecords(mUiccCardApplication3gpp2, mContext, mSimulatedCommands);
- setReady(true);
- }
- }
-
- @Before
- public void setUp() throws Exception {
- super.setUp(getClass().getSimpleName());
- new RuimRecordsTestHandler(TAG).start();
- waitUntilReady();
- }
-
- @After
- public void tearDown() throws Exception {
- mRuimRecords = null;
- super.tearDown();
- }
-
- @Test
- public void testCsimImsiLoaded() {
- RuimRecords.EfCsimImsimLoaded mImsiLoaded = mRuimRecords.new EfCsimImsimLoaded();
- AsyncResult ar = new AsyncResult(null, null, null);
- mImsiLoaded.onRecordLoaded(ar);
- String mccmnc = mRuimRecords.getRUIMOperatorNumeric();
- assertNull(mccmnc);
-
- byte[] byteArray = new byte[]{0, 19, 3, 75, 68, 88, 99, (byte)128, (byte)209, 0};
- AsyncResult ar2 = new AsyncResult(null, byteArray, null);
- mImsiLoaded.onRecordLoaded(ar2);
- mccmnc = mRuimRecords.getRUIMOperatorNumeric();
- assertNotNull(mccmnc);
- assertEquals("310008", mccmnc);
- }
-
- @Test
- public void testCsimImsiDecode() {
- RuimRecords.EfCsimImsimLoaded efCsimImsimLoaded = mRuimRecords.new EfCsimImsimLoaded();
-
- // mcc + mnc + min
- byte[] byteArray = new byte[]{0, 19, 3, 75, 68, 88, 99, (byte)128, (byte)209, 0};
- String imsi = efCsimImsimLoaded.decodeImsi(byteArray);
-
- assertEquals("310008984641186", imsi);
- }
-}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/SIMRecordsTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/SIMRecordsTest.java
index e109ebb..7dc13a0 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/SIMRecordsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/SIMRecordsTest.java
@@ -23,7 +23,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.isNull;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRulesTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRulesTest.java
index 9a444d7..7e95107 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRulesTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRulesTest.java
@@ -17,8 +17,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.doAnswer;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccPortTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccPortTest.java
index 47b7c53..ac11c92 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccPortTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccPortTest.java
@@ -23,7 +23,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccSlotTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccSlotTest.java
index 8449ecc..1de15fe 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccSlotTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccSlotTest.java
@@ -21,7 +21,7 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyObject;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -428,8 +428,8 @@
mIccCardStatus.mSlotPortMapping.mPortIndex = 0;
mUiccSlot.update(mSimulatedCommands, mIccCardStatus, phoneId, slotIndex);
verify(mTelephonyComponentFactory).makeUiccProfile(
- anyObject(), eq(mSimulatedCommands), eq(mIccCardStatus), anyInt(), anyObject(),
- anyObject(), anyObject());
+ any(), eq(mSimulatedCommands), eq(mIccCardStatus), anyInt(), any(),
+ any(), any());
assertEquals(IccCardStatus.CardState.CARDSTATE_PRESENT, mUiccSlot.getCardState());
assertNotNull(mUiccSlot.getUiccCard());
@@ -451,8 +451,8 @@
mIccCardStatus.mCardState = IccCardStatus.CardState.CARDSTATE_PRESENT;
mUiccSlot.update(mSimulatedCommands, mIccCardStatus, phoneId, slotIndex);
verify(mTelephonyComponentFactory).makeUiccProfile(
- anyObject(), eq(mSimulatedCommands), eq(mIccCardStatus), anyInt(), anyObject(),
- anyObject(), anyObject());
+ any(), eq(mSimulatedCommands), eq(mIccCardStatus), anyInt(), any(),
+ any(), any());
assertEquals(IccCardStatus.CardState.CARDSTATE_PRESENT, mUiccSlot.getCardState());
assertNotNull(mUiccSlot.getUiccCard());
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccStateChangedLauncherTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccStateChangedLauncherTest.java
index c9b159c..5eeb949 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccStateChangedLauncherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccStateChangedLauncherTest.java
@@ -19,7 +19,6 @@
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyObject;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -99,7 +98,7 @@
ArgumentCaptor<Integer> integerArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
verify(UiccController.getInstance(), times(1)).registerForIccChanged(eq(uiccLauncher),
integerArgumentCaptor.capture(),
- anyObject());
+ any());
Message msg = Message.obtain();
msg.what = integerArgumentCaptor.getValue();
@@ -163,6 +162,6 @@
UiccStateChangedLauncher uiccLauncher =
new UiccStateChangedLauncher(mContext, UiccController.getInstance(), mFeatureFlags);
verify(UiccController.getInstance(), never()).registerForIccChanged(eq(uiccLauncher),
- anyInt(), anyObject());
+ anyInt(), any());
}
}