Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6edf09e8 authored by Qingqi Lei's avatar Qingqi Lei Committed by Android (Google) Code Review
Browse files

Merge "Add vonr_enabled to voice call metric" into main

parents b7a00f3f 582b98a9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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"
}
+1 −0
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ public class PhoneFactory {
                }

                // register statsd pullers.
                sMetricsCollector = new MetricsCollector(context);
                sMetricsCollector = new MetricsCollector(context, sFeatureFlags);

                sPhoneNotifier = new DefaultPhoneNotifier(context, featureFlags);

+17 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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);
@@ -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();
@@ -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