Conversation.java revision 4db59c58c0af9f44d95a12dbe21322bed58cc518
1/** 2 * Copyright (c) 2012, Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.mail.providers; 18 19import android.database.Cursor; 20import android.net.Uri; 21import android.os.Parcel; 22import android.os.Parcelable; 23 24public class Conversation implements Parcelable { 25 26 public long id; 27 public String subject; 28 public long dateMs; 29 public String snippet; 30 public boolean hasAttachments; 31 public Uri messageListUri; 32 public String senders; 33 public int numMessages; 34 public int numDrafts; 35 public int sendingState; 36 public int priority; 37 38 @Override 39 public int describeContents() { 40 return 0; 41 } 42 43 @Override 44 public void writeToParcel(Parcel dest, int flags) { 45 dest.writeLong(id); 46 dest.writeString(subject); 47 dest.writeLong(dateMs); 48 dest.writeString(snippet); 49 dest.writeByte(hasAttachments ? (byte) 1 : 0); 50 dest.writeParcelable(messageListUri, flags); 51 dest.writeString(senders); 52 dest.writeInt(numMessages); 53 dest.writeInt(numDrafts); 54 dest.writeInt(sendingState); 55 dest.writeInt(priority); 56 } 57 58 private Conversation(Parcel in) { 59 id = in.readLong(); 60 subject = in.readString(); 61 dateMs = in.readLong(); 62 snippet = in.readString(); 63 hasAttachments = (in.readByte() != 0); 64 messageListUri = in.readParcelable(null); 65 senders = in.readString(); 66 numMessages = in.readInt(); 67 numDrafts = in.readInt(); 68 sendingState = in.readInt(); 69 priority = in.readInt(); 70 } 71 72 @Override 73 public String toString() { 74 return "[conversation id=" + id + "]"; 75 } 76 77 public static final Creator<Conversation> CREATOR = new Creator<Conversation>() { 78 79 @Override 80 public Conversation createFromParcel(Parcel source) { 81 return new Conversation(source); 82 } 83 84 @Override 85 public Conversation[] newArray(int size) { 86 return new Conversation[size]; 87 } 88 89 }; 90 91 public static Conversation from(Cursor cursor) { 92 return new Conversation(cursor); 93 } 94 95 private Conversation(Cursor cursor) { 96 if (cursor != null) { 97 id = cursor.getLong(UIProvider.CONVERSATION_ID_COLUMN); 98 dateMs = cursor.getLong(UIProvider.CONVERSATION_DATE_RECEIVED_MS_COLUMN); 99 subject = cursor.getString(UIProvider.CONVERSATION_SUBJECT_COLUMN); 100 snippet = cursor.getString(UIProvider.CONVERSATION_SNIPPET_COLUMN); 101 hasAttachments = cursor 102 .getInt(UIProvider.CONVERSATION_HAS_ATTACHMENTS_COLUMN) == 1 ? true : false; 103 messageListUri = Uri.parse(cursor 104 .getString(UIProvider.CONVERSATION_MESSAGE_LIST_URI_COLUMN)); 105 senders = cursor.getString(UIProvider.CONVERSATION_SENDER_INFO_COLUMN); 106 numMessages = cursor.getInt(UIProvider.CONVERSATION_NUM_MESSAGES_COLUMN); 107 numDrafts = cursor.getInt(UIProvider.CONVERSATION_NUM_DRAFTS_COLUMN); 108 sendingState = cursor.getInt(UIProvider.CONVERSATION_SENDING_STATE_COLUMN); 109 priority = cursor.getInt(UIProvider.CONVERSATION_PRIORITY_COLUMN); 110 } 111 } 112 113} 114