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

Commit 4e29a77d authored by Chi Zhang's avatar Chi Zhang
Browse files

Add band to DataCallSession.

Test: build and statsd_testdrive
Bug: 129186924
Change-Id: I8471f1eb2b74a1a70c9e5af223dc7f786a0b03fb
parent e818b304
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -196,6 +196,7 @@ message DataCallSession {
    optional int32 deactivate_reason = 16;
    optional int64 duration_minutes = 17;
    optional bool ongoing = 18;
    optional int32 band_at_end = 19;
}

message CellularServiceState {
+2 −8
Original line number Diff line number Diff line
@@ -2093,10 +2093,7 @@ public class DataConnection extends StateMachine {
                                + " drs=" + mDataRegState
                                + " mRilRat=" + mRilRat);
                    }
                    // this is for DRS or RAT changes, so only call onRatChanged if RAT is changed
                    if (mRilRat != 0) {
                        mDataCallSessionStats.onRatChanged(mRilRat);
                    }
                    mDataCallSessionStats.onDrsOrRatChanged(mRilRat);
                    break;

                case EVENT_START_HANDOVER:  //calls startHandover()
@@ -2783,10 +2780,7 @@ public class DataConnection extends StateMachine {
                        mNetworkAgent.sendLinkProperties(mLinkProperties, DataConnection.this);
                    }
                    retVal = HANDLED;
                    // this is for DRS or RAT changes, so only call onRatChanged if RAT is changed
                    if (mRilRat != 0) {
                        mDataCallSessionStats.onRatChanged(mRilRat);
                    }
                    mDataCallSessionStats.onDrsOrRatChanged(mRilRat);
                    break;
                }
                case EVENT_NR_FREQUENCY_CHANGED:
+13 −4
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.telephony.Annotation.ApnType;
import android.telephony.Annotation.NetworkType;
import android.telephony.DataFailCause;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting.ProtocolType;
import android.telephony.data.DataCallResponse;
import android.telephony.data.DataService;
@@ -183,20 +184,28 @@ public class DataCallSessionStats {
        mOngoingDataCall = null;
    }

    /** Updates this RAT when it changes. */
    public synchronized void onRatChanged(@ServiceState.RilRadioTechnology int radioTechnology) {
    /**
     * Updates the atom when data registration state or RAT changes.
     *
     * <p>NOTE: in {@link ServiceStateTracker}, change of channel number will trigger data
     * registration state change.
     */
    public synchronized void onDrsOrRatChanged(
            @ServiceState.RilRadioTechnology int radioTechnology) {
        @NetworkType int rat = ServiceState.rilRadioTechnologyToNetworkType(radioTechnology);
        // if no data call is initiated, or we have a new data call while the last one has ended
        // because onRatChanged might be called before onSetupDataCall
        if (mOngoingDataCall == null) {
            mOngoingDataCall = getDefaultProto(0);
            mOngoingDataCall.ratAtEnd = rat;
            mStartTime = System.currentTimeMillis();
            mOnRatChangedCalledBeforeSetup = true;
        }
        @NetworkType int rat = ServiceState.rilRadioTechnologyToNetworkType(radioTechnology);
        if (mOngoingDataCall.ratAtEnd != rat) {
        if (rat != TelephonyManager.NETWORK_TYPE_UNKNOWN && mOngoingDataCall.ratAtEnd != rat) {
            mOngoingDataCall.ratSwitchCount++;
            mOngoingDataCall.ratAtEnd = rat;
        }
        mOngoingDataCall.bandAtEnd = ServiceStateStats.getBand(mPhone, rat);
    }

    private static long convertMillisToMinutes(long millis) {
+2 −1
Original line number Diff line number Diff line
@@ -43,13 +43,14 @@ public class DataStallRecoveryStats {

        int carrierId = phone.getCarrierId();
        int rat = getRat(phone);
        int band = ServiceStateStats.getBand(phone, rat);
        // the number returned here matches the SignalStrength enum we have
        int signalStrength = phone.getSignalStrength().getLevel();
        boolean isOpportunistic = getIsOpportunistic(phone);
        boolean isMultiSim = SimSlotState.getCurrentState().numActiveSims > 1;

        TelephonyStatsLog.write(TelephonyStatsLog.DATA_STALL_RECOVERY_REPORTED, carrierId, rat,
                signalStrength, recoveryAction, isOpportunistic, isMultiSim);
                signalStrength, recoveryAction, isOpportunistic, isMultiSim, band);
    }

    private static @NetworkType int getRat(Phone phone) {
+2 −1
Original line number Diff line number Diff line
@@ -498,7 +498,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                dataCallSession.suggestedRetryMillis,
                dataCallSession.deactivateReason,
                dataCallSession.durationMinutes,
                dataCallSession.ongoing);
                dataCallSession.ongoing,
                dataCallSession.bandAtEnd);
    }

    private static StatsEvent buildStatsEvent(ImsRegistrationStats stats) {
Loading