Conversation.java revision 732600e38891db139bae02dc91dd0c5b0987e8e9
1732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang/** 2732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * Copyright (c) 2012, Google Inc. 3732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * 4732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * Licensed under the Apache License, Version 2.0 (the "License"); 5732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * you may not use this file except in compliance with the License. 6732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * You may obtain a copy of the License at 7732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * 8732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * http://www.apache.org/licenses/LICENSE-2.0 9732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * 10732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * Unless required by applicable law or agreed to in writing, software 11732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * distributed under the License is distributed on an "AS IS" BASIS, 12732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * See the License for the specific language governing permissions and 14732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang * limitations under the License. 15732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang */ 16732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 17732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangpackage com.android.mail.providers; 18732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 19732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangimport android.database.Cursor; 20732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangimport android.net.Uri; 21732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangimport android.os.Parcel; 22732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangimport android.os.Parcelable; 23732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 24732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangpublic class Conversation implements Parcelable { 25732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 26732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public long id; 27732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public String subject; 28732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public long dateMs; 29732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public String snippet; 30732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public boolean hasAttachments; 31732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public Uri messageListUri; 32732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 33732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang @Override 34732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public int describeContents() { 35732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang return 0; 36732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 37732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 38732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang @Override 39732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public void writeToParcel(Parcel dest, int flags) { 40732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dest.writeLong(id); 41732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dest.writeString(subject); 42732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dest.writeLong(dateMs); 43732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dest.writeString(snippet); 44732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dest.writeByte(hasAttachments ? (byte) 1 : 0); 45732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dest.writeParcelable(messageListUri, flags); 46732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 47732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 48732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang private Conversation(Parcel in) { 49732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang id = in.readLong(); 50732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang subject = in.readString(); 51732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dateMs = in.readLong(); 52732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang snippet = in.readString(); 53732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang hasAttachments = (in.readByte() != 0); 54732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang messageListUri = in.readParcelable(null); 55732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 56732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 57732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang @Override 58732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public String toString() { 59732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang return "[conversation id=" + id + "]"; 60732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 61732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 62732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public static final Creator<Conversation> CREATOR = new Creator<Conversation>() { 63732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 64732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang @Override 65732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public Conversation createFromParcel(Parcel source) { 66732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang return new Conversation(source); 67732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 68732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 69732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang @Override 70732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public Conversation[] newArray(int size) { 71732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang return new Conversation[size]; 72732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 73732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 74732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang }; 75732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 76732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang public static Conversation from(Cursor cursor) { 77732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang return new Conversation(cursor); 78732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 79732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 80732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang private Conversation(Cursor cursor) { 81732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang if (cursor != null) { 82732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang id = cursor.getLong(UIProvider.CONVERSATION_ID_COLUMN); 83732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang dateMs = cursor.getLong(UIProvider.CONVERSATION_DATE_RECEIVED_MS_COLUMN); 84732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang subject = cursor.getString(UIProvider.CONVERSATION_SUBJECT_COLUMN); 85732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang snippet = cursor.getString(UIProvider.CONVERSATION_SNIPPET_COLUMN); 86732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang hasAttachments = cursor 87732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang .getInt(UIProvider.CONVERSATION_HAS_ATTACHMENTS_COLUMN) == 1 ? true : false; 88732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang messageListUri = Uri.parse(cursor 89732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang .getString(UIProvider.CONVERSATION_MESSAGE_LIST_URI_COLUMN)); 90732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 91732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang } 92732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang 93732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang} 94