Loading flags/data.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -83,3 +83,10 @@ flag { description: "notify data activity changed for slot id" bug: "309896936" } flag { name: "vonr_enabled_metric" namespace: "telephony" description: "Collect vonr status in voice call metric" bug:"288449751" } proto/src/persist_atoms.proto +1 −0 Original line number Diff line number Diff line Loading @@ -280,6 +280,7 @@ message VoiceCallSession { optional bool is_iwlan_cross_sim_at_start = 37; optional bool is_iwlan_cross_sim_at_end = 38; optional bool is_iwlan_cross_sim_at_connected = 39; optional bool vonr_enabled = 40; // Internal use only optional int64 setup_begin_millis = 10001; Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -342,7 +342,7 @@ public class GsmCdmaPhone extends Phone { // phone type needs to be set before other initialization as other objects rely on it mPrecisePhoneType = precisePhoneType; mVoiceCallSessionStats = new VoiceCallSessionStats(mPhoneId, this); mVoiceCallSessionStats = new VoiceCallSessionStats(mPhoneId, this, featureFlags); mImsManagerFactory = imsManagerFactory; initOnce(ci); initRatSpecific(precisePhoneType); Loading src/java/com/android/internal/telephony/PhoneFactory.java +1 −1 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ public class PhoneFactory { } // register statsd pullers. sMetricsCollector = new MetricsCollector(context); sMetricsCollector = new MetricsCollector(context, sFeatureFlags); sPhoneNotifier = new DefaultPhoneNotifier(context, featureFlags); Loading src/java/com/android/internal/telephony/metrics/MetricsCollector.java +17 −4 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSIO import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__CALL_DURATION__CALL_DURATION_UNKNOWN; import static com.android.internal.telephony.util.TelephonyUtils.IS_DEBUGGABLE; import android.annotation.NonNull; import android.app.StatsManager; import android.content.Context; import android.telephony.SubscriptionManager; Loading @@ -66,6 +67,7 @@ import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.TelephonyStatsLog; import com.android.internal.telephony.emergency.EmergencyNumberTracker; import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.nano.PersistAtomsProto.CellularDataServiceSwitch; import com.android.internal.telephony.nano.PersistAtomsProto.CellularServiceState; Loading Loading @@ -167,21 +169,25 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { private final PersistAtomsStorage mStorage; private final DeviceStateHelper mDeviceStateHelper; private final StatsManager mStatsManager; private final VonrHelper mVonrHelper; private final AirplaneModeStats mAirplaneModeStats; private final Set<DataCallSessionStats> mOngoingDataCallStats = ConcurrentHashMap.newKeySet(); private static final Random sRandom = new Random(); public MetricsCollector(Context context) { this(context, new PersistAtomsStorage(context), new DeviceStateHelper(context)); public MetricsCollector(Context context, @NonNull FeatureFlags featureFlags) { this(context, new PersistAtomsStorage(context), new DeviceStateHelper(context), new VonrHelper(featureFlags)); } /** Allows dependency injection. Used during unit tests. */ @VisibleForTesting public MetricsCollector( Context context, PersistAtomsStorage storage, DeviceStateHelper deviceStateHelper) { Context context, PersistAtomsStorage storage, DeviceStateHelper deviceStateHelper, VonrHelper vonrHelper) { mStorage = storage; mDeviceStateHelper = deviceStateHelper; mStatsManager = (StatsManager) context.getSystemService(Context.STATS_MANAGER); mVonrHelper = vonrHelper; if (mStatsManager != null) { // Most (but not all) of these are subject to cooldown specified by MIN_COOLDOWN_MILLIS. registerAtom(CELLULAR_DATA_SERVICE_SWITCH); Loading Loading @@ -326,6 +332,11 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { return mDeviceStateHelper; } /** Returns the {@link VonrHelper}. */ public VonrHelper getVonrHelper() { return mVonrHelper; } /** Updates duration segments and calls {@link PersistAtomsStorage#flushAtoms()}. */ public void flushAtomsStorage() { concludeAll(); Loading Loading @@ -1012,7 +1023,9 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { session.handoverInProgress, session.isIwlanCrossSimAtStart, session.isIwlanCrossSimAtEnd, session.isIwlanCrossSimAtConnected); session.isIwlanCrossSimAtConnected, session.vonrEnabled); } private static StatsEvent buildStatsEvent(IncomingSms sms) { Loading Loading
flags/data.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -83,3 +83,10 @@ flag { description: "notify data activity changed for slot id" bug: "309896936" } flag { name: "vonr_enabled_metric" namespace: "telephony" description: "Collect vonr status in voice call metric" bug:"288449751" }
proto/src/persist_atoms.proto +1 −0 Original line number Diff line number Diff line Loading @@ -280,6 +280,7 @@ message VoiceCallSession { optional bool is_iwlan_cross_sim_at_start = 37; optional bool is_iwlan_cross_sim_at_end = 38; optional bool is_iwlan_cross_sim_at_connected = 39; optional bool vonr_enabled = 40; // Internal use only optional int64 setup_begin_millis = 10001; Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -342,7 +342,7 @@ public class GsmCdmaPhone extends Phone { // phone type needs to be set before other initialization as other objects rely on it mPrecisePhoneType = precisePhoneType; mVoiceCallSessionStats = new VoiceCallSessionStats(mPhoneId, this); mVoiceCallSessionStats = new VoiceCallSessionStats(mPhoneId, this, featureFlags); mImsManagerFactory = imsManagerFactory; initOnce(ci); initRatSpecific(precisePhoneType); Loading
src/java/com/android/internal/telephony/PhoneFactory.java +1 −1 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ public class PhoneFactory { } // register statsd pullers. sMetricsCollector = new MetricsCollector(context); sMetricsCollector = new MetricsCollector(context, sFeatureFlags); sPhoneNotifier = new DefaultPhoneNotifier(context, featureFlags); Loading
src/java/com/android/internal/telephony/metrics/MetricsCollector.java +17 −4 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSIO import static com.android.internal.telephony.TelephonyStatsLog.VOICE_CALL_SESSION__CALL_DURATION__CALL_DURATION_UNKNOWN; import static com.android.internal.telephony.util.TelephonyUtils.IS_DEBUGGABLE; import android.annotation.NonNull; import android.app.StatsManager; import android.content.Context; import android.telephony.SubscriptionManager; Loading @@ -66,6 +67,7 @@ import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.TelephonyStatsLog; import com.android.internal.telephony.emergency.EmergencyNumberTracker; import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.nano.PersistAtomsProto.CellularDataServiceSwitch; import com.android.internal.telephony.nano.PersistAtomsProto.CellularServiceState; Loading Loading @@ -167,21 +169,25 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { private final PersistAtomsStorage mStorage; private final DeviceStateHelper mDeviceStateHelper; private final StatsManager mStatsManager; private final VonrHelper mVonrHelper; private final AirplaneModeStats mAirplaneModeStats; private final Set<DataCallSessionStats> mOngoingDataCallStats = ConcurrentHashMap.newKeySet(); private static final Random sRandom = new Random(); public MetricsCollector(Context context) { this(context, new PersistAtomsStorage(context), new DeviceStateHelper(context)); public MetricsCollector(Context context, @NonNull FeatureFlags featureFlags) { this(context, new PersistAtomsStorage(context), new DeviceStateHelper(context), new VonrHelper(featureFlags)); } /** Allows dependency injection. Used during unit tests. */ @VisibleForTesting public MetricsCollector( Context context, PersistAtomsStorage storage, DeviceStateHelper deviceStateHelper) { Context context, PersistAtomsStorage storage, DeviceStateHelper deviceStateHelper, VonrHelper vonrHelper) { mStorage = storage; mDeviceStateHelper = deviceStateHelper; mStatsManager = (StatsManager) context.getSystemService(Context.STATS_MANAGER); mVonrHelper = vonrHelper; if (mStatsManager != null) { // Most (but not all) of these are subject to cooldown specified by MIN_COOLDOWN_MILLIS. registerAtom(CELLULAR_DATA_SERVICE_SWITCH); Loading Loading @@ -326,6 +332,11 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { return mDeviceStateHelper; } /** Returns the {@link VonrHelper}. */ public VonrHelper getVonrHelper() { return mVonrHelper; } /** Updates duration segments and calls {@link PersistAtomsStorage#flushAtoms()}. */ public void flushAtomsStorage() { concludeAll(); Loading Loading @@ -1012,7 +1023,9 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { session.handoverInProgress, session.isIwlanCrossSimAtStart, session.isIwlanCrossSimAtEnd, session.isIwlanCrossSimAtConnected); session.isIwlanCrossSimAtConnected, session.vonrEnabled); } private static StatsEvent buildStatsEvent(IncomingSms sms) { Loading