Message.java revision cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36
13ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira/** 23ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * Copyright (c) 2012, Google Inc. 33ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * 43ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * Licensed under the Apache License, Version 2.0 (the "License"); 53ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * you may not use this file except in compliance with the License. 63ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * You may obtain a copy of the License at 73ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * 83ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * http://www.apache.org/licenses/LICENSE-2.0 93ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * 103ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * Unless required by applicable law or agreed to in writing, software 113ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * distributed under the License is distributed on an "AS IS" BASIS, 123ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * See the License for the specific language governing permissions and 143ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira * limitations under the License. 153ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira */ 163ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 173ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereirapackage com.android.mail.providers; 183ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 193ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereiraimport android.database.Cursor; 20cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereiraimport android.net.Uri; 213ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereiraimport android.os.Parcel; 223ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereiraimport android.os.Parcelable; 23cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereiraimport android.text.TextUtils; 243ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 253ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 263ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereirapublic class Message implements Parcelable { 273ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public long id; 283ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public long serverId; 29cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira public Uri uri; 303ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public long conversationId; 313ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String subject; 323ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String snippet; 333ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String from; 343ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String to; 353ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String cc; 363ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String bcc; 373ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String replyTo; 383ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public long dateReceivedMs; 393ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String bodyHtml; 403ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String bodyText; 413ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public boolean embedsExternalResources; 423ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String refMessageId; 433ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public int draftType; 443ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public boolean appendRefMessageContent; 453ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public boolean hasAttachments; 46cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira public Uri attachmentListUri; 473ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public long messageFlags; 48f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira public String joinedAttachmentInfos; 497ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira public String saveUri; 507ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira public String sendUri; 513ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 523ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira @Override 533ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public int describeContents() { 543ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira return 0; 553ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 563ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 573ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira @Override 583ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public void writeToParcel(Parcel dest, int flags) { 593ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeLong(id); 603ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeLong(serverId); 61cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira dest.writeParcelable(uri, 0); 623ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeLong(conversationId); 633ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(subject); 643ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(snippet); 653ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(from); 663ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(to); 673ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(cc); 683ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(bcc); 693ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(replyTo); 703ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeLong(dateReceivedMs); 713ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(bodyHtml); 723ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(bodyText); 733ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeInt(embedsExternalResources ? 1 : 0); 743ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeString(refMessageId); 753ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeInt(draftType); 763ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeInt(appendRefMessageContent ? 1 : 0); 773ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeInt(hasAttachments ? 1 : 0); 78cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira dest.writeParcelable(attachmentListUri, 0); 793ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dest.writeLong(messageFlags); 80f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira dest.writeString(joinedAttachmentInfos); 817ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira dest.writeString(saveUri); 827ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira dest.writeString(sendUri); 83f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira } 84f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira 85f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira public Message() { 863ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 873ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 883ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira private Message(Parcel in) { 893ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira id = in.readLong(); 903ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira serverId = in.readLong(); 91cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira uri = in.readParcelable(null); 923ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira conversationId = in.readLong(); 933ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira subject = in.readString(); 943ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira snippet = in.readString(); 953ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira from = in.readString(); 963ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira to = in.readString(); 973ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira cc = in.readString(); 983ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira bcc = in.readString(); 993ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira replyTo = in.readString(); 1003ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dateReceivedMs = in.readLong(); 1013ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira bodyHtml = in.readString(); 1023ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira bodyText = in.readString(); 1033ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira embedsExternalResources = in.readInt() != 0; 1043ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira refMessageId = in.readString(); 1053ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira draftType = in.readInt(); 1063ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira appendRefMessageContent = in.readInt() != 0; 1073ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira hasAttachments = in.readInt() != 0; 108cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira attachmentListUri = in.readParcelable(null); 1093ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira messageFlags = in.readLong(); 110f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira joinedAttachmentInfos = in.readString(); 1117ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira saveUri = in.readString(); 1127ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira sendUri = in.readString(); 1133ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 1143ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 1153ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira @Override 1163ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public String toString() { 1173ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira return "[message id=" + id + "]"; 1183ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 1193ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 1203ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public static final Creator<Message> CREATOR = new Creator<Message>() { 1213ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 1223ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira @Override 1233ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public Message createFromParcel(Parcel source) { 1243ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira return new Message(source); 1253ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 1263ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 1273ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira @Override 1283ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira public Message[] newArray(int size) { 1293ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira return new Message[size]; 1303ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 1313ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 1323ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira }; 1333ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira 134a831b2f1ba6d3c18d5e54563df8bae1f589c4257Mindy Pereira public Message(Cursor cursor) { 1353ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira if (cursor != null) { 1363ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira id = cursor.getLong(UIProvider.MESSAGE_ID_COLUMN); 1373ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira serverId = cursor.getLong(UIProvider.MESSAGE_SERVER_ID_COLUMN); 138cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira String message = cursor.getString(UIProvider.MESSAGE_URI_COLUMN); 139cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira uri = !TextUtils.isEmpty(message) ? Uri.parse(message) : null; 1403ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira conversationId = cursor.getLong(UIProvider.MESSAGE_CONVERSATION_ID_COLUMN); 1413ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira subject = cursor.getString(UIProvider.MESSAGE_SUBJECT_COLUMN); 1423ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira snippet = cursor.getString(UIProvider.MESSAGE_SNIPPET_COLUMN); 1433ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira from = cursor.getString(UIProvider.MESSAGE_FROM_COLUMN); 1443ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira to = cursor.getString(UIProvider.MESSAGE_TO_COLUMN); 1453ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira cc = cursor.getString(UIProvider.MESSAGE_CC_COLUMN); 1463ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira bcc = cursor.getString(UIProvider.MESSAGE_BCC_COLUMN); 1473ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira replyTo = cursor.getString(UIProvider.MESSAGE_REPLY_TO_COLUMN); 1483ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira dateReceivedMs = cursor.getLong(UIProvider.MESSAGE_DATE_RECEIVED_MS_COLUMN); 1493ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira bodyHtml = cursor.getString(UIProvider.MESSAGE_BODY_HTML_COLUMN); 1503ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira bodyText = cursor.getString(UIProvider.MESSAGE_BODY_TEXT_COLUMN); 1513ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira embedsExternalResources = cursor 1523ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira .getInt(UIProvider.MESSAGE_EMBEDS_EXTERNAL_RESOURCES_COLUMN) != 0; 1533ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira refMessageId = cursor.getString(UIProvider.MESSAGE_REF_MESSAGE_ID_COLUMN); 1543ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira draftType = cursor.getInt(UIProvider.MESSAGE_DRAFT_TYPE_COLUMN); 1553ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira appendRefMessageContent = cursor 1563ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira .getInt(UIProvider.MESSAGE_APPEND_REF_MESSAGE_CONTENT_COLUMN) != 0; 1573ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira hasAttachments = cursor.getInt(UIProvider.MESSAGE_HAS_ATTACHMENTS_COLUMN) != 0; 158cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira attachmentListUri = hasAttachments ? Uri.parse(cursor 159cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira .getString(UIProvider.MESSAGE_ATTACHMENT_LIST_URI_COLUMN)) : null; 1603ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira messageFlags = cursor.getLong(UIProvider.MESSAGE_FLAGS_COLUMN); 161f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira joinedAttachmentInfos = cursor 162f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira .getString(UIProvider.MESSAGE_JOINED_ATTACHMENT_INFOS_COLUMN); 1637ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira saveUri = cursor 1647ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira .getString(UIProvider.MESSAGE_SAVE_URI_COLUMN); 1657ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira sendUri = cursor 1667ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira .getString(UIProvider.MESSAGE_SEND_URI_COLUMN); 1673ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 1683ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira } 1693ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira} 170