Conversation.java revision 3c9bcef43b4f103697034abbf2eab99111e8d987
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;
4822657529437c160dec072115c5982409306c1313Mindy Pereira
49ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // Used within the UI to indicate the adapter position of this conversation
50f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank    public transient int position;
51ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // Used within the UI to indicate that a Conversation should be removed from the
52ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // ConversationCursor when executing an update, e.g. the the Conversation is no longer
53ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    // in the ConversationList for the current folder, that is it's now in some other folder(s)
54ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank    public transient boolean localDeleteOnUpdate;
55732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
56e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // Constituents of convFlags below
57e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // Flag indicating that the item has been deleted, but will continue being shown in the list
58e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // Delete/Archive of a mostly-dead item will NOT propagate the delete/archive, but WILL remove
59e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    // the item from the cursor
60e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public static final int FLAG_MOSTLY_DEAD = 1 << 0;
61e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank
62732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    @Override
63732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public int describeContents() {
64732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        return 0;
65732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
66732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
67732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    @Override
68732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public void writeToParcel(Parcel dest, int flags) {
69732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeLong(id);
70c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank        dest.writeParcelable(uri, flags);
71732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeString(subject);
72732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeLong(dateMs);
73732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeString(snippet);
74732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dest.writeByte(hasAttachments ? (byte) 1 : 0);
75cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira        dest.writeParcelable(messageListUri, 0);
764db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeString(senders);
774db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(numMessages);
784db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(numDrafts);
794db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(sendingState);
804db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        dest.writeInt(priority);
81c8a994227b9c686d88ee05840544162711a85712Marc Blank        dest.writeByte(read ? (byte) 1 : 0);
82c8a994227b9c686d88ee05840544162711a85712Marc Blank        dest.writeByte(starred ? (byte) 1 : 0);
83ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank        dest.writeString(folderList);
84cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira        dest.writeString(rawFolders);
8522657529437c160dec072115c5982409306c1313Mindy Pereira        dest.writeInt(convFlags);
8622657529437c160dec072115c5982409306c1313Mindy Pereira        dest.writeInt(personalLevel);
87863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        dest.writeInt(spam ? 1 : 0);
88863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        dest.writeInt(muted ? 1 : 0);
89732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
90732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
91732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    private Conversation(Parcel in) {
92732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        id = in.readLong();
93c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank        uri = in.readParcelable(null);
94732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        subject = in.readString();
95732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        dateMs = in.readLong();
96732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        snippet = in.readString();
97732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        hasAttachments = (in.readByte() != 0);
98cfb7f33ff8ef9dc60b9143af32de64c7a3d71f36Mindy Pereira        messageListUri = in.readParcelable(null);
994db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        senders = in.readString();
1004db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        numMessages = in.readInt();
1014db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        numDrafts = in.readInt();
1024db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        sendingState = in.readInt();
1034db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira        priority = in.readInt();
104c8a994227b9c686d88ee05840544162711a85712Marc Blank        read = (in.readByte() != 0);
105c8a994227b9c686d88ee05840544162711a85712Marc Blank        starred = (in.readByte() != 0);
106ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank        folderList = in.readString();
107cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira        rawFolders = in.readString();
10822657529437c160dec072115c5982409306c1313Mindy Pereira        convFlags = in.readInt();
10922657529437c160dec072115c5982409306c1313Mindy Pereira        personalLevel = in.readInt();
110863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        spam = in.readInt() != 0;
111863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        muted = in.readInt() != 0;
112f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank        position = NO_POSITION;
113ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank        localDeleteOnUpdate = false;
114732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
115732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
116732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    @Override
117732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public String toString() {
118732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        return "[conversation id=" + id + "]";
119732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
120732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
121732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    public static final Creator<Conversation> CREATOR = new Creator<Conversation>() {
122732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
123732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        @Override
124732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        public Conversation createFromParcel(Parcel source) {
125732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            return new Conversation(source);
126732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        }
127732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
128732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        @Override
129732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        public Conversation[] newArray(int size) {
130732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            return new Conversation[size];
131732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        }
132732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
133732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    };
134732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
135acf6039a23382f18c35f6b487d90d53cb67b5858Mindy Pereira    public static final Uri MOVE_CONVERSATIONS_URI = Uri.parse("content://moveconversations");
136acf6039a23382f18c35f6b487d90d53cb67b5858Mindy Pereira
137a831b2f1ba6d3c18d5e54563df8bae1f589c4257Mindy Pereira    public Conversation(Cursor cursor) {
138732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        if (cursor != null) {
139732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            id = cursor.getLong(UIProvider.CONVERSATION_ID_COLUMN);
140c43bc0a606e41144a780c4f873b5450e0ede0c91Marc Blank            uri = Uri.parse(cursor.getString(UIProvider.CONVERSATION_URI_COLUMN));
141732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            dateMs = cursor.getLong(UIProvider.CONVERSATION_DATE_RECEIVED_MS_COLUMN);
142732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            subject = cursor.getString(UIProvider.CONVERSATION_SUBJECT_COLUMN);
143374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank            // Don't allow null subject
144374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank            if (subject == null) {
145374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank                subject = "";
146374863eeb0ee37f1ca7d57840e6f02aaa052e284Marc Blank            }
147732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang            snippet = cursor.getString(UIProvider.CONVERSATION_SNIPPET_COLUMN);
14887d535fe423d782c3a0343c649330d309976f655Mindy Pereira            hasAttachments = cursor.getInt(UIProvider.CONVERSATION_HAS_ATTACHMENTS_COLUMN) != 0;
1495c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereira            String messageList = cursor
1505c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereira                    .getString(UIProvider.CONVERSATION_MESSAGE_LIST_URI_COLUMN);
1515c765b9c5dd8a9a9421260ba8b46d06073391c73Mindy Pereira            messageListUri = !TextUtils.isEmpty(messageList) ? Uri.parse(messageList) : null;
1524db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            senders = cursor.getString(UIProvider.CONVERSATION_SENDER_INFO_COLUMN);
1534db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            numMessages = cursor.getInt(UIProvider.CONVERSATION_NUM_MESSAGES_COLUMN);
1544db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            numDrafts = cursor.getInt(UIProvider.CONVERSATION_NUM_DRAFTS_COLUMN);
1554db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            sendingState = cursor.getInt(UIProvider.CONVERSATION_SENDING_STATE_COLUMN);
1564db59c58c0af9f44d95a12dbe21322bed58cc518Mindy Pereira            priority = cursor.getInt(UIProvider.CONVERSATION_PRIORITY_COLUMN);
15787d535fe423d782c3a0343c649330d309976f655Mindy Pereira            read = cursor.getInt(UIProvider.CONVERSATION_READ_COLUMN) != 0;
15887d535fe423d782c3a0343c649330d309976f655Mindy Pereira            starred = cursor.getInt(UIProvider.CONVERSATION_STARRED_COLUMN) != 0;
159ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank            folderList = cursor.getString(UIProvider.CONVERSATION_FOLDER_LIST_COLUMN);
160cc8211df898ba9dac17a766b89f28d6e6f0afef0Mindy Pereira            rawFolders = cursor.getString(UIProvider.CONVERSATION_RAW_FOLDERS_COLUMN);
16122657529437c160dec072115c5982409306c1313Mindy Pereira            convFlags = cursor.getInt(UIProvider.CONVERSATION_FLAGS_COLUMN);
16222657529437c160dec072115c5982409306c1313Mindy Pereira            personalLevel = cursor.getInt(UIProvider.CONVERSATION_PERSONAL_LEVEL_COLUMN);
163863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            spam = cursor.getInt(UIProvider.CONVERSATION_IS_SPAM_COLUMN) != 0;
164863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            muted = cursor.getInt(UIProvider.CONVERSATION_MUTED_COLUMN) != 0;
165f892f0a57d5c24b09fdc805f0fe2007ecd0d0e91Marc Blank            position = NO_POSITION;
166ce53818e1e185a845bd2f7f601c20e7085b40725Marc Blank            localDeleteOnUpdate = false;
167732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang        }
168732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang    }
169732600e38891db139bae02dc91dd0c5b0987e8e9Andy Huang
170bf232c3735f65b1a4746943e4a134e59e36f0bdePaul Westbrook    public Conversation() {
171ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook    }
172ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
173863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira    public static Conversation create(long id, Uri uri, String subject, long dateMs,
174863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            String snippet, boolean hasAttachment, Uri messageListUri, String senders,
175863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            int numMessages, int numDrafts, int sendingState, int priority, boolean read,
176863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            boolean starred, String folderList, String rawFolders, int convFlags,
177863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira            int personalLevel, boolean spam, boolean muted) {
178ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
179ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        final Conversation conversation = new Conversation();
180ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
181ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.id = id;
182ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.uri = uri;
183ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.subject = subject;
184ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.dateMs = dateMs;
185ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.snippet = snippet;
186ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.hasAttachments = hasAttachment;
187ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.messageListUri = messageListUri;
188ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.senders = senders;
189ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.numMessages = numMessages;
190ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.numDrafts = numDrafts;
191ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.sendingState = sendingState;
192ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.priority = priority;
193ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.read = read;
194ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.starred = starred;
195ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.folderList = folderList;
196ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.rawFolders = rawFolders;
197ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.convFlags = convFlags;
198ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        conversation.personalLevel = personalLevel;
199863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        conversation.spam = spam;
200863e44160d9175023d30e7e225ecb69ad3892eecMindy Pereira        conversation.muted = muted;
201ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook        return conversation;
202ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook    }
203ff5c757ed2bcf7004a70b0675382ef894196558dPaul Westbrook
204e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    @Override
205e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public boolean equals(Object o) {
2063c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank        if (o instanceof Conversation) {
2073c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank            Conversation conv = (Conversation)o;
2083c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank            return conv.uri.equals(uri);
2093c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank        }
2103c9bcef43b4f103697034abbf2eab99111e8d987Marc Blank        return false;
211e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    }
212e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank
213e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    @Override
214e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public int hashCode() {
215e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank        return uri.hashCode();
216e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    }
217e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank
2187f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira    /**
2197f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira     * Get if this conversation is marked as high priority.
2207f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira     */
2217f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira    public boolean isImportant() {
22222657529437c160dec072115c5982409306c1313Mindy Pereira        return priority == UIProvider.ConversationPriority.IMPORTANT;
2237f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira    }
2247f0a962513503cb01aec093b14c1b48dfae08f12Mindy Pereira
225e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    /**
226e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank     * Get if this conversation is mostly dead
227e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank     */
228e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    public boolean isMostlyDead() {
229e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank        return (convFlags & FLAG_MOSTLY_DEAD) != 0;
230e1d1b07cdb0026097eb80f6c2912a16353aacec1Marc Blank    }
2311b9efd9beb715927e0db7b138ddbb2925bc2c06fMarc Blank}