1bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/*
2bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Copyright (C) 2008 The Android Open Source Project
3bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
4bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Licensed under the Apache License, Version 2.0 (the "License");
5bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * you may not use this file except in compliance with the License.
6bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * You may obtain a copy of the License at
7bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
8bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *      http://www.apache.org/licenses/LICENSE-2.0
9bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
10bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Unless required by applicable law or agreed to in writing, software
11bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * distributed under the License is distributed on an "AS IS" BASIS,
12bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * See the License for the specific language governing permissions and
14bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * limitations under the License.
15bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */
16bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
17bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpackage com.android.email;
18bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
19bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.emailcommon.mail.MessagingException;
20bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
21bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport android.content.Context;
22bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
23bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport java.util.ArrayList;
24bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
25bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/**
26bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Defines the interface that MessagingController will use to callback to requesters. This class
27bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * is defined as non-abstract so that someone who wants to receive only a few messages can
28bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * do so without implementing the entire interface. It is highly recommended that users of
29bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * this interface use the @Override annotation in their implementations to avoid being caught by
30bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * changes in this class.
31bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */
32bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpublic class MessagingListener {
33bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public MessagingListener() {
34bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
35bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
36bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void listFoldersStarted(long accountId) {
37bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
38bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
39bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void listFoldersFailed(long accountId, String message) {
40bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
41bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
42bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void listFoldersFinished(long accountId) {
43bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
44bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
45bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void synchronizeMailboxStarted(long accountId, long mailboxId) {
46bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
47bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
48bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    /**
49bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * Synchronization of the mailbox finished. The mailbox and/or message databases have been
50bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * updated accordingly.
51bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     *
52bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * @param accountId The account that was synchronized
53bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * @param mailboxId The mailbox that was synchronized
54bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * @param totalMessagesInMailbox The total number of messages in the mailbox
55bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * @param numNewMessages The number of new messages
56bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * @param addedMessages Message IDs of messages that were added during the synchronization.
57bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * These are new, unread messages. Messages that were previously read are not in this list.
58bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     */
59bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void synchronizeMailboxFinished(long accountId, long mailboxId,
60bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            int totalMessagesInMailbox, int numNewMessages, ArrayList<Long> addedMessages) {
61bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
62bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
63bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void synchronizeMailboxFailed(long accountId, long mailboxId, Exception e) {
64bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
65bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
66bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void loadMessageForViewStarted(long messageId) {
67bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
68bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
69bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void loadMessageForViewFinished(long messageId) {
70bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
71bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
72bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void loadMessageForViewFailed(long messageId, String message) {
73bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
74bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
75bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void checkMailStarted(Context context, long accountId, long tag) {
76bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
77bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
78bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void checkMailFinished(Context context, long accountId, long mailboxId, long tag) {
79bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
80bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
81bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void sendPendingMessagesStarted(long accountId, long messageId) {
82bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
83bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
84bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void sendPendingMessagesCompleted(long accountId) {
85bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
86bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
87bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void sendPendingMessagesFailed(long accountId, long messageId, Exception reason) {
88bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
89bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
90bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void messageUidChanged(long accountId, long mailboxId, String oldUid, String newUid) {
91bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
92bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
93bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void loadAttachmentStarted(
94bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long accountId,
95bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long messageId,
96bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long attachmentId,
97bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            boolean requiresDownload) {
98bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
99bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
100bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void loadAttachmentFinished(
101bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long accountId,
102bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long messageId,
103bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long attachmentId) {
104bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
105bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
106bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void loadAttachmentFailed(
107bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long accountId,
108bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long messageId,
109bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            long attachmentId,
110bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            MessagingException me,
111bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            boolean background) {
112bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
113bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
114bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    /**
115bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * General notification messages subclasses can override to be notified that the controller
116bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * has completed a command. This is useful for turning off progress indicators that may have
117bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * been left over from previous commands.
118bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * @param moreCommandsToRun True if the controller will continue on to another command
119bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     * immediately.
120bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     */
121bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public void controllerCommandCompleted(boolean moreCommandsToRun) {
122bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
123bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
124bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook}
125