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

Commit b1e6abcd authored by Chi Zhang's avatar Chi Zhang Committed by Android (Google) Code Review
Browse files

Merge "Fix carrier ID retrieval in VoiceCallSessionStats." into rvc-qpr-dev

parents db7d612c 4d59c7c3
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -490,9 +490,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;

    /** Holds the audio codec bitmask value for CS calls. */
    private static final SparseLongArray CS_CODEC_MAP = buildGsmCdmaCodecMap();

@@ -106,7 +98,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();
@@ -219,18 +210,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));
@@ -344,7 +323,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;
@@ -441,7 +420,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);
    }