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

Commit 7defa1f1 authored by sqian's avatar sqian
Browse files

Add Emergency Number Database version metrics

We need to add metrics for emergency number database version
In this metrics, we log emergency number db version when it
reaches to EmergencyNumberTracker, the phone process; this should
 verify whether the update is reaching phones.

Test: atest TelephonyMetrics
Bug: 146568709
Change-Id: I3c5ada8232f5fb3a4b10e397b6e7a64ae0b0cd88
parent 4ebd80ee
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -1786,6 +1786,13 @@ message TelephonyEvent {

  // Signal strength
  optional int32 signal_strength = 27;

  // Indicate the version of emergency number database in Android platform
  optional int32 emergency_number_database_version = 28;
  // [
  //  (datapol.semantic_type) = ST_SOFTWARE_ID,
  //  (datapol.qualifier) = { is_public: true }
  //]
}

message ActiveSubscriptionInfo {
@@ -2095,6 +2102,13 @@ message TelephonyCallSession {

      // Indicate the emergency call information dialed from the CS call
      optional EmergencyNumberInfo emergency_number_info = 8;

      // Indicate the version of emergency number database in Android platform
      optional int32 emergency_number_database_version = 9;
      // [
      //  (datapol.semantic_type) = ST_SOFTWARE_ID,
      //  (datapol.qualifier) = { is_public: true }
      //]
    }

    // Single Radio Voice Call Continuity(SRVCC) progress state
@@ -2321,6 +2335,13 @@ message TelephonyCallSession {

    // Emergency call info
    optional EmergencyNumberInfo ims_emergency_number_info = 27;

    // Indicate the version of emergency number database in Android platform
    optional int32 emergency_number_database_version = 28;
    // [
    //  (datapol.semantic_type) = ST_SOFTWARE_ID,
    //  (datapol.qualifier) = { is_public: true }
    //]
  }

  // Time when call has started, in minutes since epoch,
+15 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.text.TextUtils;

import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
import com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.metrics.TelephonyMetrics;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppState;
import com.android.internal.telephony.uicc.UiccCardApplication;
@@ -1114,6 +1115,20 @@ public class GsmCdmaConnection extends Connection {
        return false;
    }

    /**
     * Get the corresponding EmergencyNumberTracker associated with the connection.
     * @return the EmergencyNumberTracker
     */
    public EmergencyNumberTracker getEmergencyNumberTracker() {
        if (mOwner != null) {
            Phone phone = mOwner.getPhone();
            if (phone != null) {
                return phone.getEmergencyNumberTracker();
            }
        }
        return null;
    }

    /**
     * @return {@code true} if this call is an OTASP activation call, {@code false} otherwise.
     */
+1 −1
Original line number Diff line number Diff line
@@ -1051,7 +1051,7 @@ public class EmergencyNumberTracker extends Handler {
        }
        for (EmergencyNumber num : updatedEmergencyNumberList) {
            TelephonyMetrics.getInstance().writeEmergencyNumberUpdateEvent(
                    mPhone.getPhoneId(), num);
                    mPhone.getPhoneId(), num, getEmergencyNumberDbVersion());
        }
    }

+5 −1
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.dataconnection.DataEnabledSettings;
import com.android.internal.telephony.dataconnection.DataEnabledSettings.DataEnabledChangedReason;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.gsm.SuppServiceNotification;
import com.android.internal.telephony.imsphone.ImsPhone.ImsDialArgs;
import com.android.internal.telephony.metrics.CallQualityMetrics;
@@ -2471,9 +2472,12 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
            }

            String callId = imsCall.getSession().getCallId();
            EmergencyNumberTracker emergencyNumberTracker = conn.getEmergencyNumberTracker();
            mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(),
                    reasonInfo, mCallQualityMetrics.get(callId), conn.getEmergencyNumberInfo(),
                    getNetworkCountryIso());
                    getNetworkCountryIso(), emergencyNumberTracker != null
                    ? emergencyNumberTracker.getEmergencyNumberDbVersion()
                    : TelephonyManager.INVALID_EMERGENCY_NUMBER_DB_VERSION);
            // Remove info for the callId from the current calls and add it to the history
            CallQualityMetrics lastCallMetrics = mCallQualityMetrics.remove(callId);
            if (lastCallMetrics != null) {
+15 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.internal.telephony.Connection;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.UUSInfo;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.metrics.TelephonyMetrics;

import java.util.Objects;
@@ -1094,6 +1095,20 @@ public class ImsPhoneConnection extends Connection implements
        }
    }

    /**
     * Get the corresponding EmergencyNumberTracker associated with the connection.
     * @return the EmergencyNumberTracker
     */
    public EmergencyNumberTracker getEmergencyNumberTracker() {
        if (mOwner != null) {
            Phone phone = mOwner.getPhone();
            if (phone != null) {
                return phone.getEmergencyNumberTracker();
            }
        }
        return null;
    }

    public boolean hasRttTextStream() {
        return mRttTextStream != null;
    }
Loading