Message.java revision a831b2f1ba6d3c18d5e54563df8bae1f589c4257
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;
203ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereiraimport android.os.Parcel;
213ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereiraimport android.os.Parcelable;
223ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
233ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
243ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereirapublic class Message implements Parcelable {
253ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public long id;
263ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public long serverId;
273ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String uri;
283ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public long conversationId;
293ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String subject;
303ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String snippet;
313ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String from;
323ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String to;
333ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String cc;
343ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String bcc;
353ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String replyTo;
363ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public long dateReceivedMs;
373ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String bodyHtml;
383ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String bodyText;
393ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public boolean embedsExternalResources;
403ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String refMessageId;
413ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public int draftType;
423ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public boolean appendRefMessageContent;
433ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public boolean hasAttachments;
443ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String attachmentListUri;
453ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public long messageFlags;
46f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira    public String joinedAttachmentInfos;
477ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira    public String saveUri;
487ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira    public String sendUri;
493ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
503ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    @Override
513ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public int describeContents() {
523ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        return 0;
533ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    }
543ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
553ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    @Override
563ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public void writeToParcel(Parcel dest, int flags) {
573ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeLong(id);
583ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeLong(serverId);
593ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(uri);
603ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeLong(conversationId);
613ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(subject);
623ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(snippet);
633ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(from);
643ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(to);
653ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(cc);
663ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(bcc);
673ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(replyTo);
683ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeLong(dateReceivedMs);
693ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(bodyHtml);
703ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(bodyText);
713ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeInt(embedsExternalResources ? 1 : 0);
723ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(refMessageId);
733ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeInt(draftType);
743ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeInt(appendRefMessageContent ? 1 : 0);
753ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeInt(hasAttachments ? 1 : 0);
763ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeString(attachmentListUri);
773ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dest.writeLong(messageFlags);
78f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira        dest.writeString(joinedAttachmentInfos);
797ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira        dest.writeString(saveUri);
807ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira        dest.writeString(sendUri);
81f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira    }
82f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira
83f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira    public Message() {
843ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    }
853ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
863ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    private Message(Parcel in) {
873ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        id = in.readLong();
883ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        serverId = in.readLong();
893ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        uri = in.readString();
903ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        conversationId = in.readLong();
913ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        subject = in.readString();
923ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        snippet = in.readString();
933ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        from = in.readString();
943ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        to = in.readString();
953ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        cc = in.readString();
963ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        bcc = in.readString();
973ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        replyTo = in.readString();
983ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        dateReceivedMs = in.readLong();
993ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        bodyHtml = in.readString();
1003ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        bodyText = in.readString();
1013ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        embedsExternalResources = in.readInt() != 0;
1023ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        refMessageId = in.readString();
1033ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        draftType = in.readInt();
1043ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        appendRefMessageContent = in.readInt() != 0;
1053ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        hasAttachments = in.readInt() != 0;
1063ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        attachmentListUri = in.readString();
1073ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        messageFlags = in.readLong();
108f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira        joinedAttachmentInfos = in.readString();
1097ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira        saveUri = in.readString();
1107ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira        sendUri = in.readString();
1113ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    }
1123ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
1133ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    @Override
1143ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public String toString() {
1153ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        return "[message id=" + id + "]";
1163ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    }
1173ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
1183ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    public static final Creator<Message> CREATOR = new Creator<Message>() {
1193ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
1203ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        @Override
1213ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        public Message createFromParcel(Parcel source) {
1223ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            return new Message(source);
1233ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        }
1243ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
1253ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        @Override
1263ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        public Message[] newArray(int size) {
1273ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            return new Message[size];
1283ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        }
1293ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
1303ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    };
1313ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira
132a831b2f1ba6d3c18d5e54563df8bae1f589c4257Mindy Pereira    public Message(Cursor cursor) {
1333ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        if (cursor != null) {
1343ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            id = cursor.getLong(UIProvider.MESSAGE_ID_COLUMN);
1353ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            serverId = cursor.getLong(UIProvider.MESSAGE_SERVER_ID_COLUMN);
1363ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            uri = cursor.getString(UIProvider.MESSAGE_URI_COLUMN);
1373ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            conversationId = cursor.getLong(UIProvider.MESSAGE_CONVERSATION_ID_COLUMN);
1383ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            subject = cursor.getString(UIProvider.MESSAGE_SUBJECT_COLUMN);
1393ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            snippet = cursor.getString(UIProvider.MESSAGE_SNIPPET_COLUMN);
1403ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            from = cursor.getString(UIProvider.MESSAGE_FROM_COLUMN);
1413ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            to = cursor.getString(UIProvider.MESSAGE_TO_COLUMN);
1423ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            cc = cursor.getString(UIProvider.MESSAGE_CC_COLUMN);
1433ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            bcc = cursor.getString(UIProvider.MESSAGE_BCC_COLUMN);
1443ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            replyTo = cursor.getString(UIProvider.MESSAGE_REPLY_TO_COLUMN);
1453ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            dateReceivedMs = cursor.getLong(UIProvider.MESSAGE_DATE_RECEIVED_MS_COLUMN);
1463ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            bodyHtml = cursor.getString(UIProvider.MESSAGE_BODY_HTML_COLUMN);
1473ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            bodyText = cursor.getString(UIProvider.MESSAGE_BODY_TEXT_COLUMN);
1483ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            embedsExternalResources = cursor
1493ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira                    .getInt(UIProvider.MESSAGE_EMBEDS_EXTERNAL_RESOURCES_COLUMN) != 0;
1503ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            refMessageId = cursor.getString(UIProvider.MESSAGE_REF_MESSAGE_ID_COLUMN);
1513ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            draftType = cursor.getInt(UIProvider.MESSAGE_DRAFT_TYPE_COLUMN);
1523ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            appendRefMessageContent = cursor
1533ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira                    .getInt(UIProvider.MESSAGE_APPEND_REF_MESSAGE_CONTENT_COLUMN) != 0;
1543ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            hasAttachments = cursor.getInt(UIProvider.MESSAGE_HAS_ATTACHMENTS_COLUMN) != 0;
1553ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            attachmentListUri = cursor.getString(UIProvider.MESSAGE_ATTACHMENT_LIST_URI_COLUMN);
1563ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira            messageFlags = cursor.getLong(UIProvider.MESSAGE_FLAGS_COLUMN);
157f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira            joinedAttachmentInfos = cursor
158f944e9655562e321aff52fe5f437e1d2fa2950a9Mindy Pereira                    .getString(UIProvider.MESSAGE_JOINED_ATTACHMENT_INFOS_COLUMN);
1597ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira            saveUri = cursor
1607ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira                    .getString(UIProvider.MESSAGE_SAVE_URI_COLUMN);
1617ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira            sendUri = cursor
1627ed1c1122c5677344a1ce176be2c03972fed26f5Mindy Pereira                    .getString(UIProvider.MESSAGE_SEND_URI_COLUMN);
1633ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira        }
1643ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira    }
1653ce64e7ceb6246130342385d91550bcf33b31cc8Mindy Pereira}
166