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

Commit 47abf4bc authored by Jisun Jung's avatar Jisun Jung Committed by Jisun Annie Jung
Browse files

Add registered_times to ImsRegistrationStats

Bug: 312808192
Test: atest ImsStatsTest
Test: atest com.android.internal.telephony.metrics
Test: manual test to set registeredTimes when UE is registered.
Change-Id: I4bd71923e9d4604e1672366d9f2101bc68ff2221
parent e5b26e15
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -437,6 +437,7 @@ message ImsRegistrationStats {
    optional int64 registering_millis = 13;
    optional int64 unregistered_millis = 14;
    optional bool is_iwlan_cross_sim = 15;
    optional int64 registered_times = 16;

    // Internal use only
    optional int64 last_used_millis = 10001;
+11 −0
Original line number Diff line number Diff line
@@ -239,6 +239,10 @@ public class ImsStats {
                return;
            }

            stats.registeredTimes = mLastRegistrationStats.registeredTimes;
            // initialize registeredTimes after copying mLastRegistrationStats to be updated
            mLastRegistrationStats.registeredTimes = 0;

            switch (mLastRegistrationState) {
                case REGISTRATION_STATE_REGISTERED:
                    stats.registeredMillis = duration;
@@ -341,6 +345,13 @@ public class ImsStats {
        if (mLastRegistrationState == REGISTRATION_STATE_NOT_REGISTERED) {
            updateImsRegistrationStats();
        }

        if (mLastRegistrationState != REGISTRATION_STATE_REGISTERED) {
            // RegistrationStats captures in every state. Changing REGISTERED state has to capture
            // only once.
            mLastRegistrationStats.registeredTimes = 1;
        }

        mLastRegistrationStats.rat =
                convertTransportTypeToNetworkType(attributes.getTransportType());
        mLastRegistrationStats.isIwlanCrossSim = attributes.getRegistrationTechnology()
+2 −1
Original line number Diff line number Diff line
@@ -1118,7 +1118,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                roundAndConvertMillisToSeconds(stats.utAvailableMillis),
                roundAndConvertMillisToSeconds(stats.registeringMillis),
                roundAndConvertMillisToSeconds(stats.unregisteredMillis),
                stats.isIwlanCrossSim);
                stats.isIwlanCrossSim,
                roundAndConvertMillisToSeconds(stats.registeredTimes));
    }

    private static StatsEvent buildStatsEvent(ImsRegistrationTermination termination) {
+3 −0
Original line number Diff line number Diff line
@@ -409,6 +409,7 @@ public class PersistAtomsStorage {
            existingStats.utAvailableMillis += stats.utAvailableMillis;
            existingStats.registeringMillis += stats.registeringMillis;
            existingStats.unregisteredMillis += stats.unregisteredMillis;
            existingStats.registeredTimes += stats.registeredTimes;
            existingStats.lastUsedMillis = getWallTimeMillis();
        } else {
            stats.lastUsedMillis = getWallTimeMillis();
@@ -2290,6 +2291,8 @@ public class PersistAtomsStorage {
                    normalizeDurationTo24H(stats[i].registeringMillis, intervalMillis);
            stats[i].unregisteredMillis =
                    normalizeDurationTo24H(stats[i].unregisteredMillis, intervalMillis);
            stats[i].registeredTimes =
                    normalizeDurationTo24H(stats[i].registeredTimes, intervalMillis);
        }
        return stats;
    }
+16 −0
Original line number Diff line number Diff line
@@ -198,6 +198,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(2000L, stats.utAvailableMillis);
        assertEquals(2000L, stats.smsCapableMillis);
        assertEquals(2000L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -292,6 +293,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(0L, stats.smsCapableMillis);
        assertEquals(0L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -321,6 +323,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(2000L, stats.registeredMillis);
        assertEquals(2000L, stats.voiceCapableMillis);
        assertEquals(2000L, stats.voiceAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -374,6 +377,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0, stats.simSlotIndex);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, stats.rat);
        assertEquals(2000L, stats.unregisteredMillis);
        assertEquals(0, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -414,6 +418,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0, stats.simSlotIndex);
        assertEquals(TelephonyManager.NETWORK_TYPE_IWLAN, stats.rat);
        assertEquals(2000L, stats.registeringMillis);
        assertEquals(0, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -564,6 +569,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(0L, stats.smsCapableMillis);
        assertEquals(0L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
        // ServiceStateStats should be notified
        verify(mServiceStateStats).onImsVoiceRegistrationChanged();
@@ -603,6 +609,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(0L, stats.smsCapableMillis);
        assertEquals(0L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
        // ServiceStateStats should be notified
        verify(mServiceStateStats, times(2)).onImsVoiceRegistrationChanged();
@@ -642,6 +649,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(2000L, stats.smsCapableMillis);
        assertEquals(2000L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
        // ServiceStateStats should not be notified
        verify(mServiceStateStats, never()).onImsVoiceRegistrationChanged();
@@ -679,6 +687,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(0L, stats.smsCapableMillis);
        assertEquals(0L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -709,6 +718,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, statsLte.utAvailableMillis);
        assertEquals(0L, statsLte.smsCapableMillis);
        assertEquals(0L, statsLte.smsAvailableMillis);
        assertEquals(1, statsLte.registeredTimes);
        ImsRegistrationStats statsWifi = captor.getAllValues().get(1);
        assertEquals(CARRIER1_ID, statsWifi.carrierId);
        assertEquals(0, statsWifi.simSlotIndex);
@@ -722,6 +732,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, statsWifi.utAvailableMillis);
        assertEquals(0L, statsWifi.smsCapableMillis);
        assertEquals(0L, statsWifi.smsAvailableMillis);
        assertEquals(0, statsWifi.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -742,6 +753,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, stats.rat);
        assertEquals(0L, stats.registeredMillis);
        assertEquals(2000L, stats.registeringMillis);
        assertEquals(0, stats.registeredTimes);
    }

    @Test
@@ -778,6 +790,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0, stats.simSlotIndex);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, stats.rat);
        assertEquals(2000L, stats.unregisteredMillis);
        assertEquals(0, stats.registeredTimes);
        verifyNoMoreInteractions(mPersistAtomsStorage);
    }

@@ -860,6 +873,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(0L, stats.smsCapableMillis);
        assertEquals(0L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        ArgumentCaptor<ImsRegistrationTermination> terminationCaptor =
                ArgumentCaptor.forClass(ImsRegistrationTermination.class);
        verify(mPersistAtomsStorage).addImsRegistrationTermination(terminationCaptor.capture());
@@ -1086,6 +1100,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(0L, stats.utAvailableMillis);
        assertEquals(0L, stats.smsCapableMillis);
        assertEquals(0L, stats.smsAvailableMillis);
        assertEquals(1, stats.registeredTimes);
        ArgumentCaptor<ImsRegistrationTermination> terminationCaptor =
                ArgumentCaptor.forClass(ImsRegistrationTermination.class);
        verify(mPersistAtomsStorage).addImsRegistrationTermination(terminationCaptor.capture());
@@ -1120,6 +1135,7 @@ public class ImsStatsTest extends TelephonyTest {
        assertEquals(TelephonyManager.NETWORK_TYPE_IWLAN, stats.rat);
        assertEquals(true, stats.isIwlanCrossSim);
        assertEquals(2000L, stats.registeredMillis);
        assertEquals(1, stats.registeredTimes);

        ArgumentCaptor<ImsRegistrationTermination> terminationCaptor =
                ArgumentCaptor.forClass(ImsRegistrationTermination.class);