Loading proto/src/persist_atoms.proto +3 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,7 @@ message VoiceCallSession { optional bool is_iwlan_cross_sim_at_end = 38; optional bool is_iwlan_cross_sim_at_connected = 39; optional bool vonr_enabled = 40; optional bool is_ntn = 41; // Internal use only optional int64 setup_begin_millis = 10001; Loading Loading @@ -373,6 +374,7 @@ message DataCallSession { repeated int32 handover_failure_rat = 21; optional bool is_non_dds = 22; optional bool is_iwlan_cross_sim = 23; optional bool is_ntn = 24; } message CellularServiceState { Loading @@ -391,6 +393,7 @@ message CellularServiceState { optional bool override_voice_service = 13; optional bool isDataEnabled = 14; optional bool is_iwlan_cross_sim = 15; optional bool is_ntn = 16; // Internal use only optional int64 last_used_millis = 10001; Loading src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java +6 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.ServiceStateTracker; import com.android.internal.telephony.data.DataNetwork; import com.android.internal.telephony.nano.PersistAtomsProto.DataCallSession; import com.android.internal.telephony.satellite.SatelliteController; import com.android.internal.telephony.subscription.SubscriptionInfoInternal; import com.android.internal.telephony.subscription.SubscriptionManagerService; import com.android.telephony.Rlog; Loading @@ -64,10 +65,12 @@ public class DataCallSessionStats { public static final int SIZE_LIMIT_HANDOVER_FAILURES = 15; private final DefaultNetworkMonitor mDefaultNetworkMonitor; private final SatelliteController mSatelliteController; public DataCallSessionStats(Phone phone) { mPhone = phone; mDefaultNetworkMonitor = PhoneFactory.getMetricsCollector().getDefaultNetworkMonitor(); mSatelliteController = SatelliteController.getInstance(); } private boolean isSystemDefaultNetworkMobile() { Loading Loading @@ -303,6 +306,7 @@ public class DataCallSessionStats { call.handoverFailureRat.length); copy.isNonDds = call.isNonDds; copy.isIwlanCrossSim = call.isIwlanCrossSim; copy.isNtn = call.isNtn; return copy; } Loading @@ -329,6 +333,8 @@ public class DataCallSessionStats { proto.handoverFailureRat = new int[0]; proto.isNonDds = false; proto.isIwlanCrossSim = false; proto.isNtn = mSatelliteController != null ? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false; return proto; } Loading src/java/com/android/internal/telephony/metrics/MetricsCollector.java +6 −3 Original line number Diff line number Diff line Loading @@ -972,7 +972,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { state.foldState, state.overrideVoiceService, state.isDataEnabled, state.isIwlanCrossSim); state.isIwlanCrossSim, state.isNtn); } private static StatsEvent buildStatsEvent(VoiceCallRatUsage usage) { Loading Loading @@ -1030,7 +1031,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { session.isIwlanCrossSimAtStart, session.isIwlanCrossSimAtEnd, session.isIwlanCrossSimAtConnected, session.vonrEnabled); session.vonrEnabled, session.isNtn); } Loading Loading @@ -1107,7 +1109,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { dataCallSession.handoverFailureCauses, dataCallSession.handoverFailureRat, dataCallSession.isNonDds, dataCallSession.isIwlanCrossSim); dataCallSession.isIwlanCrossSim, dataCallSession.isNtn); } private static StatsEvent buildStatsEvent(ImsRegistrationStats stats) { Loading src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java +2 −1 Original line number Diff line number Diff line Loading @@ -1715,7 +1715,8 @@ public class PersistAtomsStorage { && state.foldState == key.foldState && state.overrideVoiceService == key.overrideVoiceService && state.isDataEnabled == key.isDataEnabled && state.isIwlanCrossSim == key.isIwlanCrossSim) { && state.isIwlanCrossSim == key.isIwlanCrossSim && state.isNtn == key.isNtn) { return state; } } Loading src/java/com/android/internal/telephony/metrics/ServiceStateStats.java +6 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import com.android.internal.telephony.data.DataNetworkController.DataNetworkCont import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.nano.PersistAtomsProto.CellularDataServiceSwitch; import com.android.internal.telephony.nano.PersistAtomsProto.CellularServiceState; import com.android.internal.telephony.satellite.SatelliteController; import com.android.telephony.Rlog; import java.util.Set; Loading @@ -61,12 +62,14 @@ public class ServiceStateStats extends DataNetworkControllerCallback { private final PersistAtomsStorage mStorage; private final DeviceStateHelper mDeviceStateHelper; private boolean mExistAnyConnectedInternetPdn; private final SatelliteController mSatelliteController; public ServiceStateStats(Phone phone) { super(Runnable::run); mPhone = phone; mStorage = PhoneFactory.getMetricsCollector().getAtomsStorage(); mDeviceStateHelper = PhoneFactory.getMetricsCollector().getDeviceStateHelper(); mSatelliteController = SatelliteController.getInstance(); } /** Finalizes the durations of the current service state segment. */ Loading Loading @@ -135,6 +138,8 @@ public class ServiceStateStats extends DataNetworkControllerCallback { newState.overrideVoiceService = mOverrideVoiceService.get(); newState.isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled(); newState.isIwlanCrossSim = isCrossSimCallingRegistered(mPhone); newState.isNtn = mSatelliteController != null ? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false; TimestampedServiceState prevState = mLastState.getAndSet(new TimestampedServiceState(newState, now)); addServiceStateAndSwitch( Loading Loading @@ -306,6 +311,7 @@ public class ServiceStateStats extends DataNetworkControllerCallback { copy.overrideVoiceService = state.overrideVoiceService; copy.isDataEnabled = state.isDataEnabled; copy.isIwlanCrossSim = state.isIwlanCrossSim; copy.isNtn = state.isNtn; return copy; } Loading Loading
proto/src/persist_atoms.proto +3 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,7 @@ message VoiceCallSession { optional bool is_iwlan_cross_sim_at_end = 38; optional bool is_iwlan_cross_sim_at_connected = 39; optional bool vonr_enabled = 40; optional bool is_ntn = 41; // Internal use only optional int64 setup_begin_millis = 10001; Loading Loading @@ -373,6 +374,7 @@ message DataCallSession { repeated int32 handover_failure_rat = 21; optional bool is_non_dds = 22; optional bool is_iwlan_cross_sim = 23; optional bool is_ntn = 24; } message CellularServiceState { Loading @@ -391,6 +393,7 @@ message CellularServiceState { optional bool override_voice_service = 13; optional bool isDataEnabled = 14; optional bool is_iwlan_cross_sim = 15; optional bool is_ntn = 16; // Internal use only optional int64 last_used_millis = 10001; Loading
src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java +6 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.ServiceStateTracker; import com.android.internal.telephony.data.DataNetwork; import com.android.internal.telephony.nano.PersistAtomsProto.DataCallSession; import com.android.internal.telephony.satellite.SatelliteController; import com.android.internal.telephony.subscription.SubscriptionInfoInternal; import com.android.internal.telephony.subscription.SubscriptionManagerService; import com.android.telephony.Rlog; Loading @@ -64,10 +65,12 @@ public class DataCallSessionStats { public static final int SIZE_LIMIT_HANDOVER_FAILURES = 15; private final DefaultNetworkMonitor mDefaultNetworkMonitor; private final SatelliteController mSatelliteController; public DataCallSessionStats(Phone phone) { mPhone = phone; mDefaultNetworkMonitor = PhoneFactory.getMetricsCollector().getDefaultNetworkMonitor(); mSatelliteController = SatelliteController.getInstance(); } private boolean isSystemDefaultNetworkMobile() { Loading Loading @@ -303,6 +306,7 @@ public class DataCallSessionStats { call.handoverFailureRat.length); copy.isNonDds = call.isNonDds; copy.isIwlanCrossSim = call.isIwlanCrossSim; copy.isNtn = call.isNtn; return copy; } Loading @@ -329,6 +333,8 @@ public class DataCallSessionStats { proto.handoverFailureRat = new int[0]; proto.isNonDds = false; proto.isIwlanCrossSim = false; proto.isNtn = mSatelliteController != null ? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false; return proto; } Loading
src/java/com/android/internal/telephony/metrics/MetricsCollector.java +6 −3 Original line number Diff line number Diff line Loading @@ -972,7 +972,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { state.foldState, state.overrideVoiceService, state.isDataEnabled, state.isIwlanCrossSim); state.isIwlanCrossSim, state.isNtn); } private static StatsEvent buildStatsEvent(VoiceCallRatUsage usage) { Loading Loading @@ -1030,7 +1031,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { session.isIwlanCrossSimAtStart, session.isIwlanCrossSimAtEnd, session.isIwlanCrossSimAtConnected, session.vonrEnabled); session.vonrEnabled, session.isNtn); } Loading Loading @@ -1107,7 +1109,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { dataCallSession.handoverFailureCauses, dataCallSession.handoverFailureRat, dataCallSession.isNonDds, dataCallSession.isIwlanCrossSim); dataCallSession.isIwlanCrossSim, dataCallSession.isNtn); } private static StatsEvent buildStatsEvent(ImsRegistrationStats stats) { Loading
src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java +2 −1 Original line number Diff line number Diff line Loading @@ -1715,7 +1715,8 @@ public class PersistAtomsStorage { && state.foldState == key.foldState && state.overrideVoiceService == key.overrideVoiceService && state.isDataEnabled == key.isDataEnabled && state.isIwlanCrossSim == key.isIwlanCrossSim) { && state.isIwlanCrossSim == key.isIwlanCrossSim && state.isNtn == key.isNtn) { return state; } } Loading
src/java/com/android/internal/telephony/metrics/ServiceStateStats.java +6 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import com.android.internal.telephony.data.DataNetworkController.DataNetworkCont import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.nano.PersistAtomsProto.CellularDataServiceSwitch; import com.android.internal.telephony.nano.PersistAtomsProto.CellularServiceState; import com.android.internal.telephony.satellite.SatelliteController; import com.android.telephony.Rlog; import java.util.Set; Loading @@ -61,12 +62,14 @@ public class ServiceStateStats extends DataNetworkControllerCallback { private final PersistAtomsStorage mStorage; private final DeviceStateHelper mDeviceStateHelper; private boolean mExistAnyConnectedInternetPdn; private final SatelliteController mSatelliteController; public ServiceStateStats(Phone phone) { super(Runnable::run); mPhone = phone; mStorage = PhoneFactory.getMetricsCollector().getAtomsStorage(); mDeviceStateHelper = PhoneFactory.getMetricsCollector().getDeviceStateHelper(); mSatelliteController = SatelliteController.getInstance(); } /** Finalizes the durations of the current service state segment. */ Loading Loading @@ -135,6 +138,8 @@ public class ServiceStateStats extends DataNetworkControllerCallback { newState.overrideVoiceService = mOverrideVoiceService.get(); newState.isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled(); newState.isIwlanCrossSim = isCrossSimCallingRegistered(mPhone); newState.isNtn = mSatelliteController != null ? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false; TimestampedServiceState prevState = mLastState.getAndSet(new TimestampedServiceState(newState, now)); addServiceStateAndSwitch( Loading Loading @@ -306,6 +311,7 @@ public class ServiceStateStats extends DataNetworkControllerCallback { copy.overrideVoiceService = state.overrideVoiceService; copy.isDataEnabled = state.isDataEnabled; copy.isIwlanCrossSim = state.isIwlanCrossSim; copy.isNtn = state.isNtn; return copy; } Loading