Merge "Store subscriber ID / IMSI into telephony database"
diff --git a/TEST_MAPPING b/TEST_MAPPING
new file mode 100644
index 0000000..ee02cd3
--- /dev/null
+++ b/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+ "presubmit": [
+ {
+ "name": "CtsTelephonyProviderTestCases"
+ }
+ ]
+}
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java
index e2e6d10..f217bab 100644
--- a/src/com/android/providers/telephony/SmsProvider.java
+++ b/src/com/android/providers/telephony/SmsProvider.java
@@ -75,7 +75,7 @@
// N.B.: These columns must appear in the same order as the
// calls to add appear in convertIccToSms.
"service_center_address", // getServiceCenterAddress
- "address", // getDisplayOriginatingAddress
+ "address", // getDisplayOriginatingAddress or getRecipientAddress
"message_class", // getMessageClass
"body", // getDisplayMessageBody
"date", // getTimestampMillis
@@ -83,7 +83,7 @@
"index_on_icc", // getIndexOnIcc
"is_status_report", // isStatusReportMessage
"transport_type", // Always "sms".
- "type", // Always MESSAGE_TYPE_ALL.
+ "type", // depend on getStatusOnIcc
"locked", // Always 0 (false).
"error_code", // Always 0
"_id"
@@ -292,19 +292,37 @@
}
private Object[] convertIccToSms(SmsMessage message, int id) {
+ int statusOnIcc = message.getStatusOnIcc();
+ int type = Sms.MESSAGE_TYPE_ALL;
+ switch (statusOnIcc) {
+ case SmsManager.STATUS_ON_ICC_READ:
+ case SmsManager.STATUS_ON_ICC_UNREAD:
+ type = Sms.MESSAGE_TYPE_INBOX;
+ break;
+ case SmsManager.STATUS_ON_ICC_SENT:
+ type = Sms.MESSAGE_TYPE_SENT;
+ break;
+ case SmsManager.STATUS_ON_ICC_UNSENT:
+ type = Sms.MESSAGE_TYPE_OUTBOX;
+ break;
+ }
// 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] = message.getDisplayOriginatingAddress();
+ row[1] =
+ (type == Sms.MESSAGE_TYPE_INBOX)
+ ? message.getDisplayOriginatingAddress()
+ : message.getRecipientAddress();
+
row[2] = String.valueOf(message.getMessageClass());
row[3] = message.getDisplayMessageBody();
row[4] = message.getTimestampMillis();
- row[5] = Sms.STATUS_NONE;
+ row[5] = statusOnIcc;
row[6] = message.getIndexOnIcc();
row[7] = message.isStatusReportMessage();
row[8] = "sms";
- row[9] = TextBasedSmsColumns.MESSAGE_TYPE_ALL;
+ row[9] = type;
row[10] = 0; // locked
row[11] = 0; // error_code
row[12] = id;
@@ -632,7 +650,12 @@
db.insert(TABLE_WORDS, Telephony.MmsSms.WordsTable.INDEXED_TEXT, cv);
}
if (rowID > 0) {
- Uri uri = Uri.withAppendedPath(url, String.valueOf(rowID));
+ Uri uri = null;
+ if (table == TABLE_SMS) {
+ uri = Uri.withAppendedPath(Sms.CONTENT_URI, String.valueOf(rowID));
+ } else {
+ uri = Uri.withAppendedPath(url, String.valueOf(rowID));
+ }
if (Log.isLoggable(TAG, Log.VERBOSE)) {
Log.d(TAG, "insert " + uri + " succeeded");
}