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

Commit 39c63538 authored by Hyosun Kim's avatar Hyosun Kim
Browse files

1. Add count of incomingMms, outgoingMms in CarrierRoamingSatelliteSession

2. Modify count of outgoingSms in CarrierRoamingSatelliteSession
3. sms and mms only count after NTN is connected

Bug: 339111754
Test: manual test - check logging b/339111754#comment27

Change-Id: Id44322c974183e91b642541fd09c970b6e34b583
parent 541ea0d5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1107,7 +1107,7 @@ public abstract class InboundSmsHandler extends StateMachine {
                messageCount, block, tracker.getMessageId());
        CarrierRoamingSatelliteSessionStats sessionStats =
                CarrierRoamingSatelliteSessionStats.getInstance(mPhone.getSubId());
        sessionStats.onIncomingSms();
        sessionStats.onIncomingSms(mPhone.getSubId());
        if (mPhone != null) {
            TelephonyAnalytics telephonyAnalytics = mPhone.getTelephonyAnalytics();
            if (telephonyAnalytics != null) {
+0 −4
Original line number Diff line number Diff line
@@ -89,7 +89,6 @@ import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
import com.android.internal.telephony.analytics.TelephonyAnalytics;
import com.android.internal.telephony.analytics.TelephonyAnalytics.SmsMmsAnalytics;
import com.android.internal.telephony.cdma.sms.UserData;
import com.android.internal.telephony.satellite.metrics.CarrierRoamingSatelliteSessionStats;
import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.uicc.IccRecords;
@@ -1067,9 +1066,6 @@ public abstract class SMSDispatcher extends Handler {
                    tracker.isFromDefaultSmsApplication(mContext),
                    tracker.getInterval(),
                    mTelephonyManager.isEmergencyNumber(tracker.mDestAddress));
            CarrierRoamingSatelliteSessionStats sessionStats =
                    CarrierRoamingSatelliteSessionStats.getInstance(mPhone.getSubId());
            sessionStats.onOutgoingSms();
            if (mPhone != null) {
                TelephonyAnalytics telephonyAnalytics = mPhone.getTelephonyAnalytics();
                if (telephonyAnalytics != null) {
+4 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.nano.PersistAtomsProto.IncomingSms;
import com.android.internal.telephony.nano.PersistAtomsProto.OutgoingShortCodeSms;
import com.android.internal.telephony.nano.PersistAtomsProto.OutgoingSms;
import com.android.internal.telephony.satellite.metrics.CarrierRoamingSatelliteSessionStats;
import com.android.telephony.Rlog;

import java.util.Objects;
@@ -202,6 +203,9 @@ public class SmsStats {
        proto.networkErrorCode = networkErrorCode;

        mAtomsStorage.addOutgoingSms(proto);
        CarrierRoamingSatelliteSessionStats sessionStats =
                CarrierRoamingSatelliteSessionStats.getInstance(mPhone.getSubId());
        sessionStats.onOutgoingSms(mPhone.getSubId());
    }

    /** Create a new atom when user attempted to send an outgoing short code sms. */
+40 −7
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ public class CarrierRoamingSatelliteSessionStats {
    private int mCountOfOutgoingSms;
    private int mCountOfIncomingMms;
    private int mCountOfOutgoingMms;
    private long mIncomingMessageId;

    private int mSessionStartTimeSec;
    private List<Long> mConnectionStartTimeList;
@@ -49,8 +50,8 @@ public class CarrierRoamingSatelliteSessionStats {
    private List<Integer> mRsrpList;
    private List<Integer> mRssnrList;

    public CarrierRoamingSatelliteSessionStats() {
        logd("Create new CarrierRoamingSatelliteSessionStats.");
    public CarrierRoamingSatelliteSessionStats(int subId) {
        logd("Create new CarrierRoamingSatelliteSessionStats. subId=" + subId);
        initializeParams();
    }

@@ -59,7 +60,7 @@ public class CarrierRoamingSatelliteSessionStats {
        synchronized (sCarrierRoamingSatelliteSessionStats) {
            if (sCarrierRoamingSatelliteSessionStats.get(subId) == null) {
                sCarrierRoamingSatelliteSessionStats.put(subId,
                        new CarrierRoamingSatelliteSessionStats());
                        new CarrierRoamingSatelliteSessionStats(subId));
            }
            return sCarrierRoamingSatelliteSessionStats.get(subId);
        }
@@ -107,15 +108,41 @@ public class CarrierRoamingSatelliteSessionStats {
    }

    /** Log incoming sms success case */
    public void onIncomingSms() {
    public void onIncomingSms(int subId) {
        if (!isNtnConnected()) {
            return;
        }
        mCountOfIncomingSms += 1;
        logd("onIncomingSms: mCountOfIncomingSms=" + mCountOfIncomingSms);
        logd("onIncomingSms: subId=" + subId + ", count=" + mCountOfIncomingSms);
    }

    /** Log outgoing sms success case */
    public void onOutgoingSms() {
    public void onOutgoingSms(int subId) {
        if (!isNtnConnected()) {
            return;
        }
        mCountOfOutgoingSms += 1;
        logd("onOutgoingSms: mCountOfOutgoingSms=" + mCountOfOutgoingSms);
        logd("onOutgoingSms: subId=" + subId + ", count=" + mCountOfOutgoingSms);
    }

    /** Log incoming or outgoing mms success case */
    public void onMms(boolean isIncomingMms, long messageId) {
        if (!isNtnConnected()) {
            return;
        }
        if (isIncomingMms) {
            mIncomingMessageId = messageId;
            mCountOfIncomingMms += 1;
            logd("onMms: messageId=" + messageId + ", countOfIncomingMms=" + mCountOfIncomingMms);
        } else {
            if (mIncomingMessageId == messageId) {
                logd("onMms: NotifyResponse ignore it.");
                mIncomingMessageId = 0;
                return;
            }
            mCountOfOutgoingMms += 1;
            logd("onMms: countOfOutgoingMms=" + mCountOfOutgoingMms);
        }
    }

    private void reportMetrics() {
@@ -165,12 +192,14 @@ public class CarrierRoamingSatelliteSessionStats {
        mCountOfOutgoingSms = 0;
        mCountOfIncomingMms = 0;
        mCountOfOutgoingMms = 0;
        mIncomingMessageId = 0;

        mSessionStartTimeSec = 0;
        mConnectionStartTimeList = new ArrayList<>();
        mConnectionEndTimeList = new ArrayList<>();
        mRsrpList = new ArrayList<>();
        mRssnrList = new ArrayList<>();
        logd("initializeParams");
    }

    private CellSignalStrengthLte getCellSignalStrengthLte(Phone phone) {
@@ -259,6 +288,10 @@ public class CarrierRoamingSatelliteSessionStats {
        return System.currentTimeMillis();
    }

    private boolean isNtnConnected() {
        return mSessionStartTimeSec != 0;
    }

    private void logd(@NonNull String log) {
        Log.d(TAG, log);
    }