Conversation.java revision 92939fc7b40a56e17fb0d2fde987133ca1614e29
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;
235c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereiraimport android.text.TextUtils;
24732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
25732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huangpublic class Conversation implements Parcelable {
26f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank    public static final int NO_POSITION = -1;
27732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
28732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public long id;
29c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank    public Uri uri;
30732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public String subject;
31732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public long dateMs;
32732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public String snippet;
33732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public boolean hasAttachments;
34cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira    public Uri messageListUri;
354db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira    public String senders;
364db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira    public int numMessages;
374db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira    public int numDrafts;
384db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira    public int sendingState;
394db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira    public int priority;
40c8a994227b9c686d88ee05840544162711a85712Marc Blank    public boolean read;
41c8a994227b9c686d88ee05840544162711a85712Marc Blank    public boolean starred;
42ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    public String folderList;
43cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira    public String rawFolders;
4422657529437c160dec072115c5982409306c1313Mindy Pereira    public int convFlags;
4522657529437c160dec072115c5982409306c1313Mindy Pereira    public int personalLevel;
46863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira    public boolean spam;
47863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira    public boolean muted;
4892939fc7b40a56e17fb0d2fde987133ca1614e29Marc Blank    public int color;
4922657529437c160dec072115c5982409306c1313Mindy Pereira
50ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // Used within the UI to indicate the adapter position of this conversation
51f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank    public transient int position;
52ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // Used within the UI to indicate that a Conversation should be removed from the
53ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // ConversationCursor when executing an update, e.g. the the Conversation is no longer
54ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // in the ConversationList for the current folder, that is it's now in some other folder(s)
55ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    public transient boolean localDeleteOnUpdate;
56732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
57e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // Constituents of convFlags below
58e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // Flag indicating that the item has been deleted, but will continue being shown in the list
59e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // Delete/Archive of a mostly-dead item will NOT propagate the delete/archive, but WILL remove
60e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // the item from the cursor
61e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public static final int FLAG_MOSTLY_DEAD = 1 << 0;
62e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank
63732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    @Override
64732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public int describeContents() {
65732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        return 0;
66732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
67732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
68732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    @Override
69732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public void writeToParcel(Parcel dest, int flags) {
70732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeLong(id);
71c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank        dest.writeParcelable(uri, flags);
72732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeString(subject);
73732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeLong(dateMs);
74732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeString(snippet);
75732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeByte(hasAttachments ? (byte) 1 : 0);
76cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira        dest.writeParcelable(messageListUri, 0);
774db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeString(senders);
784db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(numMessages);
794db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(numDrafts);
804db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(sendingState);
814db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(priority);
82c8a994227b9c686d88ee05840544162711a85712Marc Blank        dest.writeByte(read ? (byte) 1 : 0);
83c8a994227b9c686d88ee05840544162711a85712Marc Blank        dest.writeByte(starred ? (byte) 1 : 0);
84ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank        dest.writeString(folderList);
85cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira        dest.writeString(rawFolders);
8622657529437c160dec072115c5982409306c1313Mindy Pereira        dest.writeInt(convFlags);
8722657529437c160dec072115c5982409306c1313Mindy Pereira        dest.writeInt(personalLevel);
88863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        dest.writeInt(spam ? 1 : 0);
89863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        dest.writeInt(muted ? 1 : 0);
9092939fc7b40a56e17fb0d2fde987133ca1614e29Marc Blank        dest.writeInt(color);
91732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
92732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
93732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    private Conversation(Parcel in) {
94732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        id = in.readLong();
95c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank        uri = in.readParcelable(null);
96732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        subject = in.readString();
97732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dateMs = in.readLong();
98732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        snippet = in.readString();
99732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        hasAttachments = (in.readByte() != 0);
100cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira        messageListUri = in.readParcelable(null);
1014db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        senders = in.readString();
1024db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        numMessages = in.readInt();
1034db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        numDrafts = in.readInt();
1044db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        sendingState = in.readInt();
1054db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        priority = in.readInt();
106c8a994227b9c686d88ee05840544162711a85712Marc Blank        read = (in.readByte() != 0);
107c8a994227b9c686d88ee05840544162711a85712Marc Blank        starred = (in.readByte() != 0);
108ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank        folderList = in.readString();
109cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira        rawFolders = in.readString();
11022657529437c160dec072115c5982409306c1313Mindy Pereira        convFlags = in.readInt();
11122657529437c160dec072115c5982409306c1313Mindy Pereira        personalLevel = in.readInt();
112863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        spam = in.readInt() != 0;
113863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        muted = in.readInt() != 0;
11492939fc7b40a56e17fb0d2fde987133ca1614e29Marc Blank        color = in.readInt();
115f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank        position = NO_POSITION;
116ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank        localDeleteOnUpdate = false;
117732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
118732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
119732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    @Override
120732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public String toString() {
121732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        return "[conversation id=" + id + "]";
122732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
123732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
124732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public static final Creator<Conversation> CREATOR = new Creator<Conversation>() {
125732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
126732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        @Override
127732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        public Conversation createFromParcel(Parcel source) {
128732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            return new Conversation(source);
129732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        }
130732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
131732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        @Override
132732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        public Conversation[] newArray(int size) {
133732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            return new Conversation[size];
134732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        }
135732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
136732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    };
137732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
138acf6039a23382f18c35f6b487d90d53cb67b5858Mindy Pereira    public static final Uri MOVE_CONVERSATIONS_URI = Uri.parse("content://moveconversations");
139acf6039a23382f18c35f6b487d90d53cb67b5858Mindy Pereira
140a831b2f1ba6d3c18d5e54563df8bae1f589c4257Mindy Pereira    public Conversation(Cursor cursor) {
141732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        if (cursor != null) {
142732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            id = cursor.getLong(UIProvider.CONVERSATION_ID_COLUMN);
143c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank            uri = Uri.parse(cursor.getString(UIProvider.CONVERSATION_URI_COLUMN));
144732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            dateMs = cursor.getLong(UIProvider.CONVERSATION_DATE_RECEIVED_MS_COLUMN);
145732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            subject = cursor.getString(UIProvider.CONVERSATION_SUBJECT_COLUMN);
146374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank            // Don't allow null subject
147374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank            if (subject == null) {
148374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank                subject = "";
149374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank            }
150732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            snippet = cursor.getString(UIProvider.CONVERSATION_SNIPPET_COLUMN);
15187d535fe423d782c3a0343c649330d309976f655Mindy Pereira            hasAttachments = cursor.getInt(UIProvider.CONVERSATION_HAS_ATTACHMENTS_COLUMN) != 0;
1525c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereira            String messageList = cursor
1535c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereira                    .getString(UIProvider.CONVERSATION_MESSAGE_LIST_URI_COLUMN);
1545c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereira            messageListUri = !TextUtils.isEmpty(messageList) ? Uri.parse(messageList) : null;
1554db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            senders = cursor.getString(UIProvider.CONVERSATION_SENDER_INFO_COLUMN);
1564db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            numMessages = cursor.getInt(UIProvider.CONVERSATION_NUM_MESSAGES_COLUMN);
1574db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            numDrafts = cursor.getInt(UIProvider.CONVERSATION_NUM_DRAFTS_COLUMN);
1584db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            sendingState = cursor.getInt(UIProvider.CONVERSATION_SENDING_STATE_COLUMN);
1594db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            priority = cursor.getInt(UIProvider.CONVERSATION_PRIORITY_COLUMN);
16087d535fe423d782c3a0343c649330d309976f655Mindy Pereira            read = cursor.getInt(UIProvider.CONVERSATION_READ_COLUMN) != 0;
16187d535fe423d782c3a0343c649330d309976f655Mindy Pereira            starred = cursor.getInt(UIProvider.CONVERSATION_STARRED_COLUMN) != 0;
162ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank            folderList = cursor.getString(UIProvider.CONVERSATION_FOLDER_LIST_COLUMN);
163cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira            rawFolders = cursor.getString(UIProvider.CONVERSATION_RAW_FOLDERS_COLUMN);
16422657529437c160dec072115c5982409306c1313Mindy Pereira            convFlags = cursor.getInt(UIProvider.CONVERSATION_FLAGS_COLUMN);
16522657529437c160dec072115c5982409306c1313Mindy Pereira            personalLevel = cursor.getInt(UIProvider.CONVERSATION_PERSONAL_LEVEL_COLUMN);
166863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            spam = cursor.getInt(UIProvider.CONVERSATION_IS_SPAM_COLUMN) != 0;
167863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            muted = cursor.getInt(UIProvider.CONVERSATION_MUTED_COLUMN) != 0;
16892939fc7b40a56e17fb0d2fde987133ca1614e29Marc Blank            color = cursor.getInt(UIProvider.CONVERSATION_COLOR_COLUMN);
169f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank            position = NO_POSITION;
170ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank            localDeleteOnUpdate = false;
171732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        }
172732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
173732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
174bf232c3735f65b1a4746943e4a134e59e36f0bdePaul Westbrook    public Conversation() {
175ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook    }
176ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
177863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira    public static Conversation create(long id, Uri uri, String subject, long dateMs,
178863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            String snippet, boolean hasAttachment, Uri messageListUri, String senders,
179863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            int numMessages, int numDrafts, int sendingState, int priority, boolean read,
180863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            boolean starred, String folderList, String rawFolders, int convFlags,
181863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            int personalLevel, boolean spam, boolean muted) {
182ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
183ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        final Conversation conversation = new Conversation();
184ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
185ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.id = id;
186ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.uri = uri;
187ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.subject = subject;
188ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.dateMs = dateMs;
189ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.snippet = snippet;
190ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.hasAttachments = hasAttachment;
191ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.messageListUri = messageListUri;
192ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.senders = senders;
193ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.numMessages = numMessages;
194ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.numDrafts = numDrafts;
195ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.sendingState = sendingState;
196ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.priority = priority;
197ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.read = read;
198ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.starred = starred;
199ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.folderList = folderList;
200ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.rawFolders = rawFolders;
201ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.convFlags = convFlags;
202ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.personalLevel = personalLevel;
203863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        conversation.spam = spam;
204863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        conversation.muted = muted;
20592939fc7b40a56e17fb0d2fde987133ca1614e29Marc Blank        conversation.color = 0;
206ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        return conversation;
207ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook    }
208ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
209e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    @Override
210e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public boolean equals(Object o) {
2113c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank        if (o instanceof Conversation) {
2123c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank            Conversation conv = (Conversation)o;
2133c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank            return conv.uri.equals(uri);
2143c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank        }
2153c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank        return false;
216e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    }
217e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank
218e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    @Override
219e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public int hashCode() {
220e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank        return uri.hashCode();
221e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    }
222e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank
2237f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira    /**
2247f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira     * Get if this conversation is marked as high priority.
2257f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira     */
2267f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira    public boolean isImportant() {
22722657529437c160dec072115c5982409306c1313Mindy Pereira        return priority == UIProvider.ConversationPriority.IMPORTANT;
2287f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira    }
2297f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira
230e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    /**
231e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank     * Get if this conversation is mostly dead
232e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank     */
233e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public boolean isMostlyDead() {
234e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank        return (convFlags & FLAG_MOSTLY_DEAD) != 0;
235e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    }
2361b9efd9beb715927e0db7b138ddbb2925bc2c06fMarc Blank}