Merge cherrypicks of [4948448, 4948511, 4948299, 4947854, 4947306, 4946150, 4948531, 4946116, 4948532] into pi-qpr1-release
Change-Id: I1686f504c66c0448cf30d915a043328d7063e7d7
diff --git a/proto/src/telephony.proto b/proto/src/telephony.proto
index c4c6a4f..36f1883 100644
--- a/proto/src/telephony.proto
+++ b/proto/src/telephony.proto
@@ -1358,6 +1358,12 @@
// Service category of CB message
optional int32 service_category = 4;
+
+ // Message's serial number
+ optional int32 serial_number = 5;
+
+ // The delivered time (UTC) of the message
+ optional int64 delivered_timestamp_millis = 6;
}
enum CBMessageType {
diff --git a/src/java/com/android/internal/telephony/CellBroadcastHandler.java b/src/java/com/android/internal/telephony/CellBroadcastHandler.java
index 19b7b40..55e0643 100644
--- a/src/java/com/android/internal/telephony/CellBroadcastHandler.java
+++ b/src/java/com/android/internal/telephony/CellBroadcastHandler.java
@@ -88,7 +88,8 @@
TelephonyMetrics metrics = TelephonyMetrics.getInstance();
metrics.writeNewCBSms(mPhone.getPhoneId(), message.getMessageFormat(),
message.getMessagePriority(), message.isCmasMessage(), message.isEtwsMessage(),
- message.getServiceCategory());
+ message.getServiceCategory(), message.getSerialNumber(),
+ System.currentTimeMillis());
Intent intent;
if (message.isEmergencyMessage()) {
diff --git a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
index a390b75..75ea68f 100644
--- a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
+++ b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
@@ -1766,9 +1766,12 @@
* @param isCMAS true if msg is CMAS
* @param isETWS true if msg is ETWS
* @param serviceCategory Service category of CB msg
+ * @param serialNumber Serial number of the message
+ * @param deliveredTimestamp Message's delivered timestamp
*/
public synchronized void writeNewCBSms(int phoneId, int format, int priority, boolean isCMAS,
- boolean isETWS, int serviceCategory) {
+ boolean isETWS, int serviceCategory, int serialNumber,
+ long deliveredTimestamp) {
InProgressSmsSession smsSession = startNewSmsSessionIfNeeded(phoneId);
int type;
@@ -1785,6 +1788,8 @@
cbm.msgPriority = priority + 1;
cbm.msgType = type;
cbm.serviceCategory = serviceCategory;
+ cbm.serialNumber = serialNumber;
+ cbm.deliveredTimestampMillis = deliveredTimestamp;
smsSession.addEvent(new SmsSessionEventBuilder(SmsSession.Event.Type.CB_SMS_RECEIVED)
.setCellBroadcastMessage(cbm)