[automerger skipped] Carrier ID table rollout all_sdk_carrier_list_Rollout_20200610 am: e6bb99df75 -s ours
am skip reason: Change-Id Ieb482e6c5284731806acb1391857bcc1999b2f27 with SHA-1 a11bff98a3 is in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/providers/TelephonyProvider/+/11822582
Change-Id: Ie15d89cbbfe0c785f75c53281a718dda302259b7
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/assets/latest_carrier_id/carrier_list.pb b/assets/latest_carrier_id/carrier_list.pb
index 85fe556..7edf27a 100644
--- a/assets/latest_carrier_id/carrier_list.pb
+++ b/assets/latest_carrier_id/carrier_list.pb
Binary files differ
diff --git a/assets/latest_carrier_id/carrier_list.textpb b/assets/latest_carrier_id/carrier_list.textpb
index 6b1143f..52fc821 100644
--- a/assets/latest_carrier_id/carrier_list.textpb
+++ b/assets/latest_carrier_id/carrier_list.textpb
Binary files differ
diff --git a/assets/sdk30_carrier_id/carrier_list.pb b/assets/sdk30_carrier_id/carrier_list.pb
new file mode 100644
index 0000000..a5c1bbf
--- /dev/null
+++ b/assets/sdk30_carrier_id/carrier_list.pb
Binary files differ
diff --git a/assets/sdk30_carrier_id/carrier_list.textpb b/assets/sdk30_carrier_id/carrier_list.textpb
new file mode 100644
index 0000000..50ac074
--- /dev/null
+++ b/assets/sdk30_carrier_id/carrier_list.textpb
Binary files differ
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index 81f732b..6ff16e5 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -353,20 +353,42 @@
type = Sms.MESSAGE_TYPE_OUTBOX;
break;
}
+
+ String address = (type == Sms.MESSAGE_TYPE_INBOX)
+ ? message.getDisplayOriginatingAddress()
+ : message.getRecipientAddress();
+
+ int index = message.getIndexOnIcc();
+ if (address == null) {
+ // The status byte of an EF_SMS record may not be correct. try to read other address
+ // type again.
+ Log.e(TAG, "convertIccToSms: EF_SMS(" + index + ")=> address=null, type=" + type
+ + ", status=" + statusOnIcc + "(may not be correct). fallback to other type.");
+ address = (type == Sms.MESSAGE_TYPE_INBOX)
+ ? message.getRecipientAddress()
+ : message.getDisplayOriginatingAddress();
+
+ if (address != null) {
+ // Rely on actual PDU(address) to set type again.
+ type = (type == Sms.MESSAGE_TYPE_INBOX)
+ ? Sms.MESSAGE_TYPE_SENT
+ : Sms.MESSAGE_TYPE_INBOX;
+ Log.d(TAG, "convertIccToSms: new type=" + type + ", address=xxxxxx");
+ } else {
+ Log.e(TAG, "convertIccToSms: no change");
+ }
+ }
+
// N.B.: These calls must appear in the same order as the
// columns appear in ICC_COLUMNS.
Object[] row = new Object[13];
row[0] = message.getServiceCenterAddress();
- row[1] =
- (type == Sms.MESSAGE_TYPE_INBOX)
- ? message.getDisplayOriginatingAddress()
- : message.getRecipientAddress();
-
+ row[1] = address;
row[2] = String.valueOf(message.getMessageClass());
row[3] = message.getDisplayMessageBody();
row[4] = message.getTimestampMillis();
row[5] = statusOnIcc;
- row[6] = message.getIndexOnIcc();
+ row[6] = index;
row[7] = message.isStatusReportMessage();
row[8] = "sms";
row[9] = type;
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 4966e5a..7cc518a 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -2010,7 +2010,7 @@
int columnIndex = c.getColumnIndex(key);
if (columnIndex != -1) {
String fromCursor = c.getString(columnIndex);
- if (!TextUtils.isEmpty(fromCursor)) {
+ if (fromCursor != null) {
cv.put(key, fromCursor);
}
}