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

Commit 120d9d06 authored by Chi Zhang's avatar Chi Zhang Committed by Gerrit Code Review
Browse files

Merge "Fix carrier ID retrieval in VoiceCallSessionStats."

parents 37562ee0 f64eb1ba
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -489,9 +489,6 @@ public class SubscriptionController extends ISub.Stub {
            notifyOpportunisticSubscriptionInfoChanged();
        }
        metrics.updateActiveSubscriptionInfoList(subInfos);
        for (Phone phone : PhoneFactory.getPhones()) {
            phone.getVoiceCallSessionStats().onActiveSubscriptionInfoChanged(subInfos);
        }
    }

    /**
+2 −23
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ import android.os.SystemClock;
import android.telephony.Annotation.NetworkType;
import android.telephony.DisconnectCause;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsStreamMediaProfile;
@@ -74,13 +73,6 @@ public class VoiceCallSessionStats {
    /** Bitmask value of unknown audio codecs. */
    private static final long AUDIO_CODEC_UNKNOWN = 1L << AudioCodec.AUDIO_CODEC_UNKNOWN;

    /**
     * Value denoting the carrier ID being unknown.
     *
     * <p>NOTE: 0 is unused in {@code carrier_list.textpb} (it starts from 1).
     */
    private static final int CARRIER_ID_UNKNOWN = 0;

    /** Upper bounds of each call setup duration category in milliseconds. */
    private static final int CALL_SETUP_DURATION_UNKNOWN = 0;
    private static final int CALL_SETUP_DURATION_EXTREMELY_FAST = 60;
@@ -118,7 +110,6 @@ public class VoiceCallSessionStats {

    private final int mPhoneId;
    private final Phone mPhone;
    private int mCarrierId = CARRIER_ID_UNKNOWN;

    private final PersistAtomsStorage mAtomsStorage =
            PhoneFactory.getMetricsCollector().getAtomsStorage();
@@ -231,18 +222,6 @@ public class VoiceCallSessionStats {

    /* general & misc. */

    /** Updates internal states when carrier changes. */
    public synchronized void onActiveSubscriptionInfoChanged(List<SubscriptionInfo> subInfos) {
        int slotId = getSimSlotId();
        if (subInfos != null) {
            for (SubscriptionInfo subInfo : subInfos) {
                if (subInfo.getSimSlotIndex() == slotId) {
                    mCarrierId = subInfo.getCarrierId();
                }
            }
        }
    }

    /** Updates internal states when audio codec for a call is changed. */
    public synchronized void onAudioCodecChanged(Connection conn, int audioQuality) {
        VoiceCallSession proto = mCallProtos.get(getConnectionId(conn));
@@ -356,7 +335,7 @@ public class VoiceCallSessionStats {
            proto.simSlotIndex = getSimSlotId();
            proto.isMultiSim = SimSlotState.getCurrentState().numActiveSims > 1;
            proto.isEsim = isEsim();
            proto.carrierId = mCarrierId;
            proto.carrierId = mPhone.getCarrierId();
            proto.srvccCompleted = false;
            proto.srvccFailureCount = 0L;
            proto.srvccCancellationCount = 0L;
@@ -453,7 +432,7 @@ public class VoiceCallSessionStats {

    private void updateRatTracker(ServiceState state) {
        int rat = getRat(state);
        mRatUsage.add(mCarrierId, rat, getTimeMillis(), getConnectionIds());
        mRatUsage.add(mPhone.getCarrierId(), rat, getTimeMillis(), getConnectionIds());
        for (int i = 0; i < mCallProtos.size(); i++) {
            VoiceCallSession proto = mCallProtos.valueAt(i);
            if (proto.ratAtEnd != rat) {
+2 −13
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.telephony.DisconnectCause;
import android.telephony.PreciseDisconnectCause;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsStreamMediaProfile;
@@ -102,10 +101,6 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
    @Mock private ImsPhoneCall mImsCall0;
    @Mock private ImsPhoneCall mImsCall1;

    @Mock private SubscriptionInfo mSubInfo0;
    @Mock private SubscriptionInfo mSubInfo1;
    private List<SubscriptionInfo> mSubInfos;

    private static class TestableVoiceCallSessionStats extends VoiceCallSessionStats {
        private long mTimeMillis = 0L;

@@ -135,7 +130,9 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
        super.setUp(getClass().getSimpleName());

        replaceInstance(PhoneFactory.class, "sPhones", null, new Phone[] {mPhone, mSecondPhone});
        doReturn(CARRIER_ID_SLOT_0).when(mPhone).getCarrierId();
        // mPhone's mSST/mServiceState has been set up by TelephonyTest
        doReturn(CARRIER_ID_SLOT_1).when(mSecondPhone).getCarrierId();
        doReturn(mSecondServiceStateTracker).when(mSecondPhone).getServiceStateTracker();
        doReturn(mSecondServiceState).when(mSecondServiceStateTracker).getServiceState();

@@ -176,17 +173,9 @@ public class VoiceCallSessionStatsTest extends TelephonyTest {
        doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mGsmConnection1).getPhoneType();
        doReturn(false).when(mGsmConnection1).isEmergencyCall();

        mSubInfos = List.of(mSubInfo0, mSubInfo1);
        doReturn(0).when(mSubInfo0).getSimSlotIndex();
        doReturn(CARRIER_ID_SLOT_0).when(mSubInfo0).getCarrierId();
        doReturn(1).when(mSubInfo1).getSimSlotIndex();
        doReturn(CARRIER_ID_SLOT_1).when(mSubInfo1).getCarrierId();

        mVoiceCallSessionStats0 = new TestableVoiceCallSessionStats(0, mPhone);
        mVoiceCallSessionStats0.onActiveSubscriptionInfoChanged(mSubInfos);
        mVoiceCallSessionStats0.onServiceStateChanged(mServiceState);
        mVoiceCallSessionStats1 = new TestableVoiceCallSessionStats(1, mSecondPhone);
        mVoiceCallSessionStats1.onActiveSubscriptionInfoChanged(mSubInfos);
        mVoiceCallSessionStats1.onServiceStateChanged(mSecondServiceState);
    }