summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author Hakjun Choi <hakjunc@google.com> 2025-03-20 01:08:07 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-20 01:08:07 -0700
commit6c0cfefa8926603774761f8df53db6cc5eba6c58 (patch)
tree91ed28f39b73b80faf7219beb2e5418114d94af9 /src
parentf45e22b4dafc00323664bd87345c60e626605199 (diff)
parent4054aae04feaf1a61851e609f4404757db0eda5f (diff)
Merge "Add is_nb_iot_ntn field into related atoms" into main
Diffstat (limited to 'src')
-rw-r--r--src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java10
-rw-r--r--src/java/com/android/internal/telephony/metrics/MetricsCollector.java18
-rw-r--r--src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java8
-rw-r--r--src/java/com/android/internal/telephony/metrics/SatelliteStats.java42
-rw-r--r--src/java/com/android/internal/telephony/metrics/ServiceStateStats.java10
-rw-r--r--src/java/com/android/internal/telephony/metrics/SmsStats.java14
-rw-r--r--src/java/com/android/internal/telephony/satellite/SatelliteController.java4
-rw-r--r--src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java17
-rw-r--r--src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java6
-rw-r--r--src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java8
10 files changed, 113 insertions, 24 deletions
diff --git a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
index 175f5e4a5d..f3a111caca 100644
--- a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
+++ b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
@@ -310,6 +310,7 @@ public class DataCallSessionStats {
copy.isNtn = call.isNtn;
copy.isSatelliteTransport = call.isSatelliteTransport;
copy.isProvisioningProfile = call.isProvisioningProfile;
+ copy.isNbIotNtn = call.isNbIotNtn;
return copy;
}
@@ -337,8 +338,13 @@ public class DataCallSessionStats {
proto.handoverFailureRat = new int[0];
proto.isNonDds = false;
proto.isIwlanCrossSim = false;
- proto.isNtn = mSatelliteController != null
- ? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false;
+ if (mSatelliteController != null) {
+ proto.isNtn = mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone);
+ proto.isNbIotNtn = mSatelliteController.isInCarrierRoamingNbIotNtn(mPhone);
+ } else {
+ proto.isNtn = false;
+ proto.isNbIotNtn = false;
+ }
proto.isSatelliteTransport = isSatellite;
proto.isProvisioningProfile = getIsProvisioningProfile();
return proto;
diff --git a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
index 7863b25405..31f4738e01 100644
--- a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
+++ b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
@@ -1086,7 +1086,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
state.overrideVoiceService,
state.isDataEnabled,
state.isIwlanCrossSim,
- state.isNtn);
+ state.isNtn,
+ state.isNbIotNtn);
}
private static StatsEvent buildStatsEvent(VoiceCallRatUsage usage) {
@@ -1172,7 +1173,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
sms.count,
sms.isManagedProfile,
sms.isNtn,
- sms.isEmergency);
+ sms.isEmergency,
+ sms.isNbIotNtn);
}
private static StatsEvent buildStatsEvent(OutgoingSms sms) {
@@ -1198,7 +1200,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
sms.isManagedProfile,
sms.isEmergency,
sms.isNtn,
- sms.isMtSmsPolling);
+ sms.isMtSmsPolling,
+ sms.isNbIotNtn);
}
private static StatsEvent buildStatsEvent(DataCallSession dataCallSession) {
@@ -1230,7 +1233,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
dataCallSession.isIwlanCrossSim,
dataCallSession.isNtn,
dataCallSession.isSatelliteTransport,
- dataCallSession.isProvisioningProfile);
+ dataCallSession.isProvisioningProfile,
+ dataCallSession.isNbIotNtn);
}
private static StatsEvent buildStatsEvent(ImsRegistrationStats stats) {
@@ -1603,7 +1607,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
stats.supportedSatelliteServices,
stats.serviceDataPolicy,
stats.satelliteDataConsumedBytes,
- stats.isMultiSim);
+ stats.isMultiSim,
+ stats.isNbIotNtn);
}
private static StatsEvent buildStatsEvent(CarrierRoamingSatelliteControllerStats stats) {
@@ -1619,7 +1624,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
stats.carrierId,
stats.isDeviceEntitled,
stats.isMultiSim,
- stats.countOfSatelliteSessions);
+ stats.countOfSatelliteSessions,
+ stats.isNbIotNtn);
}
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 4346da4b79..9408ffa899 100644
--- a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
+++ b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
@@ -899,6 +899,7 @@ public class PersistAtomsStorage {
existingStats.isDeviceEntitled = stats.isDeviceEntitled;
existingStats.isMultiSim = stats.isMultiSim;
existingStats.countOfSatelliteSessions += stats.countOfSatelliteSessions;
+ existingStats.isNbIotNtn = stats.isNbIotNtn;
} else {
mAtoms.carrierRoamingSatelliteControllerStats = insertAtRandomPlace(
mAtoms.carrierRoamingSatelliteControllerStats, stats, mMaxNumSatelliteStats);
@@ -2011,7 +2012,8 @@ public class PersistAtomsStorage {
&& state.overrideVoiceService == key.overrideVoiceService
&& state.isDataEnabled == key.isDataEnabled
&& state.isIwlanCrossSim == key.isIwlanCrossSim
- && state.isNtn == key.isNtn) {
+ && state.isNtn == key.isNtn
+ && state.isNbIotNtn == key.isNbIotNtn) {
return state;
}
}
@@ -2442,9 +2444,7 @@ public class PersistAtomsStorage {
CarrierRoamingSatelliteControllerStats key) {
for (CarrierRoamingSatelliteControllerStats stats :
mAtoms.carrierRoamingSatelliteControllerStats) {
- if (stats.carrierId == key.carrierId
- && stats.configDataSource == key.configDataSource
- && stats.isDeviceEntitled == key.isDeviceEntitled) {
+ if (stats.carrierId == key.carrierId) {
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 a99613acdc..2ccd8b5259 100644
--- a/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
+++ b/src/java/com/android/internal/telephony/metrics/SatelliteStats.java
@@ -1886,6 +1886,7 @@ public class SatelliteStats {
private final int mServiceDataPolicy;
private final long mSatelliteDataConsumedBytes;
private final boolean mIsMultiSim;
+ private final boolean mIsNbIotNtn;
private CarrierRoamingSatelliteSessionParams(Builder builder) {
this.mCarrierId = builder.mCarrierId;
@@ -1910,6 +1911,7 @@ public class SatelliteStats {
this.mSatelliteDataConsumedBytes =
builder.mSatelliteDataConsumedBytes;
this.mIsMultiSim = builder.mIsMultiSim;
+ this.mIsNbIotNtn = builder.mIsNbIotNtn;
}
public int getCarrierId() {
@@ -1992,6 +1994,10 @@ public class SatelliteStats {
return mIsMultiSim;
}
+ public boolean isNbIotNtn() {
+ return mIsNbIotNtn;
+ }
+
/**
* A builder class to create {@link CarrierRoamingSatelliteSessionParams} data structure
* class
@@ -2018,6 +2024,7 @@ public class SatelliteStats {
SatelliteConstants.SATELLITE_ENTITLEMENT_SERVICE_POLICY_UNKNOWN;
long mSatelliteDataConsumedBytes = 0L;
private boolean mIsMultiSim = false;
+ private boolean mIsNbIotNtn = false;
/**
* Sets carrierId value of {@link CarrierRoamingSatelliteSession} atom
@@ -2212,6 +2219,15 @@ public class SatelliteStats {
return new SatelliteStats()
.new CarrierRoamingSatelliteSessionParams(Builder.this);
}
+
+ /**
+ * Sets isNbIotNtn value of {@link CarrierRoamingSatelliteSession} atom, which indicates
+ * whether satellite service tech is NB-IoT-NTN or not
+ */
+ public Builder setIsNbIotNtn(boolean isNbIotNtn) {
+ this.mIsNbIotNtn = isNbIotNtn;
+ return this;
+ }
}
@Override
@@ -2238,6 +2254,7 @@ public class SatelliteStats {
+ ", serviceDataPolicy=" + mServiceDataPolicy
+ ", SatelliteDataConsumedBytes=" + mSatelliteDataConsumedBytes
+ ", isMultiSim=" + mIsMultiSim
+ + ", isNbIotNtn=" + mIsNbIotNtn
+ ")";
}
}
@@ -2259,6 +2276,7 @@ public class SatelliteStats {
private static boolean sIsDeviceEntitled;
private static boolean sIsMultiSim;
private final int mCountOfSatelliteSessions;
+ private static boolean sIsNbIotNtn;
private CarrierRoamingSatelliteControllerStatsParams(Builder builder) {
this.mConfigDataSource = builder.mConfigDataSource;
@@ -2296,6 +2314,11 @@ public class SatelliteStats {
}
this.mCountOfSatelliteSessions = builder.mCountOfSatelliteSessions;
+
+ // isNbIotNtn value should be updated only when it is meaningful.
+ if (builder.mIsNbIotNtn.isPresent()) {
+ sIsNbIotNtn = builder.mIsNbIotNtn.get();
+ }
}
public int getConfigDataSource() {
@@ -2342,6 +2365,10 @@ public class SatelliteStats {
return mCountOfSatelliteSessions;
}
+ public boolean isNbIotNtn() {
+ return sIsNbIotNtn;
+ }
+
/**
* A builder class to create {@link CarrierRoamingSatelliteControllerStatsParams}
* data structure class
@@ -2358,6 +2385,7 @@ public class SatelliteStats {
private Optional<Boolean> mIsDeviceEntitled = Optional.empty();
private Optional<Boolean> mIsMultiSim = Optional.empty();
private int mCountOfSatelliteSessions = 0;
+ private Optional<Boolean> mIsNbIotNtn = Optional.empty();
/**
* Sets configDataSource value of {@link CarrierRoamingSatelliteControllerStats} atom
@@ -2452,6 +2480,12 @@ public class SatelliteStats {
return this;
}
+ /** Sets whether the device is in NB-NoT-NTN state or not. */
+ public Builder setIsNbIotNtn(boolean isNbIotNtn) {
+ this.mIsNbIotNtn = Optional.of(isNbIotNtn);
+ return this;
+ }
+
/**
* Returns CarrierRoamingSatelliteControllerStatsParams, which contains whole component
* of {@link CarrierRoamingSatelliteControllerStats} atom
@@ -2481,7 +2515,8 @@ public class SatelliteStats {
&& sCarrierId == that.getCarrierId()
&& sIsDeviceEntitled == that.isDeviceEntitled()
&& sIsMultiSim == that.isMultiSim()
- && mCountOfSatelliteSessions == that.getCountOfSatelliteSessions();
+ && mCountOfSatelliteSessions == that.getCountOfSatelliteSessions()
+ && sIsNbIotNtn == that.isNbIotNtn();
}
@Override
@@ -2490,7 +2525,7 @@ public class SatelliteStats {
mCountOfSatelliteConfigUpdateRequest, mCountOfSatelliteNotificationDisplayed,
sSatelliteSessionGapMinSec, sSatelliteSessionGapAvgSec,
sSatelliteSessionGapMaxSec, sCarrierId, sIsDeviceEntitled, sIsMultiSim,
- mCountOfSatelliteSessions);
+ mCountOfSatelliteSessions, sIsNbIotNtn);
}
@Override
@@ -2510,6 +2545,7 @@ public class SatelliteStats {
+ ", isDeviceEntitled=" + sIsDeviceEntitled
+ ", isMultiSim=" + sIsMultiSim
+ ", countOfSatelliteSession=" + mCountOfSatelliteSessions
+ + ", isNbIotNtn=" + sIsNbIotNtn
+ ")";
}
}
@@ -3169,6 +3205,7 @@ public class SatelliteStats {
proto.serviceDataPolicy = param.mServiceDataPolicy;
proto.satelliteDataConsumedBytes = param.mSatelliteDataConsumedBytes;
proto.isMultiSim = param.isMultiSim();
+ proto.isNbIotNtn = param.isNbIotNtn();
if (DBG) logd("onCarrierRoamingSatelliteSessionMetrics: " + param);
mAtomsStorage.addCarrierRoamingSatelliteSessionStats(proto);
}
@@ -3188,6 +3225,7 @@ public class SatelliteStats {
proto.isDeviceEntitled = param.isDeviceEntitled();
proto.isMultiSim = param.isMultiSim();
proto.countOfSatelliteSessions = param.getCountOfSatelliteSessions();
+ proto.isNbIotNtn = param.isNbIotNtn();
if (DBG) logd("onCarrierRoamingSatelliteControllerStatsMetrics: " + param);
mAtomsStorage.addCarrierRoamingSatelliteControllerStats(proto);
}
diff --git a/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java b/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java
index 1a909a0619..1d4c31693b 100644
--- a/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java
+++ b/src/java/com/android/internal/telephony/metrics/ServiceStateStats.java
@@ -141,8 +141,13 @@ public class ServiceStateStats extends DataNetworkControllerCallback {
newState.overrideVoiceService = mOverrideVoiceService.get();
newState.isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled();
newState.isIwlanCrossSim = isCrossSimCallingRegistered(mPhone);
- newState.isNtn = satelliteController != null
- && satelliteController.isInSatelliteModeForCarrierRoaming(mPhone);
+ if (satelliteController != null) {
+ newState.isNtn = satelliteController.isInSatelliteModeForCarrierRoaming(mPhone);
+ newState.isNbIotNtn = satelliteController.isInCarrierRoamingNbIotNtn(mPhone);
+ } else {
+ newState.isNtn = false;
+ newState.isNbIotNtn = false;
+ }
TimestampedServiceState prevState =
mLastState.getAndSet(new TimestampedServiceState(newState, now));
addServiceStateAndSwitch(
@@ -317,6 +322,7 @@ public class ServiceStateStats extends DataNetworkControllerCallback {
copy.isDataEnabled = state.isDataEnabled;
copy.isIwlanCrossSim = state.isIwlanCrossSim;
copy.isNtn = state.isNtn;
+ copy.isNbIotNtn = state.isNbIotNtn;
return copy;
}
diff --git a/src/java/com/android/internal/telephony/metrics/SmsStats.java b/src/java/com/android/internal/telephony/metrics/SmsStats.java
index d8b519c100..fdbb20b25f 100644
--- a/src/java/com/android/internal/telephony/metrics/SmsStats.java
+++ b/src/java/com/android/internal/telephony/metrics/SmsStats.java
@@ -60,6 +60,7 @@ import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.nano.PersistAtomsProto.IncomingSms;
import com.android.internal.telephony.nano.PersistAtomsProto.OutgoingShortCodeSms;
import com.android.internal.telephony.nano.PersistAtomsProto.OutgoingSms;
+import com.android.internal.telephony.satellite.SatelliteController;
import com.android.internal.telephony.satellite.metrics.CarrierRoamingSatelliteSessionStats;
import com.android.telephony.Rlog;
@@ -242,6 +243,7 @@ public class SmsStats {
proto.isManagedProfile = mPhone.isManagedProfile();
proto.isNtn = isNonTerrestrialNetwork();
proto.isEmergency = isEmergency;
+ proto.isNbIotNtn = isNbIotNtn(mPhone);
return proto;
}
@@ -272,6 +274,7 @@ public class SmsStats {
proto.isEmergency = isEmergency;
proto.isNtn = isNonTerrestrialNetwork();
proto.isMtSmsPolling = isMtSmsPolling;
+ proto.isNbIotNtn = isNbIotNtn(mPhone);
return proto;
}
@@ -344,8 +347,8 @@ public class SmsStats {
*/
static int getSmsHashCode(OutgoingSms sms) {
return Objects.hash(sms.smsFormat, sms.smsTech, sms.rat, sms.sendResult, sms.errorCode,
- sms.isRoaming, sms.isFromDefaultApp, sms.simSlotIndex, sms.isMultiSim,
- sms.isEsim, sms.carrierId);
+ sms.isRoaming, sms.isFromDefaultApp, sms.simSlotIndex, sms.isMultiSim, sms.isEsim,
+ sms.carrierId, sms.isEmergency, sms.isNtn, sms.isMtSmsPolling, sms.isNbIotNtn);
}
/**
@@ -355,7 +358,8 @@ public class SmsStats {
static int getSmsHashCode(IncomingSms sms) {
return Objects.hash(sms.smsFormat, sms.smsTech, sms.rat, sms.smsType,
sms.totalParts, sms.receivedParts, sms.blocked, sms.error,
- sms.isRoaming, sms.simSlotIndex, sms.isMultiSim, sms.isEsim, sms.carrierId);
+ sms.isRoaming, sms.simSlotIndex, sms.isMultiSim, sms.isEsim, sms.carrierId,
+ sms.isNtn, sms.isNbIotNtn);
}
private int getPhoneId() {
@@ -419,6 +423,10 @@ public class SmsStats {
}
}
+ private boolean isNbIotNtn(Phone phone) {
+ return SatelliteController.getInstance().isInCarrierRoamingNbIotNtn(phone);
+ }
+
private void loge(String format, Object... args) {
Rlog.e(TAG, "[" + mPhone.getPhoneId() + "]" + String.format(format, args));
}
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index 1e69b2fb52..49eb3d9f29 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -4210,7 +4210,7 @@ public class SatelliteController extends Handler {
* @return {@code true} if phone is in carrier roaming nb iot ntn mode,
* else {@return false}
*/
- private boolean isInCarrierRoamingNbIotNtn(@Nullable Phone phone) {
+ public boolean isInCarrierRoamingNbIotNtn(@Nullable Phone phone) {
if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
plogd("isInCarrierRoamingNbIotNtn: carrier roaming nb iot ntn "
+ "feature flag is disabled");
@@ -6394,7 +6394,7 @@ public class SatelliteController extends Handler {
// Log satellite session end
CarrierRoamingSatelliteSessionStats sessionStats =
mCarrierRoamingSatelliteSessionStatsMap.get(subId);
- sessionStats.onSessionEnd();
+ sessionStats.onSessionEnd(subId);
mCarrierRoamingSatelliteSessionStatsMap.remove(subId);
mCarrierRoamingSatelliteControllerStats.onSessionEnd(subId);
}
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java
index 318e8cf65e..3afaf9f654 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java
@@ -720,6 +720,23 @@ public class SatelliteServiceUtils {
return null;
}
+ /** Determines whether the subscription is in carrier roaming NB-IoT NTN or not. */
+ public static boolean isNbIotNtn(int subId) {
+ Phone phone = PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
+ if (phone == null) {
+ logd("isNbIotNtn(): phone is null");
+ return false;
+ }
+
+ SatelliteController satelliteController = SatelliteController.getInstance();
+ if (satelliteController == null) {
+ logd("isNbIotNtn(): satelliteController is null");
+ return false;
+ }
+
+ return satelliteController.isInCarrierRoamingNbIotNtn(phone);
+ }
+
private static void logd(@NonNull String log) {
Rlog.d(TAG, log);
}
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 307ee62f77..0fbebf7217 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteControllerStats.java
@@ -27,6 +27,7 @@ import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.metrics.SatelliteStats;
import com.android.internal.telephony.satellite.SatelliteConstants;
+import com.android.internal.telephony.satellite.SatelliteServiceUtils;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import java.util.ArrayList;
@@ -74,6 +75,7 @@ public class CarrierRoamingSatelliteControllerStats {
.setConfigDataSource(configDataSource)
.setCarrierId(getCarrierIdFromSubscription(subId))
.setIsMultiSim(isMultiSim())
+ .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId))
.build());
}
@@ -84,6 +86,7 @@ public class CarrierRoamingSatelliteControllerStats {
.setCountOfEntitlementStatusQueryRequest(ADD_COUNT)
.setCarrierId(getCarrierIdFromSubscription(subId))
.setIsMultiSim(isMultiSim())
+ .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId))
.build());
}
@@ -103,6 +106,7 @@ public class CarrierRoamingSatelliteControllerStats {
.setCountOfSatelliteNotificationDisplayed(ADD_COUNT)
.setCarrierId(getCarrierIdFromSubscription(subId))
.setIsMultiSim(isMultiSim())
+ .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId))
.build());
}
@@ -122,6 +126,7 @@ public class CarrierRoamingSatelliteControllerStats {
.setIsDeviceEntitled(isDeviceEntitled)
.setCarrierId(getCarrierIdFromSubscription(subId))
.setIsMultiSim(isMultiSim())
+ .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId))
.build());
}
@@ -162,6 +167,7 @@ public class CarrierRoamingSatelliteControllerStats {
.setSatelliteSessionGapMaxSec(satelliteSessionGapMaxSec)
.setCarrierId(getCarrierIdFromSubscription(subId))
.setIsMultiSim(isMultiSim())
+ .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId))
.build());
}
diff --git a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java
index 6423d3ea7b..7958769676 100644
--- a/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java
+++ b/src/java/com/android/internal/telephony/satellite/metrics/CarrierRoamingSatelliteSessionStats.java
@@ -37,6 +37,7 @@ import com.android.internal.telephony.MccTable;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.metrics.SatelliteStats;
import com.android.internal.telephony.satellite.SatelliteConstants;
+import com.android.internal.telephony.satellite.SatelliteServiceUtils;
import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
@@ -138,7 +139,7 @@ public class CarrierRoamingSatelliteSessionStats {
}
/** Log carrier roaming satellite session end */
- public void onSessionEnd() {
+ public void onSessionEnd(int subId) {
onConnectionEnd();
long dataUsageOnSessionEndBytes = getDataUsage();
logd("update data consumed: " + dataUsageOnSessionEndBytes);
@@ -148,7 +149,7 @@ public class CarrierRoamingSatelliteSessionStats {
dataUsageOnSessionEndBytes - mDataUsageOnSessionStartBytes;
}
logd("satellite data consumed at session: " + mSatelliteDataConsumedBytes);
- reportMetrics();
+ reportMetrics(subId);
mIsNtnRoamingInHomeCountry = false;
mSupportedSatelliteServices = new int[0];
mServiceDataPolicy = SatelliteConstants.SATELLITE_ENTITLEMENT_SERVICE_POLICY_UNKNOWN;
@@ -223,7 +224,7 @@ public class CarrierRoamingSatelliteSessionStats {
}
}
- private void reportMetrics() {
+ private void reportMetrics(int subId) {
int totalSatelliteModeTimeSec = mSessionStartTimeSec > 0
? getElapsedRealtimeInSec() - mSessionStartTimeSec : 0;
int numberOfSatelliteConnections = getNumberOfSatelliteConnections();
@@ -261,6 +262,7 @@ public class CarrierRoamingSatelliteSessionStats {
.setServiceDataPolicy(mServiceDataPolicy)
.setSatelliteDataConsumedBytes(mSatelliteDataConsumedBytes)
.setIsMultiSim(isMultiSim)
+ .setIsNbIotNtn(SatelliteServiceUtils.isNbIotNtn(subId))
.build();
SatelliteStats.getInstance().onCarrierRoamingSatelliteSessionMetrics(params);
logd("Supported satellite services: " + Arrays.toString(mSupportedSatelliteServices));