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