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

Commit b6a6c2ea authored by Michele Berionne's avatar Michele Berionne
Browse files

Add support for new outgoing SMS metrics

Bug: 160807699
Test: manual testing
Change-Id: I35add3f8ae0b875ac223c1e99a1b44df0b6cf5dc
parent c8b32797
Loading
Loading
Loading
Loading
+57 −1
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ message Atom {
    }

    // Pulled events will start at field 10000.
    // Next: 10087
    // Next: 10088
    oneof pulled {
        WifiBytesTransfer wifi_bytes_transfer = 10000 [(module) = "framework"];
        WifiBytesTransferByFgBg wifi_bytes_transfer_by_fg_bg = 10001 [(module) = "framework"];
@@ -599,6 +599,7 @@ message Atom {
        GeneralExternalStorageAccessStats general_external_storage_access_stats =
            10085 [(module) = "mediaprovider"];
        IncomingSms incoming_sms = 10086 [(module) = "telephony"];
        OutgoingSms outgoing_sms = 10087 [(module) = "telephony"];
    }

    // DO NOT USE field numbers above 100,000 in AOSP.
@@ -10516,6 +10517,61 @@ message IncomingSms {
    optional int64 message_id = 14;
}

/**
 * Pulls information for a single outgoing SMS.
 *
 * Each pull creates multiple atoms, one for each SMS. The sequence is randomized when pulled.
 *
 * Pulled from:
 *   frameworks/opt/telephony/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
 */
message OutgoingSms {
    // Format of the SMS (3GPP or 3GPP2).
    optional android.telephony.SmsFormatEnum sms_format = 1;

    // Technology of the SMS (CS or IMS).
    optional android.telephony.SmsTechEnum sms_tech = 2;

    // Radio access technology (RAT) used for the SMS. It can be IWLAN in case of IMS.
    optional android.telephony.NetworkTypeEnum rat = 3;

    // Result of the SMS sending.
    optional android.telephony.SmsSendResultEnum send_result = 4;

    // Error code
    // For IMS technology, see @SmsManager.Result in
    // http://cs/android/frameworks/base/telephony/java/android/telephony/SmsManager.java
    // For CS technology:
    //  - GSM format: see GsmSmsErrorCode (3GPP 27.005 clause 3.2.5)
    //  - CDMA format: see CdmaSmsErrorCode (3GPP2 N.S0005 (IS-41-C) Table 171)
    optional int32 error_code = 5;

    // Whether the SMS was sent while roaming.
    optional bool is_roaming = 6;

    // Whether the default SMS application generated the SMS (regardless of which application).
    optional bool is_from_default_app = 7;

    // Index of the SIM is used, 0 for single-SIM devices.
    optional int32 sim_slot_index = 8;

    // Whether the device was in multi-SIM mode (with multiple active SIM profiles).
    optional bool is_multi_sim = 9;

    // Whether the message was sent with an eSIM profile.
    optional bool is_esim = 10;

    // Carrier ID of the SIM card used for the SMS.
    // See https://source.android.com/devices/tech/config/carrierid.
    optional int32 carrier_id = 11;

    // Random message ID.
    optional int64 message_id = 12;

    // Retry count: 0 for the first attempt and then increasing for each attempt.
    optional int32 retry_id = 13;
}

/**
 * Logs gnss stats from location service provider
 *
+15 −1
Original line number Diff line number Diff line
@@ -199,10 +199,24 @@ enum SmsTypeEnum {
    SMS_TYPE_WAP_PUSH = 4;
}

// SMS errors
// Incoming SMS errors
enum SmsIncomingErrorEnum {
    SMS_SUCCESS = 0;
    SMS_ERROR_GENERIC = 1;
    SMS_ERROR_NO_MEMORY = 2;
    SMS_ERROR_NOT_SUPPORTED = 3;
}

// Outgoing SMS results
enum SmsSendResultEnum {
    // Unknown error
    SMS_SEND_RESULT_UNKNOWN = 0;
    // Success
    SMS_SEND_RESULT_SUCCESS = 1;
    // Permanent error
    SMS_SEND_RESULT_ERROR = 2;
    // Temporary error, retry
    SMS_SEND_RESULT_ERROR_RETRY = 3;
    // Error over IMS, retry on CS
    SMS_SEND_RESULT_ERROR_FALLBACK = 4;
}