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

Commit 9f08bae4 authored by Kiwon Park's avatar Kiwon Park
Browse files

Collect VoNR enabled metrics

Bug: 232140817
Test: inspect atoms
Change-Id: Ib938ecfb4d4dfd111cac19fcf0ec251d0a41becf
Merged-In: Ib938ecfb4d4dfd111cac19fcf0ec251d0a41becf
parent 07b8b9f0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -769,7 +769,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                    perSimStatus.pin1Enabled, // isPin1Enabled
                    perSimStatus.minimumVoltageClass, // simVoltageClass
                    perSimStatus.userModifiedApnTypes, // userModifiedApnTypeBitmask
                    perSimStatus.unmeteredNetworks); // unmeteredNetworks
                    perSimStatus.unmeteredNetworks, // unmeteredNetworks
                    perSimStatus.vonrEnabled); // vonrEnabled
            data.add(statsEvent);
            result = StatsManager.PULL_SUCCESS;
        }
+18 −2
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ public class PerSimStatus {
    public final int minimumVoltageClass;
    public final int userModifiedApnTypes;
    public final long unmeteredNetworks;
    public final boolean vonrEnabled;

    /** Returns the current sim status of the given {@link Phone}. */
    @Nullable
@@ -107,7 +108,8 @@ public class PerSimStatus {
                iccCard == null ? false : iccCard.getIccLockEnabled(),
                getMinimumVoltageClass(phone),
                getUserModifiedApnTypes(phone),
                persistAtomsStorage.getUnmeteredNetworks(phone.getPhoneId(), carrierId));
                persistAtomsStorage.getUnmeteredNetworks(phone.getPhoneId(), carrierId),
                isVonrEnabled(phone));
    }

    private PerSimStatus(
@@ -126,7 +128,8 @@ public class PerSimStatus {
            boolean pin1Enabled,
            int minimumVoltageClass,
            int userModifiedApnTypes,
            long unmeteredNetworks) {
            long unmeteredNetworks,
            boolean vonrEnabled) {
        this.carrierId = carrierId;
        this.phoneNumberSourceUicc = phoneNumberSourceUicc;
        this.phoneNumberSourceCarrier = phoneNumberSourceCarrier;
@@ -143,6 +146,7 @@ public class PerSimStatus {
        this.minimumVoltageClass = minimumVoltageClass;
        this.userModifiedApnTypes = userModifiedApnTypes;
        this.unmeteredNetworks = unmeteredNetworks;
        this.vonrEnabled = vonrEnabled;
    }

    @Nullable
@@ -295,4 +299,16 @@ public class PerSimStatus {
            return bitmask;
        }
    }

    /** Returns true if VoNR is enabled */
    private static boolean isVonrEnabled(Phone phone) {
        TelephonyManager telephonyManager =
                phone.getContext()
                        .getSystemService(TelephonyManager.class);
        if (telephonyManager == null) {
            return false;
        }
        telephonyManager = telephonyManager.createForSubscriptionId(phone.getSubId());
        return telephonyManager.isVoNrEnabled();
    }
}
+9 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ public class PerSimStatusTest extends TelephonyTest {
        doReturn(UiccSlot.VOLTAGE_CLASS_A).when(uiccSlot1).getMinimumVoltageClass();
        doReturn(uiccSlot1).when(mUiccController).getUiccSlotForPhone(0);
        doReturn(NETWORK_TYPE_BITMASK_GSM).when(mPersistAtomsStorage).getUnmeteredNetworks(0, 100);
        doReturn(false).when(mTelephonyManager).isVoNrEnabled();
        // phone 1 setup
        doReturn(mContext).when(mSecondPhone).getContext();
        doReturn(1).when(mSecondPhone).getPhoneId();
@@ -210,6 +211,7 @@ public class PerSimStatusTest extends TelephonyTest {
                PER_SIM_STATUS__SIM_VOLTAGE_CLASS__VOLTAGE_CLASS_A,
                perSimStatus1.minimumVoltageClass);
        assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus1.unmeteredNetworks);
        assertEquals(false, perSimStatus1.vonrEnabled);
        assertEquals(101, perSimStatus2.carrierId);
        assertEquals(1, perSimStatus2.phoneNumberSourceUicc);
        assertEquals(2, perSimStatus2.phoneNumberSourceCarrier);
@@ -228,6 +230,7 @@ public class PerSimStatusTest extends TelephonyTest {
                PER_SIM_STATUS__SIM_VOLTAGE_CLASS__VOLTAGE_CLASS_B,
                perSimStatus2.minimumVoltageClass);
        assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus2.unmeteredNetworks);
        assertEquals(false, perSimStatus2.vonrEnabled);
    }

    @Test
@@ -286,6 +289,7 @@ public class PerSimStatusTest extends TelephonyTest {
        doReturn(UiccSlot.VOLTAGE_CLASS_A).when(uiccSlot1).getMinimumVoltageClass();
        doReturn(uiccSlot1).when(mUiccController).getUiccSlotForPhone(0);
        doReturn(NETWORK_TYPE_BITMASK_GSM).when(mPersistAtomsStorage).getUnmeteredNetworks(0, 100);
        doReturn(true).when(mTelephonyManager).isVoNrEnabled();

        PerSimStatus perSimStatus = PerSimStatus.getCurrentState(mPhone);

@@ -306,6 +310,7 @@ public class PerSimStatusTest extends TelephonyTest {
                PER_SIM_STATUS__SIM_VOLTAGE_CLASS__VOLTAGE_CLASS_A,
                perSimStatus.minimumVoltageClass);
        assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks);
        assertEquals(true, perSimStatus.vonrEnabled);
    }

    @Test
@@ -355,6 +360,7 @@ public class PerSimStatusTest extends TelephonyTest {
        doReturn(UiccSlot.VOLTAGE_CLASS_A).when(uiccSlot1).getMinimumVoltageClass();
        doReturn(uiccSlot1).when(mUiccController).getUiccSlotForPhone(0);
        doReturn(NETWORK_TYPE_BITMASK_GSM).when(mPersistAtomsStorage).getUnmeteredNetworks(0, 100);
        doReturn(true).when(mTelephonyManager).isVoNrEnabled();

        PerSimStatus perSimStatus = PerSimStatus.getCurrentState(mPhone);

@@ -375,6 +381,7 @@ public class PerSimStatusTest extends TelephonyTest {
                PER_SIM_STATUS__SIM_VOLTAGE_CLASS__VOLTAGE_CLASS_A,
                perSimStatus.minimumVoltageClass);
        assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks);
        assertEquals(true, perSimStatus.vonrEnabled);
    }

    @Test
@@ -420,6 +427,7 @@ public class PerSimStatusTest extends TelephonyTest {
        doReturn(iccCard).when(mPhone).getIccCard();
        doReturn(null).when(mUiccController).getUiccSlotForPhone(0);
        doReturn(NETWORK_TYPE_BITMASK_GSM).when(mPersistAtomsStorage).getUnmeteredNetworks(0, 100);
        doReturn(true).when(mTelephonyManager).isVoNrEnabled();

        PerSimStatus perSimStatus = PerSimStatus.getCurrentState(mPhone);

@@ -440,5 +448,6 @@ public class PerSimStatusTest extends TelephonyTest {
                PER_SIM_STATUS__SIM_VOLTAGE_CLASS__VOLTAGE_CLASS_UNKNOWN,
                perSimStatus.minimumVoltageClass);
        assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks);
        assertEquals(true, perSimStatus.vonrEnabled);
    }
}