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

Commit 6c723c74 authored by Kiwon Park's avatar Kiwon Park Committed by Android (Google) Code Review
Browse files

Merge "Collect VoNR enabled metrics" into udc-dev

parents ee3ed6e6 9f08bae4
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
@@ -72,6 +72,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
@@ -103,7 +104,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(
@@ -122,7 +124,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;
@@ -139,6 +142,7 @@ public class PerSimStatus {
        this.minimumVoltageClass = minimumVoltageClass;
        this.userModifiedApnTypes = userModifiedApnTypes;
        this.unmeteredNetworks = unmeteredNetworks;
        this.vonrEnabled = vonrEnabled;
    }

    @Nullable
@@ -272,4 +276,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
@@ -122,6 +122,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();
@@ -189,6 +190,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);
@@ -207,6 +209,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
@@ -254,6 +257,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);

@@ -274,6 +278,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
@@ -313,6 +318,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);

@@ -333,6 +339,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
@@ -368,6 +375,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);

@@ -388,5 +396,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);
    }
}