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

Commit 65d60d8b authored by Michele Berionne's avatar Michele Berionne Committed by Chi Zhang
Browse files

Add PNN in the metrics for carrier ID mismatch

Bug: 169273187
Test: manual
Merged-In: Ie79ba372edb9f936f4417475003b2941c1d24217
Change-Id: I968980425f677690d89fee914c5db0dfe4f44d78
parent f2391e63
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ message CarrierIdMismatch {
    optional string mcc_mnc = 1;
    optional string gid1 = 2;
    optional string spn = 3;
    optional string pnn = 4;
}

message DataCallSession {
+3 −1
Original line number Diff line number Diff line
@@ -941,8 +941,10 @@ public class CarrierResolver extends Handler {

        // Generate statsd metrics only when MCC/MNC is unknown or there is no match for GID1.
        if (unknownMccmncToLog != null || unknownGid1ToLog != null) {
            // Pass the PNN value to metrics only if the SPN is empty
            String pnn = TextUtils.isEmpty(subscriptionRule.spn) ? subscriptionRule.plmn : "";
            CarrierIdMatchStats.onCarrierIdMismatch(
                    mCarrierId, unknownMccmncToLog, unknownGid1ToLog, subscriptionRule.spn);
                    mCarrierId, unknownMccmncToLog, unknownGid1ToLog, subscriptionRule.spn, pnn);
        }
    }

+4 −2
Original line number Diff line number Diff line
@@ -31,19 +31,21 @@ public class CarrierIdMatchStats {
    private CarrierIdMatchStats() { }

    /** Generate metrics when carrier ID mismatch occurs. */
    public static void onCarrierIdMismatch(int cid, String mccMnc, String gid1, String spn) {
    public static void onCarrierIdMismatch(
            int cid, String mccMnc, String gid1, String spn, String pnn) {
        PersistAtomsStorage storage = PhoneFactory.getMetricsCollector().getAtomsStorage();

        CarrierIdMismatch carrierIdMismatch = new CarrierIdMismatch();
        carrierIdMismatch.mccMnc = nullToEmpty(mccMnc);
        carrierIdMismatch.gid1 = nullToEmpty(gid1);
        carrierIdMismatch.spn = nullToEmpty(spn);
        carrierIdMismatch.pnn = carrierIdMismatch.spn.isEmpty() ? nullToEmpty(pnn) : "";

        // Add to storage and generate atom only if it was added (new SIM card).
        boolean isAdded = storage.addCarrierIdMismatch(carrierIdMismatch);
        if (isAdded) {
            Rlog.d(TAG, "New carrier ID mismatch event: " + carrierIdMismatch.toString());
            TelephonyStatsLog.write(CARRIER_ID_MISMATCH_EVENT, cid, mccMnc, gid1, spn);
            TelephonyStatsLog.write(CARRIER_ID_MISMATCH_EVENT, cid, mccMnc, gid1, spn, pnn);
        }
    }

+2 −1
Original line number Diff line number Diff line
@@ -466,7 +466,8 @@ public class PersistAtomsStorage {
        for (CarrierIdMismatch mismatch : mAtoms.carrierIdMismatch) {
            if (mismatch.mccMnc.equals(key.mccMnc)
                    && mismatch.gid1.equals(key.gid1)
                    && mismatch.spn.equals(key.spn)) {
                    && mismatch.spn.equals(key.spn)
                    && mismatch.pnn.equals(key.pnn)) {
                return mismatch;
            }
        }