1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-17 15:40:28 -05:00

Fix phantom messages in unified inbox.

This commit is contained in:
Jesse Vincent 2010-10-23 15:19:56 +00:00
parent bc2127c84a
commit 96f1d9eadf

View File

@ -771,13 +771,24 @@ public class MessageList
sortDateAscending = mController.isSortAscending(SORT_TYPE.SORT_DATE); sortDateAscending = mController.isSortAscending(SORT_TYPE.SORT_DATE);
mController.addListener(mAdapter.mListener); mController.addListener(mAdapter.mListener);
if (mAccount != null)
if (mFolderName != null)
{ {
mController.notifyAccountCancel(this, mAccount);
MessagingController.getInstance(getApplication()).notifyAccountCancel(this, mAccount);
}
if (mAdapter.messages.isEmpty()) if (mAdapter.messages.isEmpty())
{
if (mFolderName != null)
{ {
mController.listLocalMessages(mAccount, mFolderName, mAdapter.mListener); mController.listLocalMessages(mAccount, mFolderName, mAdapter.mListener);
} }
else if (mQueryString != null)
{
mController.searchLocalMessages(mAccountUuids, mFolderNames, null, mQueryString, mIntegrate, mQueryFlags, mForbiddenFlags, mAdapter.mListener);
}
}
else else
{ {
new Thread() new Thread()
@ -786,13 +797,24 @@ public class MessageList
public void run() public void run()
{ {
mAdapter.markAllMessagesAsDirty(); mAdapter.markAllMessagesAsDirty();
if (mFolderName != null)
{
mController.listLocalMessagesSynchronous(mAccount, mFolderName, mAdapter.mListener); mController.listLocalMessagesSynchronous(mAccount, mFolderName, mAdapter.mListener);
}
else if (mQueryString != null)
{
mController.searchLocalMessagesSynchronous(mAccountUuids, mFolderNames, null, mQueryString, mIntegrate, mQueryFlags, mForbiddenFlags, mAdapter.mListener);
}
mAdapter.pruneDirtyMessages(); mAdapter.pruneDirtyMessages();
runOnUiThread(new Runnable() runOnUiThread(new Runnable()
{ {
public void run() public void run()
{ {
mAdapter.notifyDataSetChanged(); mAdapter.notifyDataSetChanged();
restoreListState();
} }
}); });
} }
@ -800,22 +822,14 @@ public class MessageList
} }
.start(); .start();
} }
mController.notifyAccountCancel(this, mAccount);
MessagingController.getInstance(getApplication()).notifyAccountCancel(this, mAccount);
if (mAccount != null && mFolderName != null)
{
mController.getFolderUnreadMessageCount(mAccount, mFolderName, mAdapter.mListener); mController.getFolderUnreadMessageCount(mAccount, mFolderName, mAdapter.mListener);
} }
else if (mQueryString != null)
{
mController.searchLocalMessages(mAccountUuids, mFolderNames, null, mQueryString, mIntegrate, mQueryFlags, mForbiddenFlags, mAdapter.mListener);
}
mHandler.refreshTitle(); mHandler.refreshTitle();
restoreListState();
} }
private void initializeLayout() private void initializeLayout()
{ {
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);