public void add(Message message, Map<String, String> map) { messages.add(message); mapList.add(map); String dateHeader = Headers.get(message, Headers.DATE); if (dateHeader != null) { try { final long date = Long.parseLong(dateHeader); if (date > maxDate) { maxDate = date; } } catch (NumberFormatException ignored) { } } }
public DataType getDataType(Message message) throws MessagingException { final String dataTypeHeader = Headers.get(message, Headers.DATATYPE); if (dataTypeHeader == null) { throw new MessagingException("Datatype header is missing"); } try { return DataType.valueOf(dataTypeHeader.toUpperCase(Locale.ENGLISH)); } catch (IllegalArgumentException e) { throw new MessagingException("Invalid header: "+dataTypeHeader, e); } }
final String address = Headers.get(message, Headers.ADDRESS); values.put(Telephony.TextBasedSmsColumns.BODY, body); values.put(Telephony.TextBasedSmsColumns.ADDRESS, address); values.put(Telephony.TextBasedSmsColumns.TYPE, Headers.get(message, Headers.TYPE)); values.put(Telephony.TextBasedSmsColumns.PROTOCOL, Headers.get(message, Headers.PROTOCOL)); values.put(Telephony.TextBasedSmsColumns.SERVICE_CENTER, Headers.get(message, Headers.SERVICE_CENTER)); values.put(Telephony.TextBasedSmsColumns.DATE, Headers.get(message, Headers.DATE)); values.put(Telephony.TextBasedSmsColumns.STATUS, Headers.get(message, Headers.STATUS)); values.put(Telephony.TextBasedSmsColumns.THREAD_ID, threadHelper.getThreadId(context, address)); values.put(Telephony.TextBasedSmsColumns.READ, markAsReadOnRestore ? "1" : Headers.get(message, Headers.READ)); break; case CALLLOG: values.put(CallLog.Calls.NUMBER, Headers.get(message, Headers.ADDRESS)); values.put(CallLog.Calls.TYPE, Integer.valueOf(Headers.get(message, Headers.TYPE))); values.put(CallLog.Calls.DATE, Headers.get(message, Headers.DATE)); values.put(CallLog.Calls.DURATION, Long.valueOf(Headers.get(message, Headers.DURATION))); values.put(CallLog.Calls.NEW, 0); PersonRecord record = personLookup.lookupPerson(Headers.get(message, Headers.ADDRESS)); if (!record.isUnknown()) { values.put(CallLog.Calls.CACHED_NAME, record.getName());
@Test public void testShouldGenerateCallLogHeaders() throws Exception { Message message = new MimeMessage(); Map<String, String> map = new HashMap<String, String>(); Date sent = new Date(); PersonRecord person = new PersonRecord(0, null, null, null); map.put(CallLog.Calls._ID, "id"); map.put(CallLog.Calls.TYPE, "type"); map.put(CallLog.Calls.DURATION, "duration"); map.put(CallLog.Calls.DATE, "date"); generator.setHeaders(message, map, DataType.CALLLOG, "1234", person, sent, 0); assertThat(get(message, Headers.ID)).isEqualTo("id"); assertThat(get(message, Headers.TYPE)).isEqualTo("type"); assertThat(get(message, Headers.DURATION)).isEqualTo("duration"); assertThat(get(message, Headers.DATE)).isEqualTo("date"); }
@Test public void testShouldGenerateMMSHeaders() throws Exception { Message message = new MimeMessage(); Map<String, String> map = new HashMap<String, String>(); Date sent = new Date(); PersonRecord person = new PersonRecord(0, null, null, null); map.put(Telephony.BaseMmsColumns._ID, "id"); map.put(Telephony.BaseMmsColumns.MESSAGE_TYPE, "type"); map.put(Telephony.BaseMmsColumns.THREAD_ID, "tid"); map.put(Telephony.BaseMmsColumns.DATE, "date"); map.put(Telephony.BaseMmsColumns.READ, "read"); generator.setHeaders(message, map, DataType.MMS, "1234", person, sent, 0); assertThat(get(message, Headers.ID)).isEqualTo("id"); assertThat(get(message, Headers.TYPE)).isEqualTo("type"); assertThat(get(message, Headers.THREAD_ID)).isEqualTo("tid"); assertThat(get(message, Headers.READ)).isEqualTo("read"); assertThat(get(message, Headers.DATE)).isEqualTo("date"); }
@Test public void testShouldGenerateSMSHeaders() throws Exception { Message message = new MimeMessage(); Map<String, String> map = new HashMap<String, String>(); Date sent = new Date(); PersonRecord person = new PersonRecord(0, null, null, null); map.put(android.provider.BaseColumns._ID, "someId"); map.put(Telephony.TextBasedSmsColumns.TYPE, "type"); map.put(Telephony.TextBasedSmsColumns.DATE, "date"); map.put(Telephony.TextBasedSmsColumns.THREAD_ID, "tid"); map.put(Telephony.TextBasedSmsColumns.READ, "read"); map.put(Telephony.TextBasedSmsColumns.STATUS, "status"); map.put(Telephony.TextBasedSmsColumns.PROTOCOL, "protocol"); map.put(Telephony.TextBasedSmsColumns.SERVICE_CENTER, "svc"); generator.setHeaders(message, map, DataType.SMS, "1234", person, sent, 0); assertThat(get(message, Headers.ID)).isEqualTo("someId"); assertThat(get(message, Headers.TYPE)).isEqualTo("type"); assertThat(get(message, Headers.DATE)).isEqualTo("date"); assertThat(get(message, Headers.THREAD_ID)).isEqualTo("tid"); assertThat(get(message, Headers.READ)).isEqualTo("read"); assertThat(get(message, Headers.STATUS)).isEqualTo("status"); assertThat(get(message, Headers.PROTOCOL)).isEqualTo("protocol"); assertThat(get(message, Headers.SERVICE_CENTER)).isEqualTo("svc"); }
@Test public void testShouldGenerateStandardHeaders() throws Exception { Message message = new MimeMessage(); Map<String, String> map = new HashMap<String, String>(); Date sent = new Date(); PersonRecord person = new PersonRecord(0, null, null, null); generator.setHeaders(message, map, DataType.SMS, "1234", person, sent, 0); assertThat(get(message, Headers.ADDRESS)).isEqualTo("1234"); assertThat(get(message, Headers.DATATYPE)).isEqualTo("SMS"); assertThat(get(message, Headers.BACKUP_TIME)).isNotEmpty(); assertThat(get(message, Headers.VERSION)).isNotEmpty(); assertThat(message.getMessageId()).contains("sms-backup-plus.local"); assertThat(message.getSentDate()).isEqualTo(sent); assertThat(message.getReferences()).isNotEmpty(); }