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

Commit 6feca492 authored by Aswin Sankar's avatar Aswin Sankar Committed by Automerger Merge Worker
Browse files

Merge "ImsStats captures crossSIM calling" into udc-qpr-dev am: a9a65ee0

parents 351b2631 a9a65ee0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -409,6 +409,7 @@ message ImsRegistrationTermination {
    optional int32 extra_code = 6;
    optional string extra_message = 7;
    optional int32 count = 8;
    optional bool is_iwlan_cross_sim = 9;

    // Internal use only
    optional int64 last_used_millis = 10001;
@@ -428,6 +429,9 @@ message ImsRegistrationStats {
    optional int64 video_available_millis = 10;
    optional int64 ut_capable_millis = 11;
    optional int64 ut_available_millis = 12;
    optional int64 registering_millis = 13;
    optional int64 unregistered_millis = 14;
    optional bool is_iwlan_cross_sim = 15;

    // Internal use only
    optional int64 last_used_millis = 10001;
+1 −1
Original line number Diff line number Diff line
@@ -2477,7 +2477,7 @@ public class ImsPhone extends ImsPhoneBase {
            setServiceState(ServiceState.STATE_IN_SERVICE);
            getDefaultPhone().setImsRegistrationState(true);
            mMetrics.writeOnImsConnectionState(mPhoneId, ImsConnectionState.State.CONNECTED, null);
            mImsStats.onImsRegistered(imsRadioTech);
            mImsStats.onImsRegistered(attributes);
            mImsNrSaModeHandler.onImsRegistered(
                    attributes.getRegistrationTechnology(), attributes.getFeatureTags());
            updateImsRegistrationInfo(REGISTRATION_STATE_REGISTERED,
+18 −6
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPAB
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT;
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO;
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_NONE;
@@ -39,6 +40,7 @@ import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsRegistrationAttributes;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.RegistrationManager.ImsRegistrationState;
import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities;
@@ -271,10 +273,13 @@ public class ImsStats {
                (newRat == TelephonyManager.NETWORK_TYPE_IWLAN)
                        ? AccessNetworkConstants.TRANSPORT_TYPE_WLAN
                        : AccessNetworkConstants.TRANSPORT_TYPE_WWAN;
        if (mLastRegistrationStats != null && mLastRegistrationStats.rat != newRat) {
        if (mLastRegistrationStats != null) {
            if (mLastRegistrationStats.rat != newRat) {
                mLastRegistrationStats.rat = newRat;
                ratChanged = true;
            }
            mLastRegistrationStats.isIwlanCrossSim = radioTech == REGISTRATION_TECH_CROSS_SIM;
        }

        boolean voiceAvailableNow = capabilities.isCapable(CAPABILITY_TYPE_VOICE);
        boolean voiceAvailabilityChanged =
@@ -314,15 +319,18 @@ public class ImsStats {
    }

    /** Updates the stats when IMS registration succeeds. */
    public synchronized void onImsRegistered(@TransportType int imsRadioTech) {
    public synchronized void onImsRegistered(ImsRegistrationAttributes attributes) {
        conclude();

        mLastTransportType = imsRadioTech;
        mLastTransportType = attributes.getTransportType();
        // NOTE: mLastRegistrationStats can be null (no registering phase).
        if (mLastRegistrationStats == null) {
            mLastRegistrationStats = getDefaultImsRegistrationStats();
        }
        mLastRegistrationStats.rat = convertTransportTypeToNetworkType(imsRadioTech);
        mLastRegistrationStats.rat =
                convertTransportTypeToNetworkType(attributes.getTransportType());
        mLastRegistrationStats.isIwlanCrossSim = attributes.getRegistrationTechnology()
                == REGISTRATION_TECH_CROSS_SIM;
        mLastRegistrationState = REGISTRATION_STATE_REGISTERED;
    }

@@ -336,6 +344,7 @@ public class ImsStats {
        if (mLastRegistrationStats != null) {
            termination.carrierId = mLastRegistrationStats.carrierId;
            termination.ratAtEnd = getRatAtEnd(mLastRegistrationStats.rat);
            termination.isIwlanCrossSim = mLastRegistrationStats.isIwlanCrossSim;
        } else {
            termination.carrierId = mPhone.getDefaultPhone().getCarrierId();
            // We cannot tell whether the registration was intended for WWAN or WLAN
@@ -415,6 +424,7 @@ public class ImsStats {
            case REGISTRATION_TECH_NONE:
                return null;
            case REGISTRATION_TECH_IWLAN:
            case REGISTRATION_TECH_CROSS_SIM:
                return mLastWlanCapableFeatures;
            default:
                return mLastWwanCapableFeatures;
@@ -429,6 +439,7 @@ public class ImsStats {
            case REGISTRATION_TECH_LTE:
                return TelephonyManager.NETWORK_TYPE_LTE;
            case REGISTRATION_TECH_IWLAN:
            case REGISTRATION_TECH_CROSS_SIM:
                return TelephonyManager.NETWORK_TYPE_IWLAN;
            case REGISTRATION_TECH_NR:
                return TelephonyManager.NETWORK_TYPE_NR;
@@ -453,6 +464,7 @@ public class ImsStats {
        dest.videoAvailableMillis = source.videoAvailableMillis;
        dest.utCapableMillis = source.utCapableMillis;
        dest.utAvailableMillis = source.utAvailableMillis;
        dest.isIwlanCrossSim = source.isIwlanCrossSim;

        return dest;
    }
+6 −2
Original line number Diff line number Diff line
@@ -1069,7 +1069,10 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                roundAndConvertMillisToSeconds(stats.videoCapableMillis),
                roundAndConvertMillisToSeconds(stats.videoAvailableMillis),
                roundAndConvertMillisToSeconds(stats.utCapableMillis),
                roundAndConvertMillisToSeconds(stats.utAvailableMillis));
                roundAndConvertMillisToSeconds(stats.utAvailableMillis),
                roundAndConvertMillisToSeconds(stats.registeringMillis),
                roundAndConvertMillisToSeconds(stats.unregisteredMillis),
                stats.isIwlanCrossSim);
    }

    private static StatsEvent buildStatsEvent(ImsRegistrationTermination termination) {
@@ -1082,7 +1085,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                termination.reasonCode,
                termination.extraCode,
                termination.extraMessage,
                termination.count);
                termination.count,
                termination.isIwlanCrossSim);
    }

    private static StatsEvent buildStatsEvent(NetworkRequestsV2 networkRequests) {
+3 −1
Original line number Diff line number Diff line
@@ -1760,7 +1760,8 @@ public class PersistAtomsStorage {
        for (ImsRegistrationStats stats : mAtoms.imsRegistrationStats) {
            if (stats.carrierId == key.carrierId
                    && stats.simSlotIndex == key.simSlotIndex
                    && stats.rat == key.rat) {
                    && stats.rat == key.rat
                    && stats.isIwlanCrossSim == key.isIwlanCrossSim) {
                return stats;
            }
        }
@@ -1776,6 +1777,7 @@ public class PersistAtomsStorage {
            if (termination.carrierId == key.carrierId
                    && termination.isMultiSim == key.isMultiSim
                    && termination.ratAtEnd == key.ratAtEnd
                    && termination.isIwlanCrossSim == key.isIwlanCrossSim
                    && termination.setupFailed == key.setupFailed
                    && termination.reasonCode == key.reasonCode
                    && termination.extraCode == key.extraCode
Loading