mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 13:25:37 +00:00
Bug 201055 - Automatic mail collection does not work with movemail
r=pkwarren@gmail.com, sr=mscott@mozilla.org, a=sspitzer@mozilla.org Patch contributed by Michael Malcom <michaelmalcom@mindspring.com>.
This commit is contained in:
parent
22f9bbc289
commit
34b81cf033
@ -80,6 +80,72 @@ nsMovemailIncomingServer::GetLocalStoreType(char **type)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMovemailIncomingServer::PerformBiff(nsIMsgWindow *aMsgWindow)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIMovemailService> movemailService(do_GetService(
|
||||
kCMovemailServiceCID, &rv));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
nsCOMPtr<nsIMsgFolder> inbox;
|
||||
nsCOMPtr<nsIMsgFolder> rootMsgFolder;
|
||||
nsCOMPtr<nsIUrlListener> urlListener;
|
||||
rv = GetRootMsgFolder(getter_AddRefs(rootMsgFolder));
|
||||
if(NS_SUCCEEDED(rv) && rootMsgFolder)
|
||||
{
|
||||
PRUint32 numFolders;
|
||||
rv = rootMsgFolder->GetFoldersWithFlag(MSG_FOLDER_FLAG_INBOX, 1,
|
||||
&numFolders,
|
||||
getter_AddRefs(inbox));
|
||||
if (NS_FAILED(rv) || numFolders != 1) return rv;
|
||||
}
|
||||
|
||||
SetPerformingBiff(PR_TRUE);
|
||||
urlListener = do_QueryInterface(inbox);
|
||||
|
||||
PRBool downloadOnBiff = PR_FALSE;
|
||||
rv = GetDownloadOnBiff(&downloadOnBiff);
|
||||
if (downloadOnBiff)
|
||||
{
|
||||
nsCOMPtr <nsIMsgLocalMailFolder> localInbox = do_QueryInterface(inbox,
|
||||
&rv);
|
||||
if (localInbox && NS_SUCCEEDED(rv))
|
||||
{
|
||||
PRBool valid = PR_FALSE;
|
||||
nsCOMPtr <nsIMsgDatabase> db;
|
||||
rv = inbox->GetMsgDatabase(aMsgWindow, getter_AddRefs(db));
|
||||
if (NS_SUCCEEDED(rv) && db)
|
||||
{
|
||||
rv = db->GetSummaryValid(&valid);
|
||||
}
|
||||
if (NS_SUCCEEDED(rv) && valid)
|
||||
{
|
||||
rv = movemailService->GetNewMail(aMsgWindow, urlListener, inbox,
|
||||
this, nsnull);
|
||||
}
|
||||
else
|
||||
{
|
||||
PRBool isLocked;
|
||||
inbox->GetLocked(&isLocked);
|
||||
if (!isLocked)
|
||||
{
|
||||
rv = localInbox->ParseFolder(aMsgWindow, urlListener);
|
||||
}
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
rv = localInbox->SetCheckForNewMessagesAfterParsing(PR_TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
movemailService->CheckForNewMail(urlListener, inbox, this, nsnull);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMovemailIncomingServer::SetFlagsOnDefaultMailboxes()
|
||||
{
|
||||
@ -183,6 +249,14 @@ nsMovemailIncomingServer::GetNewMail(nsIMsgWindow *aMsgWindow,
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMovemailIncomingServer::GetDownloadMessagesAtStartup(PRBool *getMessagesAtStartup)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(getMessagesAtStartup);
|
||||
*getMessagesAtStartup = PR_TRUE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMovemailIncomingServer::GetCanSearchMessages(PRBool *canSearchMessages)
|
||||
{
|
||||
@ -191,6 +265,14 @@ nsMovemailIncomingServer::GetCanSearchMessages(PRBool *canSearchMessages)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMovemailIncomingServer::GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aServerRequiresPasswordForBiff);
|
||||
*aServerRequiresPasswordForBiff = PR_FALSE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMovemailIncomingServer::GetAccountManagerChrome(nsAString& aResult)
|
||||
{
|
||||
|
@ -60,7 +60,10 @@ public:
|
||||
|
||||
NS_IMETHOD GetIsSecureServer(PRBool *aIsSecureServer);
|
||||
NS_IMETHOD GetLocalStoreType(char * *type);
|
||||
NS_IMETHOD PerformBiff(nsIMsgWindow *aMsgWindow);
|
||||
NS_IMETHOD GetDownloadMessagesAtStartup(PRBool *getMessages);
|
||||
NS_IMETHOD GetCanSearchMessages(PRBool *canSearchMessages);
|
||||
NS_IMETHOD GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff);
|
||||
NS_IMETHOD GetAccountManagerChrome(nsAString& aResult);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user