Merge "Using the ACTION_SATELLITE_SUBSCRIBER_ID_LIST_CHANGED intent instead of App intent." into main
diff --git a/flags/misc.aconfig b/flags/misc.aconfig
index 689dac6..65ce401 100644
--- a/flags/misc.aconfig
+++ b/flags/misc.aconfig
@@ -96,28 +96,6 @@
bug:"271921464"
}
-# OWNER=rambowang TARGET=24Q3
-flag {
- name: "fix_crash_on_getting_config_when_phone_is_gone"
- namespace: "telephony"
- description: "Fix VCN crash when calling CarrierConfigManager.getConfigForSubId while phone process has gone."
- bug:"319791612"
- metadata {
- purpose: PURPOSE_BUGFIX
- }
-}
-
-# OWNER=rambowang TARGET=24Q3
-flag {
- name: "add_anomaly_when_notify_config_changed_with_invalid_phone"
- namespace: "telephony"
- description: "Report anomaly when CarrierConfigLoader received config change with sub that maps to invalid phoneId"
- bug:"270757342"
- metadata {
- purpose: PURPOSE_BUGFIX
- }
-}
-
# OWNER=sangyun TARGET=24Q3
flag {
name: "roaming_notification_for_single_data_network"
diff --git a/flags/uicc.aconfig b/flags/uicc.aconfig
index f41fad3..14341d9 100644
--- a/flags/uicc.aconfig
+++ b/flags/uicc.aconfig
@@ -43,14 +43,6 @@
bug:"318348580"
}
-# OWNER=rambowang TARGET=24Q3
-flag {
- name: "cleanup_open_logical_channel_record_on_dispose"
- namespace: "telephony"
- description: "This flag cleans up the OpenLogicalChannelRecord once SIM is removed"
- bug:"335046531"
-}
-
# OWNER=arunvoddu TARGET=24Q4
flag {
name: "set_carrier_restriction_status"
diff --git a/proto/src/persist_atoms.proto b/proto/src/persist_atoms.proto
index d4fbd1b..3f964b3 100644
--- a/proto/src/persist_atoms.proto
+++ b/proto/src/persist_atoms.proto
@@ -719,6 +719,7 @@
optional int32 count_of_disallowed_satellite_access = 27;
optional int32 count_of_satellite_access_check_fail = 28;
optional bool is_provisioned = 29;
+ optional int32 carrier_id = 30;
}
message SatelliteSession {
@@ -735,6 +736,10 @@
optional int32 count_of_incoming_datagram_failed = 11;
optional bool is_demo_mode = 12;
optional int32 max_ntn_signal_strength_level = 13;
+ optional int32 carrier_id = 14;
+ optional int32 count_of_satellite_notification_displayed = 15;
+ optional int32 count_of_auto_exit_due_to_screen_off = 16;
+ optional int32 count_of_auto_exit_due_to_tn_network = 17;
}
message SatelliteIncomingDatagram {
@@ -742,6 +747,7 @@
optional int32 datagram_size_bytes = 2;
optional int64 datagram_transfer_time_millis = 3;
optional bool is_demo_mode = 4;
+ optional int32 carrier_id = 5;
}
message SatelliteOutgoingDatagram {
@@ -750,6 +756,7 @@
optional int32 datagram_size_bytes = 3;
optional int64 datagram_transfer_time_millis = 4;
optional bool is_demo_mode = 5;
+ optional int32 carrier_id = 6;
}
message SatelliteProvision {
@@ -757,6 +764,7 @@
optional int32 provisioning_time_sec = 2;
optional bool is_provision_request = 3;
optional bool is_canceled = 4;
+ optional int32 carrier_id = 5;
}
message SatelliteSosMessageRecommender {
@@ -809,6 +817,7 @@
optional int32 satellite_session_gap_min_sec = 5;
optional int32 satellite_session_gap_avg_sec = 6;
optional int32 satellite_session_gap_max_sec = 7;
+ optional int32 carrier_id = 8;
}
message SatelliteEntitlement {
@@ -836,4 +845,5 @@
optional int32 result_code = 7;
repeated string country_codes = 8;
optional int32 config_data_source = 9;
+ optional int32 carrier_id = 10;
}
diff --git a/src/java/com/android/internal/telephony/HalVersion.java b/src/java/com/android/internal/telephony/HalVersion.java
index bb839ce..c05111b 100644
--- a/src/java/com/android/internal/telephony/HalVersion.java
+++ b/src/java/com/android/internal/telephony/HalVersion.java
@@ -95,17 +95,8 @@
return less(ver) || equals(ver);
}
- /**
- * @return True if the version is between (excluding the two provided versions)
- */
- public boolean between(HalVersion greaterThan, HalVersion lessThan) {
- return greater(greaterThan) && less(lessThan);
- }
-
@Override
public String toString() {
- if (equals(UNSUPPORTED)) return "UNSUPPORTED";
- if (equals(UNKNOWN)) return "UNKNOWN";
return major + "." + minor;
}
}
diff --git a/src/java/com/android/internal/telephony/InboundSmsHandler.java b/src/java/com/android/internal/telephony/InboundSmsHandler.java
index 37d8aa6..891f3f4 100644
--- a/src/java/com/android/internal/telephony/InboundSmsHandler.java
+++ b/src/java/com/android/internal/telephony/InboundSmsHandler.java
@@ -305,9 +305,9 @@
mResolver = context.getContentResolver();
mWapPush = new WapPushOverSms(context, mFeatureFlags);
- boolean smsCapable = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_sms_capable);
- mSmsReceiveDisabled = !TelephonyManager.from(mContext).getSmsReceiveCapableForPhone(
+ TelephonyManager telephonyManager = TelephonyManager.from(mContext);
+ boolean smsCapable = telephonyManager.isDeviceSmsCapable();
+ mSmsReceiveDisabled = !telephonyManager.getSmsReceiveCapableForPhone(
mPhone.getPhoneId(), smsCapable);
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index 84568b6..88ead6f 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -949,8 +949,8 @@
break;
}
- if (serviceProxy.isEmpty() && mHalVersion.get(service).between(
- RADIO_HAL_VERSION_UNSUPPORTED, RADIO_HAL_VERSION_2_0)) {
+ if (serviceProxy.isEmpty()
+ && mHalVersion.get(service).less(RADIO_HAL_VERSION_2_0)) {
try {
mHalVersion.put(service, RADIO_HAL_VERSION_1_6);
serviceProxy.setHidl(mHalVersion.get(service),
@@ -960,8 +960,8 @@
}
}
- if (serviceProxy.isEmpty() && mHalVersion.get(service).between(
- RADIO_HAL_VERSION_UNSUPPORTED, RADIO_HAL_VERSION_2_0)) {
+ if (serviceProxy.isEmpty()
+ && mHalVersion.get(service).less(RADIO_HAL_VERSION_2_0)) {
try {
mHalVersion.put(service, RADIO_HAL_VERSION_1_5);
serviceProxy.setHidl(mHalVersion.get(service),
@@ -971,8 +971,8 @@
}
}
- if (serviceProxy.isEmpty() && mHalVersion.get(service).between(
- RADIO_HAL_VERSION_UNSUPPORTED, RADIO_HAL_VERSION_2_0)) {
+ if (serviceProxy.isEmpty()
+ && mHalVersion.get(service).less(RADIO_HAL_VERSION_2_0)) {
try {
mHalVersion.put(service, RADIO_HAL_VERSION_1_4);
serviceProxy.setHidl(mHalVersion.get(service),
@@ -982,8 +982,8 @@
}
}
- if (serviceProxy.isEmpty() && mHalVersion.get(service).between(
- RADIO_HAL_VERSION_UNKNOWN, RADIO_HAL_VERSION_2_0)) {
+ if (serviceProxy.isEmpty()
+ && mHalVersion.get(service).less(RADIO_HAL_VERSION_2_0)) {
riljLoge("IRadio <1.4 is no longer supported.");
}
@@ -1617,8 +1617,7 @@
@Override
public void supplySimDepersonalization(PersoSubState persoType, String controlKey,
Message result) {
- if (mHalVersion.get(HAL_SERVICE_SIM).between(
- RADIO_HAL_VERSION_UNKNOWN, RADIO_HAL_VERSION_1_5)
+ if (mHalVersion.get(HAL_SERVICE_SIM).less(RADIO_HAL_VERSION_1_5)
&& PersoSubState.PERSOSUBSTATE_SIM_NETWORK == persoType) {
supplyNetworkDepersonalization(controlKey, result);
return;
@@ -3019,8 +3018,7 @@
@Override
public void setAllowedNetworkTypesBitmap(
@TelephonyManager.NetworkTypeBitMask int networkTypeBitmask, Message result) {
- if (mHalVersion.get(HAL_SERVICE_NETWORK).between(
- RADIO_HAL_VERSION_UNKNOWN, RADIO_HAL_VERSION_1_6)) {
+ if (mHalVersion.get(HAL_SERVICE_NETWORK).less(RADIO_HAL_VERSION_1_6)) {
// For older HAL, redirects the call to setPreferredNetworkType.
setPreferredNetworkType(
RadioAccessFamily.getNetworkTypeFromRaf(networkTypeBitmask), result);
diff --git a/src/java/com/android/internal/telephony/SMSDispatcher.java b/src/java/com/android/internal/telephony/SMSDispatcher.java
index 7d8786e..2f2b62a 100644
--- a/src/java/com/android/internal/telephony/SMSDispatcher.java
+++ b/src/java/com/android/internal/telephony/SMSDispatcher.java
@@ -255,8 +255,7 @@
mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor(
Settings.Global.SMS_SHORT_CODE_RULE), false, mSettingsObserver);
- mSmsCapable = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_sms_capable);
+ mSmsCapable = mTelephonyManager.isDeviceSmsCapable();
mSmsSendDisabled = !mTelephonyManager.getSmsSendCapableForPhone(
mPhone.getPhoneId(), mSmsCapable);
IntentFilter intentFilter = new IntentFilter();
diff --git a/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java b/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java
index 30e5aa1..3837790 100644
--- a/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java
+++ b/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java
@@ -340,6 +340,7 @@
return new CarrierDisplayNameData.Builder()
.setSpn(spn)
+ .setDataSpn(spn)
.setShowSpn(showSpn)
.setPlmn(plmn)
.setShowPlmn(showPlmn)
diff --git a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
index a16545a..767c39a 100644
--- a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
+++ b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
@@ -1476,7 +1476,8 @@
satelliteController.countOfAllowedSatelliteAccess,
satelliteController.countOfDisallowedSatelliteAccess,
satelliteController.countOfSatelliteAccessCheckFail,
- satelliteController.isProvisioned);
+ satelliteController.isProvisioned,
+ satelliteController.carrierId);
}
private static StatsEvent buildStatsEvent(SatelliteSession satelliteSession) {
@@ -1494,7 +1495,11 @@
satelliteSession.countOfIncomingDatagramSuccess,
satelliteSession.countOfIncomingDatagramFailed,
satelliteSession.isDemoMode,
- satelliteSession.maxNtnSignalStrengthLevel);
+ satelliteSession.maxNtnSignalStrengthLevel,
+ satelliteSession.carrierId,
+ satelliteSession.countOfSatelliteNotificationDisplayed,
+ satelliteSession.countOfAutoExitDueToScreenOff,
+ satelliteSession.countOfAutoExitDueToTnNetwork);
}
private static StatsEvent buildStatsEvent(SatelliteIncomingDatagram stats) {
@@ -1503,7 +1508,8 @@
stats.resultCode,
stats.datagramSizeBytes,
stats.datagramTransferTimeMillis,
- stats.isDemoMode);
+ stats.isDemoMode,
+ stats.carrierId);
}
private static StatsEvent buildStatsEvent(SatelliteOutgoingDatagram stats) {
@@ -1513,7 +1519,8 @@
stats.resultCode,
stats.datagramSizeBytes,
stats.datagramTransferTimeMillis,
- stats.isDemoMode);
+ stats.isDemoMode,
+ stats.carrierId);
}
private static StatsEvent buildStatsEvent(SatelliteProvision stats) {
@@ -1522,7 +1529,8 @@
stats.resultCode,
stats.provisioningTimeSec,
stats.isProvisionRequest,
- stats.isCanceled);
+ stats.isCanceled,
+ stats.carrierId);
}
private static StatsEvent buildStatsEvent(SatelliteSosMessageRecommender stats) {
@@ -1582,7 +1590,8 @@
stats.countOfSatelliteNotificationDisplayed,
stats.satelliteSessionGapMinSec,
stats.satelliteSessionGapAvgSec,
- stats.satelliteSessionGapMaxSec);
+ stats.satelliteSessionGapMaxSec,
+ stats.carrierId);
}
private static StatsEvent buildStatsEvent(SatelliteEntitlement stats) {
@@ -1614,7 +1623,8 @@
stats.isEmergency,
stats.resultCode,
stats.countryCodes,
- stats.configDataSource);
+ stats.configDataSource,
+ stats.carrierId);
}
/** Returns all phones in {@link PhoneFactory}, or an empty array if phones not made yet. */
diff --git a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
index 780af82..9fc0e6f 100644
--- a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
+++ b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
@@ -771,6 +771,7 @@
atom.countOfDisallowedSatelliteAccess += stats.countOfDisallowedSatelliteAccess;
atom.countOfSatelliteAccessCheckFail += stats.countOfSatelliteAccessCheckFail;
atom.isProvisioned = stats.isProvisioned;
+ atom.carrierId = stats.carrierId;
mAtoms.satelliteController = atomArray;
saveAtomsToFile(SAVE_TO_FILE_DELAY_FOR_UPDATE_MILLIS);
@@ -870,6 +871,7 @@
atom.satelliteSessionGapMinSec = stats.satelliteSessionGapMinSec;
atom.satelliteSessionGapAvgSec = stats.satelliteSessionGapAvgSec;
atom.satelliteSessionGapMaxSec = stats.satelliteSessionGapMaxSec;
+ atom.carrierId = stats.carrierId;
mAtoms.carrierRoamingSatelliteControllerStats = atomArray;
saveAtomsToFile(SAVE_TO_FILE_DELAY_FOR_UPDATE_MILLIS);
@@ -2332,7 +2334,12 @@
&& stats.countOfIncomingDatagramSuccess == key.countOfIncomingDatagramSuccess
&& stats.countOfIncomingDatagramFailed == key.countOfIncomingDatagramFailed
&& stats.isDemoMode == key.isDemoMode
- && stats.maxNtnSignalStrengthLevel == key.maxNtnSignalStrengthLevel) {
+ && stats.maxNtnSignalStrengthLevel == key.maxNtnSignalStrengthLevel
+ && stats.carrierId == key.carrierId
+ && stats.countOfSatelliteNotificationDisplayed
+ == key.countOfSatelliteNotificationDisplayed
+ && stats.countOfAutoExitDueToScreenOff == key.countOfAutoExitDueToScreenOff
+ && stats.countOfAutoExitDueToTnNetwork == key.countOfAutoExitDueToTnNetwork) {
return stats;
}
}
diff --git a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
index 2e58159..ddf0a4e 100644
--- a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
+++ b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
@@ -17,8 +17,8 @@
package com.android.internal.telephony.metrics;
import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_NONE;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
-import android.telephony.TelephonyManager;
import android.telephony.satellite.NtnSignalStrength;
import android.telephony.satellite.SatelliteManager;
@@ -94,6 +94,7 @@
private final int mCountOfDisallowedSatelliteAccess;
private final int mCountOfSatelliteAccessCheckFail;
private static boolean sIsProvisioned;
+ private static int sCarrierId = UNKNOWN_CARRIER_ID;
private SatelliteControllerParams(Builder builder) {
this.mCountOfSatelliteServiceEnablementsSuccess =
@@ -144,6 +145,11 @@
if (builder.mIsProvisioned.isPresent()) {
this.sIsProvisioned = builder.mIsProvisioned.get();
}
+
+ // Carrier ID value should be updated only when it is meaningful.
+ if (builder.mCarrierId.isPresent()) {
+ this.sCarrierId = builder.mCarrierId.get();
+ }
}
public int getCountOfSatelliteServiceEnablementsSuccess() {
@@ -262,6 +268,10 @@
return sIsProvisioned;
}
+ public int getCarrierId() {
+ return sCarrierId;
+ }
+
/**
* A builder class to create {@link SatelliteControllerParams} data structure class
*/
@@ -295,6 +305,7 @@
private int mCountOfDisallowedSatelliteAccess = 0;
private int mCountOfSatelliteAccessCheckFail = 0;
private Optional<Boolean> mIsProvisioned = Optional.empty();
+ private Optional<Integer> mCarrierId = Optional.empty();
/**
* Sets countOfSatelliteServiceEnablementsSuccess value of {@link SatelliteController}
@@ -583,6 +594,15 @@
}
/**
+ * Sets Carrier ID value of {@link SatelliteController} atom
+ * then returns Builder class
+ */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = Optional.of(carrierId);
+ return this;
+ }
+
+ /**
* Returns ControllerParams, which contains whole component of
* {@link SatelliteController} atom
*/
@@ -632,6 +652,7 @@
+ ", countOfDisallowedSatelliteAccess=" + mCountOfDisallowedSatelliteAccess
+ ", countOfSatelliteAccessCheckFail=" + mCountOfSatelliteAccessCheckFail
+ ", isProvisioned=" + sIsProvisioned
+ + ", carrierId=" + sCarrierId
+ ")";
}
}
@@ -653,6 +674,11 @@
private final int mCountOfIncomingDatagramFailed;
private final boolean mIsDemoMode;
private final @NtnSignalStrength.NtnSignalStrengthLevel int mMaxNtnSignalStrengthLevel;
+ private final int mCarrierId;
+ private final int mCountOfSatelliteNotificationDisplayed;
+ private final int mCountOfAutoExitDueToScreenOff;
+ private final int mCountOfAutoExitDueToTnNetwork;
+
private SatelliteSessionParams(Builder builder) {
this.mSatelliteServiceInitializationResult =
@@ -669,6 +695,11 @@
this.mCountOfIncomingDatagramFailed = builder.mCountOfIncomingDatagramFailed;
this.mIsDemoMode = builder.mIsDemoMode;
this.mMaxNtnSignalStrengthLevel = builder.mMaxNtnSignalStrengthLevel;
+ this.mCarrierId = builder.mCarrierId;
+ this.mCountOfSatelliteNotificationDisplayed =
+ builder.mCountOfSatelliteNotificationDisplayed;
+ this.mCountOfAutoExitDueToScreenOff = builder.mCountOfAutoExitDueToScreenOff;
+ this.mCountOfAutoExitDueToTnNetwork = builder.mCountOfAutoExitDueToTnNetwork;
}
public int getSatelliteServiceInitializationResult() {
@@ -719,6 +750,22 @@
return mMaxNtnSignalStrengthLevel;
}
+ public int getCarrierId() {
+ return mCarrierId;
+ }
+
+ public int getCountOfSatelliteNotificationDisplayed() {
+ return mCountOfSatelliteNotificationDisplayed;
+ }
+
+ public int getCountOfAutoExitDueToScreenOff() {
+ return mCountOfAutoExitDueToScreenOff;
+ }
+
+ public int getCountOfAutoExitDueToTnNetwork() {
+ return mCountOfAutoExitDueToTnNetwork;
+ }
+
/**
* A builder class to create {@link SatelliteSessionParams} data structure class
*/
@@ -736,6 +783,10 @@
private boolean mIsDemoMode = false;
private @NtnSignalStrength.NtnSignalStrengthLevel int mMaxNtnSignalStrengthLevel =
NTN_SIGNAL_STRENGTH_NONE;
+ private int mCarrierId = UNKNOWN_CARRIER_ID;
+ private int mCountOfSatelliteNotificationDisplayed = -1;
+ private int mCountOfAutoExitDueToScreenOff = -1;
+ private int mCountOfAutoExitDueToTnNetwork = -1;
/**
* Sets satelliteServiceInitializationResult value of {@link SatelliteSession}
@@ -811,13 +862,49 @@
return this;
}
- /** Sets the max ntn signal strength for the satellite session */
+ /** Sets the max ntn signal strength for the satellite session. */
public Builder setMaxNtnSignalStrengthLevel(
@NtnSignalStrength.NtnSignalStrengthLevel int maxNtnSignalStrengthLevel) {
this.mMaxNtnSignalStrengthLevel = maxNtnSignalStrengthLevel;
return this;
}
+ /** Sets the currently active NB-IoT NTN carrier ID. */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = carrierId;
+ return this;
+ }
+
+ /**
+ * Sets Total number of times the user is notified that the device is eligible for
+ * satellite service for this session.
+ */
+ public Builder setCountOfSatelliteNotificationDisplayed(
+ int countOfSatelliteNotificationDisplayed) {
+ this.mCountOfSatelliteNotificationDisplayed = countOfSatelliteNotificationDisplayed;
+ return this;
+ }
+
+ /**
+ * Sets Total number of times exit P2P message service automatically due to screen is
+ * off and timer is expired.
+ */
+ public Builder setCountOfAutoExitDueToScreenOff(
+ int countOfAutoExitDueToScreenOff) {
+ this.mCountOfAutoExitDueToScreenOff = countOfAutoExitDueToScreenOff;
+ return this;
+ }
+
+ /**
+ * Sets Total number of times times exit P2P message service automatically due to
+ * scan TN network.
+ */
+ public Builder setCountOfAutoExitDueToTnNetwork(
+ int countOfAutoExitDueToTnNetwork) {
+ this.mCountOfAutoExitDueToTnNetwork = countOfAutoExitDueToTnNetwork;
+ return this;
+ }
+
/**
* Returns SessionParams, which contains whole component of
* {@link SatelliteSession} atom
@@ -843,6 +930,11 @@
+ ", CountOfIncomingDatagramFailed=" + mCountOfIncomingDatagramFailed
+ ", IsDemoMode=" + mIsDemoMode
+ ", MaxNtnSignalStrengthLevel=" + mMaxNtnSignalStrengthLevel
+ + ", CarrierId=" + mCarrierId
+ + ", CountOfSatelliteNotificationDisplayed"
+ + mCountOfSatelliteNotificationDisplayed
+ + ", CountOfAutoExitDueToScreenOff" + mCountOfAutoExitDueToScreenOff
+ + ", CountOfAutoExitDueToTnNetwork" + mCountOfAutoExitDueToTnNetwork
+ ")";
}
}
@@ -856,12 +948,14 @@
private final int mDatagramSizeBytes;
private final long mDatagramTransferTimeMillis;
private final boolean mIsDemoMode;
+ private final int mCarrierId;
private SatelliteIncomingDatagramParams(Builder builder) {
this.mResultCode = builder.mResultCode;
this.mDatagramSizeBytes = builder.mDatagramSizeBytes;
this.mDatagramTransferTimeMillis = builder.mDatagramTransferTimeMillis;
this.mIsDemoMode = builder.mIsDemoMode;
+ this.mCarrierId = builder.mCarrierId;
}
public int getResultCode() {
@@ -880,6 +974,10 @@
return mIsDemoMode;
}
+ public int getCarrierId() {
+ return mCarrierId;
+ }
+
/**
* A builder class to create {@link SatelliteIncomingDatagramParams} data structure class
*/
@@ -888,6 +986,7 @@
private int mDatagramSizeBytes = -1;
private long mDatagramTransferTimeMillis = -1;
private boolean mIsDemoMode = false;
+ private int mCarrierId = UNKNOWN_CARRIER_ID;
/**
* Sets resultCode value of {@link SatelliteIncomingDatagram} atom
@@ -925,6 +1024,12 @@
return this;
}
+ /** Sets the currently active NB-IoT NTN carrier ID. */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = carrierId;
+ return this;
+ }
+
/**
* Returns IncomingDatagramParams, which contains whole component of
* {@link SatelliteIncomingDatagram} atom
@@ -942,6 +1047,7 @@
+ ", datagramSizeBytes=" + mDatagramSizeBytes
+ ", datagramTransferTimeMillis=" + mDatagramTransferTimeMillis
+ ", isDemoMode=" + mIsDemoMode
+ + ", CarrierId=" + mCarrierId
+ ")";
}
}
@@ -956,6 +1062,7 @@
private final int mDatagramSizeBytes;
private final long mDatagramTransferTimeMillis;
private final boolean mIsDemoMode;
+ private final int mCarrierId;
private SatelliteOutgoingDatagramParams(Builder builder) {
this.mDatagramType = builder.mDatagramType;
@@ -963,6 +1070,7 @@
this.mDatagramSizeBytes = builder.mDatagramSizeBytes;
this.mDatagramTransferTimeMillis = builder.mDatagramTransferTimeMillis;
this.mIsDemoMode = builder.mIsDemoMode;
+ this.mCarrierId = builder.mCarrierId;
}
public int getDatagramType() {
@@ -985,6 +1093,10 @@
return mIsDemoMode;
}
+ public int getCarrierId() {
+ return mCarrierId;
+ }
+
/**
* A builder class to create {@link SatelliteOutgoingDatagramParams} data structure class
*/
@@ -994,6 +1106,7 @@
private int mDatagramSizeBytes = -1;
private long mDatagramTransferTimeMillis = -1;
private boolean mIsDemoMode = false;
+ private int mCarrierId = UNKNOWN_CARRIER_ID;
/**
* Sets datagramType value of {@link SatelliteOutgoingDatagram} atom
@@ -1040,6 +1153,12 @@
return this;
}
+ /** Sets the currently active NB-IoT NTN carrier ID. */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = carrierId;
+ return this;
+ }
+
/**
* Returns OutgoingDatagramParams, which contains whole component of
* {@link SatelliteOutgoingDatagram} atom
@@ -1058,6 +1177,7 @@
+ ", datagramSizeBytes=" + mDatagramSizeBytes
+ ", datagramTransferTimeMillis=" + mDatagramTransferTimeMillis
+ ", isDemoMode=" + mIsDemoMode
+ + ", CarrierId=" + mCarrierId
+ ")";
}
}
@@ -1071,12 +1191,14 @@
private final int mProvisioningTimeSec;
private final boolean mIsProvisionRequest;
private final boolean mIsCanceled;
+ private final int mCarrierId;
private SatelliteProvisionParams(Builder builder) {
this.mResultCode = builder.mResultCode;
this.mProvisioningTimeSec = builder.mProvisioningTimeSec;
this.mIsProvisionRequest = builder.mIsProvisionRequest;
this.mIsCanceled = builder.mIsCanceled;
+ this.mCarrierId = builder.mCarrierId;
}
public int getResultCode() {
@@ -1095,6 +1217,10 @@
return mIsCanceled;
}
+ public int getCarrierId() {
+ return mCarrierId;
+ }
+
/**
* A builder class to create {@link SatelliteProvisionParams} data structure class
*/
@@ -1103,6 +1229,7 @@
private int mProvisioningTimeSec = -1;
private boolean mIsProvisionRequest = false;
private boolean mIsCanceled = false;
+ private int mCarrierId = UNKNOWN_CARRIER_ID;
/**
* Sets resultCode value of {@link SatelliteProvision} atom
@@ -1140,6 +1267,12 @@
return this;
}
+ /** Sets the currently active NB-IoT NTN carrier ID. */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = carrierId;
+ return this;
+ }
+
/**
* Returns ProvisionParams, which contains whole component of
* {@link SatelliteProvision} atom
@@ -1156,7 +1289,9 @@
+ "resultCode=" + mResultCode
+ ", provisioningTimeSec=" + mProvisioningTimeSec
+ ", isProvisionRequest=" + mIsProvisionRequest
- + ", isCanceled" + mIsCanceled + ")";
+ + ", isCanceled" + mIsCanceled
+ + ", CarrierId=" + mCarrierId
+ + ")";
}
}
@@ -1236,7 +1371,7 @@
private int mRecommendingHandoverType = -1;
private boolean mIsSatelliteAllowedInCurrentLocation = false;
private boolean mIsWifiConnected = false;
- private int mCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID;
+ private int mCarrierId = UNKNOWN_CARRIER_ID;
/**
@@ -1672,6 +1807,7 @@
private final int mSatelliteSessionGapMinSec;
private final int mSatelliteSessionGapAvgSec;
private final int mSatelliteSessionGapMaxSec;
+ private static int sCarrierId;
private CarrierRoamingSatelliteControllerStatsParams(Builder builder) {
this.mConfigDataSource = builder.mConfigDataSource;
@@ -1684,6 +1820,11 @@
this.mSatelliteSessionGapMinSec = builder.mSatelliteSessionGapMinSec;
this.mSatelliteSessionGapAvgSec = builder.mSatelliteSessionGapAvgSec;
this.mSatelliteSessionGapMaxSec = builder.mSatelliteSessionGapMaxSec;
+
+ // Carrier ID value should be updated only when it is meaningful.
+ if (builder.mCarrierId.isPresent()) {
+ this.sCarrierId = builder.mCarrierId.get();
+ }
}
public int getConfigDataSource() {
@@ -1715,6 +1856,10 @@
return mSatelliteSessionGapMaxSec;
}
+ public int getCarrierId() {
+ return sCarrierId;
+ }
+
/**
* A builder class to create {@link CarrierRoamingSatelliteControllerStatsParams}
* data structure class
@@ -1727,6 +1872,7 @@
private int mSatelliteSessionGapMinSec = 0;
private int mSatelliteSessionGapAvgSec = 0;
private int mSatelliteSessionGapMaxSec = 0;
+ private Optional<Integer> mCarrierId = Optional.empty();
/**
* Sets configDataSource value of {@link CarrierRoamingSatelliteControllerStats} atom
@@ -1794,6 +1940,12 @@
return this;
}
+ /** Sets the currently active NB-IoT NTN carrier ID. */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = Optional.of(carrierId);
+ return this;
+ }
+
/**
* Returns CarrierRoamingSatelliteControllerStatsParams, which contains whole component
* of {@link CarrierRoamingSatelliteControllerStats} atom
@@ -1817,6 +1969,7 @@
+ ", satelliteSessionGapMinSec=" + mSatelliteSessionGapMinSec
+ ", satelliteSessionGapAvgSec=" + mSatelliteSessionGapAvgSec
+ ", satelliteSessionGapMaxSec=" + mSatelliteSessionGapMaxSec
+ + ", CarrierId=" + sCarrierId
+ ")";
}
}
@@ -2048,6 +2201,7 @@
private final @SatelliteManager.SatelliteResult int mResultCode;
private final String[] mCountryCodes;
private final @SatelliteConstants.ConfigDataSource int mConfigDataSource;
+ private final int mCarrierId;
private SatelliteAccessControllerParams(Builder builder) {
this.mAccessControlType = builder.mAccessControlType;
@@ -2059,6 +2213,7 @@
this.mResultCode = builder.mResultCode;
this.mCountryCodes = builder.mCountryCodes;
this.mConfigDataSource = builder.mConfigDataSource;
+ this.mCarrierId = builder.mCarrierId;
}
public @SatelliteConstants.AccessControlType int getAccessControlType() {
@@ -2097,6 +2252,10 @@
return mConfigDataSource;
}
+ public int getCarrierId() {
+ return mCarrierId;
+ }
+
/**
* A builder class to create {@link SatelliteAccessControllerParams} data structure class
*/
@@ -2110,6 +2269,7 @@
private @SatelliteManager.SatelliteResult int mResultCode;
private String[] mCountryCodes;
private @SatelliteConstants.ConfigDataSource int mConfigDataSource;
+ private int mCarrierId = UNKNOWN_CARRIER_ID;
/**
* Sets AccessControlType value of {@link #SatelliteAccessController}
@@ -2171,6 +2331,12 @@
return this;
}
+ /** Sets the currently active NB-IoT NTN carrier ID. */
+ public Builder setCarrierId(int carrierId) {
+ this.mCarrierId = carrierId;
+ return this;
+ }
+
/**
* Returns AccessControllerParams, which contains whole component of
* {@link #SatelliteAccessController} atom
@@ -2193,6 +2359,7 @@
+ ", ResultCode=" + mResultCode
+ ", CountryCodes=" + Arrays.toString(mCountryCodes)
+ ", ConfigDataSource=" + mConfigDataSource
+ + ", CarrierId=" + mCarrierId
+ ")";
}
}
@@ -2237,6 +2404,7 @@
proto.countOfDisallowedSatelliteAccess = param.getCountOfDisallowedSatelliteAccess();
proto.countOfSatelliteAccessCheckFail = param.getCountOfSatelliteAccessCheckFail();
proto.isProvisioned = param.isProvisioned();
+ proto.carrierId = param.getCarrierId();
mAtomsStorage.addSatelliteControllerStats(proto);
}
@@ -2257,6 +2425,11 @@
proto.countOfIncomingDatagramFailed = param.getCountOfOutgoingDatagramFailed();
proto.isDemoMode = param.getIsDemoMode();
proto.maxNtnSignalStrengthLevel = param.getMaxNtnSignalStrengthLevel();
+ proto.carrierId = param.getCarrierId();
+ proto.countOfSatelliteNotificationDisplayed =
+ param.getCountOfSatelliteNotificationDisplayed();
+ proto.countOfAutoExitDueToScreenOff = param.getCountOfAutoExitDueToScreenOff();
+ proto.countOfAutoExitDueToTnNetwork = param.getCountOfAutoExitDueToTnNetwork();
mAtomsStorage.addSatelliteSessionStats(proto);
}
@@ -2268,6 +2441,7 @@
proto.datagramSizeBytes = param.getDatagramSizeBytes();
proto.datagramTransferTimeMillis = param.getDatagramTransferTimeMillis();
proto.isDemoMode = param.getIsDemoMode();
+ proto.carrierId = param.getCarrierId();
mAtomsStorage.addSatelliteIncomingDatagramStats(proto);
}
@@ -2280,6 +2454,7 @@
proto.datagramSizeBytes = param.getDatagramSizeBytes();
proto.datagramTransferTimeMillis = param.getDatagramTransferTimeMillis();
proto.isDemoMode = param.getIsDemoMode();
+ proto.carrierId = param.getCarrierId();
mAtomsStorage.addSatelliteOutgoingDatagramStats(proto);
}
@@ -2290,6 +2465,7 @@
proto.provisioningTimeSec = param.getProvisioningTimeSec();
proto.isProvisionRequest = param.getIsProvisionRequest();
proto.isCanceled = param.getIsCanceled();
+ proto.carrierId = param.getCarrierId();
mAtomsStorage.addSatelliteProvisionStats(proto);
}
@@ -2344,6 +2520,7 @@
proto.satelliteSessionGapMinSec = param.mSatelliteSessionGapMinSec;
proto.satelliteSessionGapAvgSec = param.mSatelliteSessionGapAvgSec;
proto.satelliteSessionGapMaxSec = param.mSatelliteSessionGapMaxSec;
+ proto.carrierId = param.getCarrierId();
mAtomsStorage.addCarrierRoamingSatelliteControllerStats(proto);
}
@@ -2381,6 +2558,7 @@
proto.resultCode = param.getResultCode();
proto.countryCodes = param.getCountryCodes();
proto.configDataSource = param.getConfigDataSource();
+ proto.carrierId = param.getCarrierId();
mAtomsStorage.addSatelliteAccessControllerStats(proto);
}
}
diff --git a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
index 40183c1..682123f 100644
--- a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
+++ b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java
@@ -729,6 +729,7 @@
.setDatagramTransferTimeMillis(argument.datagramStartTime > 0
? (System.currentTimeMillis() - argument.datagramStartTime) : 0)
.setIsDemoMode(mIsDemoMode)
+ .setCarrierId(SatelliteController.getInstance().getSatelliteCarrierId())
.build());
if (resultCode == SatelliteManager.SATELLITE_RESULT_SUCCESS) {
mControllerMetricsStats.reportOutgoingDatagramSuccessCount(argument.datagramType,
diff --git a/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java b/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java
index 7a92286..9cff658 100644
--- a/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java
+++ b/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java
@@ -747,6 +747,7 @@
.setDatagramSizeBytes(datagramSizeRoundedBytes)
.setDatagramTransferTimeMillis(datagramTransferTime)
.setIsDemoMode(mIsDemoMode)
+ .setCarrierId(SatelliteController.getInstance().getSatelliteCarrierId())
.build());
mControllerMetricsStats.reportIncomingDatagramCount(resultCode, mIsDemoMode);
diff --git a/src/java/com/android/internal/telephony/satellite/DemoSimulator.java b/src/java/com/android/internal/telephony/satellite/DemoSimulator.java
index 3c31ae8..7b64c61 100644
--- a/src/java/com/android/internal/telephony/satellite/DemoSimulator.java
+++ b/src/java/com/android/internal/telephony/satellite/DemoSimulator.java
@@ -131,7 +131,7 @@
NtnSignalStrength ntnSignalStrength = new NtnSignalStrength();
ntnSignalStrength.signalStrengthLevel = 0;
mISatelliteListener.onSatelliteModemStateChanged(
- SatelliteModemState.SATELLITE_MODEM_STATE_NOT_CONNECTED);
+ SatelliteModemState.SATELLITE_MODEM_STATE_OUT_OF_SERVICE);
mISatelliteListener.onNtnSignalStrengthChanged(ntnSignalStrength);
synchronized (mLock) {
@@ -191,7 +191,7 @@
NtnSignalStrength ntnSignalStrength = new NtnSignalStrength();
ntnSignalStrength.signalStrengthLevel = 2;
mISatelliteListener.onSatelliteModemStateChanged(
- SatelliteModemState.SATELLITE_MODEM_STATE_CONNECTED);
+ SatelliteModemState.SATELLITE_MODEM_STATE_IN_SERVICE);
mISatelliteListener.onNtnSignalStrengthChanged(ntnSignalStrength);
synchronized (mLock) {
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index b73d93e..c6e1abe 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -29,16 +29,17 @@
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_CONNECTION_HYSTERESIS_SEC_INT;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL;
-import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_ESOS_INACTIVITY_TIMEOUT_SEC_INT;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ESOS_SUPPORTED_BOOL;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_NIDD_APN_NAME_STRING;
+import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_ESOS_INACTIVITY_TIMEOUT_SEC_INT;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_P2P_SMS_INACTIVITY_TIMEOUT_SEC_INT;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_P2P_SMS_SUPPORTED_BOOL;
-import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_TURN_OFF_SESSION_FOR_EMERGENCY_CALL_BOOL;
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_SCREEN_OFF_INACTIVITY_TIMEOUT_SEC_INT;
+import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ROAMING_TURN_OFF_SESSION_FOR_EMERGENCY_CALL_BOOL;
import static android.telephony.SubscriptionManager.SATELLITE_ATTACH_ENABLED_FOR_CARRIER;
import static android.telephony.SubscriptionManager.SATELLITE_ENTITLEMENT_STATUS;
import static android.telephony.SubscriptionManager.isValidSubscriptionId;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_NONE;
import static android.telephony.satellite.SatelliteManager.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS;
import static android.telephony.satellite.SatelliteManager.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911;
@@ -1202,7 +1203,8 @@
.setSatelliteTechnology(getSupportedNtnRadioTechnology())
.setInitializationProcessingTime(
System.currentTimeMillis() - mSessionProcessingTimeStamp)
- .setIsDemoMode(mIsDemoModeEnabled);
+ .setIsDemoMode(mIsDemoModeEnabled)
+ .setCarrierId(getSatelliteCarrierId());
mSessionProcessingTimeStamp = 0;
if (error == SATELLITE_RESULT_SUCCESS) {
@@ -3665,6 +3667,7 @@
mProvisionMetricsStats
.setResultCode(SatelliteManager.SATELLITE_RESULT_INVALID_TELEPHONY_STATE)
.setIsProvisionRequest(true)
+ .setCarrierId(getSatelliteCarrierId())
.reportProvisionMetrics();
mControllerMetricsStats.reportProvisionCount(
SatelliteManager.SATELLITE_RESULT_INVALID_TELEPHONY_STATE);
@@ -3683,6 +3686,7 @@
}
mProvisionMetricsStats.setResultCode(result)
.setIsProvisionRequest(true)
+ .setCarrierId(getSatelliteCarrierId())
.reportProvisionMetrics();
mControllerMetricsStats.reportProvisionCount(result);
}
@@ -3712,6 +3716,7 @@
}
mProvisionMetricsStats.setResultCode(result)
.setIsProvisionRequest(false)
+ .setCarrierId(getSatelliteCarrierId())
.reportProvisionMetrics();
mControllerMetricsStats.reportDeprovisionCount(result);
}
@@ -4993,6 +4998,7 @@
mSessionMetricsStats.setInitializationResult(error)
.setSatelliteTechnology(getSupportedNtnRadioTechnology())
.setIsDemoMode(mIsDemoModeEnabled)
+ .setCarrierId(getSatelliteCarrierId())
.reportSessionMetrics();
mSessionStartTimeStamp = 0;
mSessionProcessingTimeStamp = 0;
@@ -5443,6 +5449,7 @@
.setInitializationProcessingTime(
System.currentTimeMillis() - mSessionProcessingTimeStamp)
.setIsDemoMode(mIsDemoModeEnabled)
+ .setCarrierId(getSatelliteCarrierId())
.reportSessionMetrics();
} else {
resetSatelliteDisabledRequest();
@@ -5657,6 +5664,8 @@
notificationBuilder.build(), UserHandle.ALL);
mCarrierRoamingSatelliteControllerStats.reportCountOfSatelliteNotificationDisplayed();
+ mCarrierRoamingSatelliteControllerStats.reportCarrierId(getSatelliteCarrierId());
+ mSessionMetricsStats.addCountOfSatelliteNotificationDisplayed();
}
private void resetCarrierRoamingSatelliteModeParams() {
@@ -6197,6 +6206,25 @@
mSatellitePhone = SatelliteServiceUtils.getPhone();
}
plogd("mSatellitePhone:" + (mSatellitePhone != null) + ", subId=" + subId);
+ int carrierId = mSatellitePhone.getCarrierId();
+ if (carrierId != UNKNOWN_CARRIER_ID) {
+ mControllerMetricsStats.setCarrierId(carrierId);
+ } else {
+ logd("setSatellitePhone: Carrier ID is UNKNOWN_CARRIER_ID");
+ }
+ }
+ }
+
+ /** Return the carrier ID of the binding satellite subscription. */
+ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+ public int getSatelliteCarrierId() {
+ synchronized (mSatellitePhoneLock) {
+ if (mSatellitePhone != null) {
+ return mSatellitePhone.getCarrierId();
+ } else {
+ logd("getSatelliteCarrierId: returns UNKNOWN_CARRIER_ID");
+ return UNKNOWN_CARRIER_ID;
+ }
}
}
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java
index 1bae3bf..21c5c44 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java
@@ -174,9 +174,9 @@
return SatelliteManager.SATELLITE_MODEM_STATE_OFF;
case SatelliteModemState.SATELLITE_MODEM_STATE_UNAVAILABLE:
return SatelliteManager.SATELLITE_MODEM_STATE_UNAVAILABLE;
- case SatelliteModemState.SATELLITE_MODEM_STATE_NOT_CONNECTED:
+ case SatelliteModemState.SATELLITE_MODEM_STATE_OUT_OF_SERVICE:
return SatelliteManager.SATELLITE_MODEM_STATE_NOT_CONNECTED;
- case SatelliteModemState.SATELLITE_MODEM_STATE_CONNECTED:
+ case SatelliteModemState.SATELLITE_MODEM_STATE_IN_SERVICE:
return SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED;
default:
loge("Received invalid modem state: " + modemState);
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java b/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java
index eab3be7..f4208f7 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java
@@ -34,6 +34,7 @@
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_LISTENING;
import static android.telephony.satellite.SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED;
+import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -66,6 +67,7 @@
import com.android.internal.telephony.IIntegerConsumer;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.flags.FeatureFlags;
+import com.android.internal.telephony.satellite.metrics.SessionMetricsStats;
import com.android.internal.util.State;
import com.android.internal.util.StateMachine;
import com.android.telephony.Rlog;
@@ -173,6 +175,7 @@
@NonNull private final DatagramController mDatagramController;
@Nullable private PersistentLogger mPersistentLogger = null;
@Nullable private DeviceStateMonitor mDeviceStateMonitor;
+ @NonNull private SessionMetricsStats mSessionMetricsStats;
@NonNull private FeatureFlags mFeatureFlags;
@@ -279,6 +282,7 @@
phone = SatelliteServiceUtils.getPhone();
}
mDeviceStateMonitor = phone.getDeviceStateMonitor();
+ mSessionMetricsStats = SessionMetricsStats.getInstance();
addState(mUnavailableState);
addState(mPowerOffState);
@@ -1555,6 +1559,10 @@
@Override
public void accept(int result) {
plogd("requestSatelliteEnabled result=" + result);
+ if (result == SATELLITE_RESULT_SUCCESS) {
+ mSessionMetricsStats.addCountOfAutoExitDueToScreenOff();
+ }
+ // TODO(b/364738085): Add CountOfAutoExitDueToTnNetwork
}
});
}
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/AccessControllerMetricsStats.java b/src/java/com/android/internal/telephony/satellite/metrics/AccessControllerMetricsStats.java
index 13ba709..25f6976 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/AccessControllerMetricsStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/AccessControllerMetricsStats.java
@@ -15,6 +15,7 @@
*/
package com.android.internal.telephony.satellite.metrics;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
import static com.android.internal.telephony.satellite.SatelliteConstants.CONFIG_DATA_SOURCE_UNKNOWN;
@@ -42,6 +43,7 @@
private @SatelliteManager.SatelliteResult int mResultCode;
private String[] mCountryCodes;
private @SatelliteConstants.ConfigDataSource int mConfigDataSource;
+ private int mCarrierId;
private AccessControllerMetricsStats() {
initializeAccessControllerMetricsParam();
}
@@ -70,6 +72,7 @@
mResultCode = SATELLITE_RESULT_SUCCESS;
mCountryCodes = new String[0];
mConfigDataSource = CONFIG_DATA_SOURCE_UNKNOWN;
+ mCarrierId = UNKNOWN_CARRIER_ID;
}
/**
* Sets the Access Control Type for current satellite enablement.
@@ -161,6 +164,17 @@
logd("setConfigDataSource: config data source = " + mConfigDataSource);
return this;
}
+
+ /**
+ * Sets the carrier id for NTN satellite service.
+ * @param carrierId Carrier ID of currently available NTN Satellite Network.
+ */
+ public AccessControllerMetricsStats setCarrierId(int carrierId) {
+ mCarrierId = carrierId;
+ logd("setCarrierId: Carrier ID = " + mCarrierId);
+ return this;
+ }
+
/** Report the access controller metrics atoms to PersistAtomsStorage in telephony. */
public void reportAccessControllerMetrics() {
SatelliteStats.SatelliteAccessControllerParams accessControllerParams =
@@ -174,6 +188,7 @@
.setResult(mResultCode)
.setCountryCodes(mCountryCodes)
.setConfigDatasource(mConfigDataSource)
+ .setCarrierId(mCarrierId)
.build();
logd("reportAccessControllerMetrics: " + accessControllerParams.toString());
SatelliteStats.getInstance().onSatelliteAccessControllerMetrics(accessControllerParams);
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 9524b75..b0cea29 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
@@ -80,6 +80,14 @@
.build());
}
+ /** Capture the NB-IoT NTN carrier ID */
+ public void reportCarrierId(int carrierId) {
+ mSatelliteStats.onCarrierRoamingSatelliteControllerStatsMetrics(
+ new SatelliteStats.CarrierRoamingSatelliteControllerStatsParams.Builder()
+ .setCarrierId(carrierId)
+ .build());
+ }
+
private static void logd(@NonNull String log) {
Log.d(TAG, log);
}
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 d81683e..9f42d3d 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/ControllerMetricsStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/ControllerMetricsStats.java
@@ -380,6 +380,15 @@
.build());
}
+ /** Capture the NB-IoT NTN carrier ID */
+ @VisibleForTesting
+ public void setCarrierId(int carrierId) {
+ mSatelliteStats.onSatelliteControllerMetrics(
+ new SatelliteStats.SatelliteControllerParams.Builder()
+ .setCarrierId(carrierId)
+ .build());
+ }
+
/** Receives the battery status whether it is in charging or not, update interval is 60 sec. */
private final BroadcastReceiver mBatteryStatusReceiver = new BroadcastReceiver() {
private long mLastUpdatedTime = 0;
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/ProvisionMetricsStats.java b/src/java/com/android/internal/telephony/satellite/metrics/ProvisionMetricsStats.java
index 0647231..73be042 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/ProvisionMetricsStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/ProvisionMetricsStats.java
@@ -16,6 +16,8 @@
package com.android.internal.telephony.satellite.metrics;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
+
import android.annotation.NonNull;
import android.telephony.satellite.SatelliteManager;
import android.util.Log;
@@ -37,6 +39,7 @@
private int mProvisioningStartTimeSec;
private boolean mIsProvisionRequest;
private boolean mIsCanceled;
+ private int mCarrierId;
private ProvisionMetricsStats() {
initializeProvisionParams();
@@ -80,6 +83,12 @@
return this;
}
+ /** Sets the Carrier of NTN satellite */
+ public ProvisionMetricsStats setCarrierId(int carrierId) {
+ mCarrierId = carrierId;
+ return this;
+ }
+
/** Report the provision metrics atoms to PersistAtomsStorage in telephony */
public void reportProvisionMetrics() {
SatelliteStats.SatelliteProvisionParams provisionParams =
@@ -89,9 +98,10 @@
(System.currentTimeMillis() / 1000) - mProvisioningStartTimeSec)
.setIsProvisionRequest(mIsProvisionRequest)
.setIsCanceled(mIsCanceled)
+ .setCarrierId(mCarrierId)
.build();
SatelliteStats.getInstance().onSatelliteProvisionMetrics(provisionParams);
- logd("reportProvisionMetrics: " + provisionParams.toString());
+ logd("reportProvisionMetrics: " + provisionParams);
initializeProvisionParams();
}
@@ -100,6 +110,7 @@
mProvisioningStartTimeSec = INVALID_TIME;
mIsProvisionRequest = false;
mIsCanceled = false;
+ mCarrierId = UNKNOWN_CARRIER_ID;
}
private static void logd(@NonNull String log) {
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java b/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java
index 65181c0..a234378 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java
@@ -16,6 +16,7 @@
package com.android.internal.telephony.satellite.metrics;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_NONE;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
@@ -52,6 +53,10 @@
private int mCountOfIncomingDatagramFailed;
private boolean mIsDemoMode;
private @NtnSignalStrength.NtnSignalStrengthLevel int mMaxNtnSignalStrengthLevel;
+ private int mCarrierId;
+ private int mCountOfSatelliteNotificationDisplayed;
+ private int mCountOfAutoExitDueToScreenOff;
+ private int mCountOfAutoExitDueToTnNetwork;
private SessionMetricsStats() {
initializeSessionMetricsParam();
@@ -213,6 +218,35 @@
return this;
}
+ /** Sets the Carrier ID of this NTN session. */
+ public SessionMetricsStats setCarrierId(int carrierId) {
+ mCarrierId = carrierId;
+ logd("setCarrierId(" + carrierId + ")");
+ return this;
+ }
+
+ /** Increase the count of Satellite Notification Display. */
+ public SessionMetricsStats addCountOfSatelliteNotificationDisplayed() {
+ mCountOfSatelliteNotificationDisplayed++;
+ logd("addCountOfSatelliteNotificationDisplayed: current count="
+ + mCountOfSatelliteNotificationDisplayed);
+ return this;
+ }
+
+ /** Increase the count of auto exit from P2P satellite messaging due to screen off. */
+ public SessionMetricsStats addCountOfAutoExitDueToScreenOff() {
+ mCountOfAutoExitDueToScreenOff++;
+ logd("addCountOfAutoExitDueToScreenOff: current count=" + mCountOfAutoExitDueToScreenOff);
+ return this;
+ }
+
+ /** Increase the count of auto exit from P2P satellite messaging due to scan TN network. */
+ public SessionMetricsStats addCountOfAutoExitDueToTnNetwork() {
+ mCountOfAutoExitDueToTnNetwork++;
+ logd("addCountOfAutoExitDueToTnNetwork: current count=" + mCountOfAutoExitDueToTnNetwork);
+ return this;
+ }
+
/** Report the session metrics atoms to PersistAtomsStorage in telephony. */
public void reportSessionMetrics() {
SatelliteStats.SatelliteSessionParams sessionParams =
@@ -229,6 +263,11 @@
.setCountOfIncomingDatagramFailed(mCountOfIncomingDatagramFailed)
.setIsDemoMode(mIsDemoMode)
.setMaxNtnSignalStrengthLevel(mMaxNtnSignalStrengthLevel)
+ .setCarrierId(mCarrierId)
+ .setCountOfSatelliteNotificationDisplayed(
+ mCountOfSatelliteNotificationDisplayed)
+ .setCountOfAutoExitDueToScreenOff(mCountOfAutoExitDueToScreenOff)
+ .setCountOfAutoExitDueToTnNetwork(mCountOfAutoExitDueToTnNetwork)
.build();
logd("reportSessionMetrics: " + sessionParams.toString());
SatelliteStats.getInstance().onSatelliteSessionMetrics(sessionParams);
@@ -277,6 +316,10 @@
mCountOfIncomingDatagramFailed = 0;
mIsDemoMode = false;
mMaxNtnSignalStrengthLevel = NTN_SIGNAL_STRENGTH_NONE;
+ mCarrierId = UNKNOWN_CARRIER_ID;
+ mCountOfSatelliteNotificationDisplayed = 0;
+ mCountOfAutoExitDueToScreenOff = 0;
+ mCountOfAutoExitDueToTnNetwork = 0;
}
private static void logd(@NonNull String log) {
diff --git a/src/java/com/android/internal/telephony/uicc/UiccPort.java b/src/java/com/android/internal/telephony/uicc/UiccPort.java
index 9e341ef..905db70 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccPort.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccPort.java
@@ -31,7 +31,6 @@
import com.android.internal.telephony.TelephonyComponentFactory;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.flags.FeatureFlagsImpl;
-import com.android.internal.telephony.flags.Flags;
import com.android.telephony.Rlog;
import java.io.FileDescriptor;
@@ -442,15 +441,13 @@
* channel that may have been assigned to other client.
*/
private void cleanupOpenLogicalChannelRecordsIfNeeded() {
- if (Flags.cleanupOpenLogicalChannelRecordOnDispose()) {
- synchronized (mOpenChannelRecords) {
- for (OpenLogicalChannelRecord record : mOpenChannelRecords) {
- if (DBG) log("Clean up " + record);
- record.mRequest.binder.unlinkToDeath(record, /*flags=*/ 0);
- record.mRequest.binder = null;
- }
- mOpenChannelRecords.clear();
+ synchronized (mOpenChannelRecords) {
+ for (OpenLogicalChannelRecord record : mOpenChannelRecords) {
+ if (DBG) log("Clean up " + record);
+ record.mRequest.binder.unlinkToDeath(record, /*flags=*/ 0);
+ record.mRequest.binder = null;
}
+ mOpenChannelRecords.clear();
}
}
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 d3a021f..c986be4 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/metrics/PersistAtomsStorageTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/metrics/PersistAtomsStorageTest.java
@@ -1147,6 +1147,7 @@
mSatelliteController1.countOfDatagramTypeKeepAliveSuccess = 1;
mSatelliteController1.countOfDatagramTypeKeepAliveFail = 2;
mSatelliteController1.isProvisioned = true;
+ mSatelliteController1.carrierId = 1;
mSatelliteController2 = new SatelliteController();
mSatelliteController2.countOfSatelliteServiceEnablementsSuccess = 2 + 1;
@@ -1175,6 +1176,7 @@
mSatelliteController2.countOfDatagramTypeKeepAliveSuccess = 4;
mSatelliteController2.countOfDatagramTypeKeepAliveFail = 5;
mSatelliteController2.isProvisioned = false;
+ mSatelliteController2.carrierId = 10;
// SatelliteController atom has one data point
mSatelliteControllers =
@@ -1199,6 +1201,10 @@
mSatelliteSession1.countOfIncomingDatagramFailed = 0;
mSatelliteSession1.isDemoMode = false;
mSatelliteSession1.maxNtnSignalStrengthLevel = 2;
+ mSatelliteSession1.carrierId = 2;
+ mSatelliteSession1.countOfSatelliteNotificationDisplayed = 4;
+ mSatelliteSession1.countOfAutoExitDueToScreenOff = 6;
+ mSatelliteSession1.countOfAutoExitDueToTnNetwork = 7;
mSatelliteSession2 = new SatelliteSession();
mSatelliteSession2.satelliteServiceInitializationResult =
@@ -1217,6 +1223,10 @@
mSatelliteSession2.countOfIncomingDatagramFailed = 1;
mSatelliteSession2.isDemoMode = true;
mSatelliteSession2.maxNtnSignalStrengthLevel = 4;
+ mSatelliteSession2.carrierId = 20;
+ mSatelliteSession2.countOfSatelliteNotificationDisplayed = 40;
+ mSatelliteSession2.countOfAutoExitDueToScreenOff = 60;
+ mSatelliteSession2.countOfAutoExitDueToTnNetwork = 70;
mSatelliteSessions =
new SatelliteSession[] {
@@ -1228,12 +1238,14 @@
mSatelliteIncomingDatagram1.datagramSizeBytes = 1 * 1024;
mSatelliteIncomingDatagram1.datagramTransferTimeMillis = 3 * 1000;
mSatelliteIncomingDatagram1.isDemoMode = false;
+ mSatelliteIncomingDatagram1.carrierId = 1;
mSatelliteIncomingDatagram2 = new SatelliteIncomingDatagram();
mSatelliteIncomingDatagram2.resultCode = SatelliteProtoEnums.SATELLITE_RESULT_MODEM_ERROR;
mSatelliteIncomingDatagram2.datagramSizeBytes = 512;
mSatelliteIncomingDatagram2.datagramTransferTimeMillis = 1 * 1000;
mSatelliteIncomingDatagram2.isDemoMode = true;
+ mSatelliteIncomingDatagram2.carrierId = 10;
mSatelliteIncomingDatagrams =
new SatelliteIncomingDatagram[] {
@@ -1247,6 +1259,7 @@
mSatelliteOutgoingDatagram1.datagramSizeBytes = 1 * 1024;
mSatelliteOutgoingDatagram1.datagramTransferTimeMillis = 3 * 1000;
mSatelliteOutgoingDatagram1.isDemoMode = false;
+ mSatelliteOutgoingDatagram1.carrierId = 1;
mSatelliteOutgoingDatagram2 = new SatelliteOutgoingDatagram();
mSatelliteOutgoingDatagram2.datagramType =
@@ -1255,6 +1268,7 @@
mSatelliteOutgoingDatagram2.datagramSizeBytes = 512;
mSatelliteOutgoingDatagram2.datagramTransferTimeMillis = 1 * 1000;
mSatelliteOutgoingDatagram2.isDemoMode = true;
+ mSatelliteOutgoingDatagram2.carrierId = 10;
mSatelliteOutgoingDatagrams =
new SatelliteOutgoingDatagram[] {
@@ -1266,6 +1280,7 @@
mSatelliteProvision1.provisioningTimeSec = 3 * 60;
mSatelliteProvision1.isProvisionRequest = true;
mSatelliteProvision1.isCanceled = false;
+ mSatelliteProvision1.carrierId = 1;
mSatelliteProvision2 = new SatelliteProvision();
mSatelliteProvision2.resultCode =
@@ -1273,6 +1288,7 @@
mSatelliteProvision2.provisioningTimeSec = 0;
mSatelliteProvision2.isProvisionRequest = false;
mSatelliteProvision2.isCanceled = true;
+ mSatelliteProvision2.carrierId = 10;
mSatelliteProvisions =
new SatelliteProvision[] {
@@ -1359,6 +1375,7 @@
mCarrierRoamingSatelliteControllerStats1.satelliteSessionGapMinSec = 2;
mCarrierRoamingSatelliteControllerStats1.satelliteSessionGapAvgSec = 3;
mCarrierRoamingSatelliteControllerStats1.satelliteSessionGapMaxSec = 4;
+ mCarrierRoamingSatelliteControllerStats1.carrierId = 1;
mCarrierRoamingSatelliteControllerStats2 = new CarrierRoamingSatelliteControllerStats();
mCarrierRoamingSatelliteControllerStats2.configDataSource =
@@ -1369,6 +1386,7 @@
mCarrierRoamingSatelliteControllerStats2.satelliteSessionGapMinSec = 5;
mCarrierRoamingSatelliteControllerStats2.satelliteSessionGapAvgSec = 10;
mCarrierRoamingSatelliteControllerStats2.satelliteSessionGapMaxSec = 15;
+ mCarrierRoamingSatelliteControllerStats2.carrierId = 10;
// CarrierRoamingSatelliteController has one data point
mCarrierRoamingSatelliteControllerStats = new CarrierRoamingSatelliteControllerStats[] {
@@ -1421,6 +1439,7 @@
mSatelliteAccessController1.resultCode = SATELLITE_RESULT_SUCCESS;
mSatelliteAccessController1.countryCodes = new String[]{"AB", "CD"};
mSatelliteAccessController1.configDataSource = CONFIG_DATA_SOURCE_DEVICE_CONFIG;
+ mSatelliteAccessController1.carrierId = 1;
mSatelliteAccessController2 = new SatelliteAccessController();
mSatelliteAccessController2.accessControlType = ACCESS_CONTROL_TYPE_CURRENT_LOCATION;
@@ -1432,6 +1451,7 @@
mSatelliteAccessController2.resultCode = SATELLITE_RESULT_SUCCESS;
mSatelliteAccessController2.countryCodes = new String[]{"EF", "GH"};
mSatelliteAccessController2.configDataSource = CONFIG_DATA_SOURCE_CONFIG_UPDATER;
+ mSatelliteAccessController2.carrierId = 10;
mSatelliteAccessControllers = new SatelliteAccessController[]{
mSatelliteAccessController1, mSatelliteAccessController2
@@ -4428,6 +4448,8 @@
expected.countOfDatagramTypeKeepAliveFail =
mSatelliteController1.countOfDatagramTypeKeepAliveFail
+ mSatelliteController2.countOfDatagramTypeKeepAliveFail;
+ expected.isProvisioned = mSatelliteController2.isProvisioned;
+ expected.carrierId = mSatelliteController2.carrierId;
// Service state and service switch should be added successfully
verifyCurrentStateSavedToFileOnce();
@@ -4980,6 +5002,7 @@
mCarrierRoamingSatelliteControllerStats2.satelliteSessionGapAvgSec;
expected.satelliteSessionGapMaxSec =
mCarrierRoamingSatelliteControllerStats2.satelliteSessionGapMaxSec;
+ expected.carrierId = mCarrierRoamingSatelliteControllerStats2.carrierId;
verifyCurrentStateSavedToFileOnce();
CarrierRoamingSatelliteControllerStats[] output =
@@ -5843,6 +5866,7 @@
assertEquals(tested[0].countOfSatelliteAccessCheckFail,
expectedStats.countOfSatelliteAccessCheckFail);
assertEquals(tested[0].isProvisioned, expectedStats.isProvisioned);
+ assertEquals(tested[0].carrierId, expectedStats.carrierId);
}
private static void assertHasStatsAndCount(
@@ -5869,7 +5893,14 @@
== expectedStats.countOfIncomingDatagramSuccess
&& stats.countOfIncomingDatagramFailed
== expectedStats.countOfIncomingDatagramFailed
- && stats.isDemoMode == expectedStats.isDemoMode) {
+ && stats.isDemoMode == expectedStats.isDemoMode
+ && stats.carrierId == expectedStats.carrierId
+ && stats.countOfSatelliteNotificationDisplayed
+ == expectedStats.countOfSatelliteNotificationDisplayed
+ && stats.countOfAutoExitDueToScreenOff
+ == expectedStats.countOfAutoExitDueToScreenOff
+ && stats.countOfAutoExitDueToTnNetwork
+ == expectedStats.countOfAutoExitDueToTnNetwork) {
actualCount = stats.count;
}
}
@@ -5886,7 +5917,8 @@
&& stats.datagramSizeBytes == expectedStats.datagramSizeBytes
&& stats.datagramTransferTimeMillis
== expectedStats.datagramTransferTimeMillis
- && stats.isDemoMode == expectedStats.isDemoMode) {
+ && stats.isDemoMode == expectedStats.isDemoMode
+ && stats.carrierId == expectedStats.carrierId) {
actualCount++;
}
}
@@ -5904,7 +5936,8 @@
&& stats.datagramSizeBytes == expectedStats.datagramSizeBytes
&& stats.datagramTransferTimeMillis
== expectedStats.datagramTransferTimeMillis
- && stats.isDemoMode == expectedStats.isDemoMode) {
+ && stats.isDemoMode == expectedStats.isDemoMode
+ && stats.carrierId == expectedStats.carrierId) {
actualCount++;
}
}
@@ -5920,7 +5953,8 @@
if (stats.resultCode == expectedStats.resultCode
&& stats.provisioningTimeSec == expectedStats.provisioningTimeSec
&& stats.isProvisionRequest == expectedStats.isProvisionRequest
- && stats.isCanceled == expectedStats.isCanceled) {
+ && stats.isCanceled == expectedStats.isCanceled
+ && stats.carrierId == expectedStats.carrierId) {
actualCount++;
}
}
@@ -5965,7 +5999,8 @@
&& stats.isEmergency == expectedStats.isEmergency
&& stats.resultCode == expectedStats.resultCode
&& Arrays.equals(stats.countryCodes, expectedStats.countryCodes)
- && stats.configDataSource == expectedStats.configDataSource) {
+ && stats.configDataSource == expectedStats.configDataSource
+ && stats.carrierId == expectedStats.carrierId) {
actualCount++;
}
}
@@ -6225,6 +6260,8 @@
assertEquals(tested[0].satelliteSessionGapMinSec, expectedStats.satelliteSessionGapMinSec);
assertEquals(tested[0].satelliteSessionGapAvgSec, expectedStats.satelliteSessionGapAvgSec);
assertEquals(tested[0].satelliteSessionGapMaxSec, expectedStats.satelliteSessionGapMaxSec);
+ assertEquals(tested[0].carrierId, expectedStats.carrierId);
+
}
private static void assertHasStatsAndCount(
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 e51cdc7..21ee476 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java
@@ -16,11 +16,12 @@
package com.android.internal.telephony.satellite;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_MODEM_TIMEOUT;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
-import static com.android.internal.telephony.satellite.DatagramController.SATELLITE_ALIGN_TIMEOUT;
import static com.android.internal.telephony.SmsDispatchersController.PendingRequest;
+import static com.android.internal.telephony.satellite.DatagramController.SATELLITE_ALIGN_TIMEOUT;
import static com.google.common.truth.Truth.assertThat;
@@ -176,6 +177,7 @@
when(mMockDatagramController.isPollingInIdleState()).thenReturn(true);
when(mMockSatelliteController.getSatellitePhone()).thenReturn(mPhone);
when(mPhone.getSmsDispatchersController()).thenReturn(mMockSmsDispatchersController);
+ when(mMockSatelliteController.getSatelliteCarrierId()).thenReturn(UNKNOWN_CARRIER_ID);
mPendingSms = createPendingRequest();
}
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 947661b..bf1a8bd 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
@@ -16,6 +16,8 @@
package com.android.internal.telephony.satellite;
+import static android.telephony.TelephonyManager.UNKNOWN_CARRIER_ID;
+
import static com.android.internal.telephony.satellite.DatagramController.SATELLITE_ALIGN_TIMEOUT;
import static com.google.common.truth.Truth.assertThat;
@@ -144,6 +146,7 @@
when(mMockDatagramController.isPollingInIdleState()).thenReturn(true);
when(mMockDatagramController.needsWaitingForSatelliteConnected(
eq(SatelliteManager.DATAGRAM_TYPE_UNKNOWN))).thenReturn(false);
+ when(mMockSatelliteController.getSatelliteCarrierId()).thenReturn(UNKNOWN_CARRIER_ID);
processAllMessages();
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/DemoSimulatorTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/DemoSimulatorTest.java
index 319e39f..2b18468 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DemoSimulatorTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DemoSimulatorTest.java
@@ -119,7 +119,7 @@
moveToNotConnectedState();
verify(mISatelliteListener).onSatelliteModemStateChanged(
- SatelliteModemState.SATELLITE_MODEM_STATE_NOT_CONNECTED);
+ SatelliteModemState.SATELLITE_MODEM_STATE_OUT_OF_SERVICE);
ArgumentCaptor<NtnSignalStrength> ntnSignalStrength = ArgumentCaptor.forClass(
NtnSignalStrength.class);
verify(mISatelliteListener).onNtnSignalStrengthChanged(ntnSignalStrength.capture());
@@ -156,9 +156,9 @@
moveToConnectedState();
verify(mISatelliteListener).onSatelliteModemStateChanged(
- SatelliteModemState.SATELLITE_MODEM_STATE_NOT_CONNECTED);
+ SatelliteModemState.SATELLITE_MODEM_STATE_OUT_OF_SERVICE);
verify(mISatelliteListener).onSatelliteModemStateChanged(
- SatelliteModemState.SATELLITE_MODEM_STATE_CONNECTED);
+ SatelliteModemState.SATELLITE_MODEM_STATE_IN_SERVICE);
ArgumentCaptor<NtnSignalStrength> ntnSignalStrength = ArgumentCaptor.forClass(
NtnSignalStrength.class);
verify(mISatelliteListener, times(2))
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 a671e13..a9775c0 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
@@ -606,12 +606,16 @@
.when(mMockSessionMetricsStats).setSessionDurationSec(anyInt());
doReturn(mMockSessionMetricsStats)
.when(mMockSessionMetricsStats).setIsDemoMode(anyBoolean());
+ doReturn(mMockSessionMetricsStats)
+ .when(mMockSessionMetricsStats).setCarrierId(anyInt());
doNothing().when(mMockSessionMetricsStats).reportSessionMetrics();
doReturn(mMockProvisionMetricsStats).when(mMockProvisionMetricsStats)
.setResultCode(anyInt());
doReturn(mMockProvisionMetricsStats).when(mMockProvisionMetricsStats)
.setIsProvisionRequest(anyBoolean());
+ doReturn(mMockProvisionMetricsStats).when(mMockProvisionMetricsStats)
+ .setCarrierId(anyInt());
doNothing().when(mMockProvisionMetricsStats).reportProvisionMetrics();
doNothing().when(mMockControllerMetricsStats).reportDeprovisionCount(anyInt());
when(mFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java
index 02d8967..95924dd 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteSessionControllerTest.java
@@ -27,8 +27,6 @@
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT;
-import static com.android.internal.telephony.satellite.SatelliteSessionController.EVENT_SCREEN_OFF_INACTIVITY_TIMER_TIMED_OUT;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -672,8 +670,8 @@
processAllMessages();
// SatelliteSessionController should move to CONNECTED state
- assertSuccessfulModemStateChangedCallback(
- mTestSatelliteModemStateCallback, SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ assertSuccessfulModemStateChangedCallback(mTestSatelliteModemStateCallback,
+ SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
assertEquals(STATE_CONNECTED, mTestSatelliteSessionController.getCurrentStateName());
assertTrue(mTestSatelliteSessionController.isNbIotInactivityTimerStarted());
verify(mMockDatagramController).onSatelliteModemStateChanged(
@@ -830,8 +828,8 @@
processAllMessages();
// SatelliteSessionController should move to CONNECTED state
- assertSuccessfulModemStateChangedCallback(
- mTestSatelliteModemStateCallback, SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ assertSuccessfulModemStateChangedCallback(mTestSatelliteModemStateCallback,
+ SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
assertEquals(STATE_CONNECTED, mTestSatelliteSessionController.getCurrentStateName());
verify(mMockDatagramController).onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
@@ -856,8 +854,8 @@
processAllMessages();
// SatelliteSessionController should move to CONNECTED state
- assertSuccessfulModemStateChangedCallback(
- mTestSatelliteModemStateCallback, SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ assertSuccessfulModemStateChangedCallback(mTestSatelliteModemStateCallback,
+ SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
assertEquals(STATE_CONNECTED, mTestSatelliteSessionController.getCurrentStateName());
verify(mMockDatagramController).onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
@@ -892,8 +890,8 @@
processAllMessages();
// SatelliteSessionController should move to CONNECTED state
- assertSuccessfulModemStateChangedCallback(
- mTestSatelliteModemStateCallback, SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ assertSuccessfulModemStateChangedCallback(mTestSatelliteModemStateCallback,
+ SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
assertEquals(STATE_CONNECTED, mTestSatelliteSessionController.getCurrentStateName());
// Wait for timeout
@@ -1338,8 +1336,8 @@
processAllMessages();
// SatelliteSessionController should move to CONNECTED state
- assertSuccessfulModemStateChangedCallback(
- mTestSatelliteModemStateCallback, SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
+ assertSuccessfulModemStateChangedCallback(mTestSatelliteModemStateCallback,
+ SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
assertEquals(STATE_CONNECTED, mTestSatelliteSessionController.getCurrentStateName());
verify(mMockDatagramController).onSatelliteModemStateChanged(
SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
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 5c1993f..a2b42af 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccPortTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccPortTest.java
@@ -29,7 +29,6 @@
import static org.mockito.Mockito.verify;
import android.os.Binder;
-import android.platform.test.flag.junit.SetFlagsRule;
import android.telephony.TelephonyManager;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -38,11 +37,9 @@
import com.android.internal.telephony.IccLogicalChannelRequest;
import com.android.internal.telephony.TelephonyTest;
-import com.android.internal.telephony.flags.Flags;
import org.junit.After;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -61,13 +58,9 @@
private int mPhoneId = 0;
- @Rule
- public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
-
@Before
public void setUp() throws Exception {
super.setUp(getClass().getSimpleName());
- mSetFlagsRule.enableFlags(Flags.FLAG_CLEANUP_OPEN_LOGICAL_CHANNEL_RECORD_ON_DISPOSE);
mUiccCard = mock(UiccCard.class);
mIccCardStatus = mock(IccCardStatus.class);
/* initially there are no application available */