1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-25 23:21:50 -05:00

Add a "fetch all messages" visible limit

This commit is contained in:
Jesse Vincent 2010-11-12 23:41:43 +00:00
parent a130f56bf4
commit af5f78928c
6 changed files with 29 additions and 6 deletions

View File

@ -54,6 +54,7 @@
<item>@string/account_setup_options_mail_display_count_250</item> <item>@string/account_setup_options_mail_display_count_250</item>
<item>@string/account_setup_options_mail_display_count_500</item> <item>@string/account_setup_options_mail_display_count_500</item>
<item>@string/account_setup_options_mail_display_count_1000</item> <item>@string/account_setup_options_mail_display_count_1000</item>
<item>@string/account_setup_options_mail_display_count_all</item>
</string-array> </string-array>
<string-array name="account_settings_display_count_values"> <string-array name="account_settings_display_count_values">
@ -64,6 +65,7 @@
<item>250</item> <item>250</item>
<item>500</item> <item>500</item>
<item>1000</item> <item>1000</item>
<item>0</item>
</string-array> </string-array>
<string-array name="account_settings_message_age_entries"> <string-array name="account_settings_message_age_entries">

View File

@ -493,6 +493,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
<string name="account_setup_options_mail_display_count_250">250 messages</string> <string name="account_setup_options_mail_display_count_250">250 messages</string>
<string name="account_setup_options_mail_display_count_500">500 messages</string> <string name="account_setup_options_mail_display_count_500">500 messages</string>
<string name="account_setup_options_mail_display_count_1000">1000 messages</string> <string name="account_setup_options_mail_display_count_1000">1000 messages</string>
<string name="account_setup_options_mail_display_count_all">all messages</string>
<string name="move_copy_cannot_copy_unsynced_message">Cannot copy or move a message that is not synchronized with the server</string> <string name="move_copy_cannot_copy_unsynced_message">Cannot copy or move a message that is not synchronized with the server</string>

View File

@ -2798,9 +2798,16 @@ public class MessageList
else else
{ {
if (!mCurrentFolder.lastCheckFailed) if (!mCurrentFolder.lastCheckFailed)
{
if (mAccount.getDisplayCount() == 0 )
{
holder.main.setText(getString(R.string.message_list_load_more_messages_action));
}
else
{ {
holder.main.setText(String.format(getString(R.string.load_more_messages_fmt), mAccount.getDisplayCount())); holder.main.setText(String.format(getString(R.string.load_more_messages_fmt), mAccount.getDisplayCount()));
} }
}
else else
{ {
holder.main.setText(getString(R.string.status_loading_more_failed)); holder.main.setText(getString(R.string.status_loading_more_failed));

View File

@ -925,7 +925,9 @@ public class MessagingController implements Runnable
{ {
LocalStore localStore = account.getLocalStore(); LocalStore localStore = account.getLocalStore();
LocalFolder localFolder = localStore.getFolder(folder); LocalFolder localFolder = localStore.getFolder(folder);
if (localFolder.getVisibleLimit() > 0 ) {
localFolder.setVisibleLimit(localFolder.getVisibleLimit() + account.getDisplayCount()); localFolder.setVisibleLimit(localFolder.getVisibleLimit() + account.getDisplayCount());
}
synchronizeMailbox(account, folder, listener, null); synchronizeMailbox(account, folder, listener, null);
} }
catch (MessagingException me) catch (MessagingException me)
@ -1100,7 +1102,7 @@ public class MessagingController implements Runnable
int visibleLimit = localFolder.getVisibleLimit(); int visibleLimit = localFolder.getVisibleLimit();
if (visibleLimit < 1) if (visibleLimit < 0)
{ {
visibleLimit = K9.DEFAULT_VISIBLE_LIMIT; visibleLimit = K9.DEFAULT_VISIBLE_LIMIT;
} }
@ -1118,7 +1120,14 @@ public class MessagingController implements Runnable
/* /*
* Message numbers start at 1. * Message numbers start at 1.
*/ */
int remoteStart = Math.max(0, remoteMessageCount - visibleLimit) + 1; int remoteStart;
if (visibleLimit > 0 )
{
remoteStart = Math.max(0, remoteMessageCount - visibleLimit) + 1;
}
else {
remoteStart = 1;
}
int remoteEnd = remoteMessageCount; int remoteEnd = remoteMessageCount;
if (K9.DEBUG) if (K9.DEBUG)
@ -1479,7 +1488,7 @@ public class MessagingController implements Runnable
int visibleLimit = localFolder.getVisibleLimit(); int visibleLimit = localFolder.getVisibleLimit();
int listSize = unsyncedMessages.size(); int listSize = unsyncedMessages.size();
if (listSize > visibleLimit) if ((visibleLimit > 0) && (listSize > visibleLimit))
{ {
unsyncedMessages = unsyncedMessages.subList(listSize - visibleLimit, listSize); unsyncedMessages = unsyncedMessages.subList(listSize - visibleLimit, listSize);
} }

View File

@ -1150,6 +1150,10 @@ public class LocalStore extends Store implements Serializable
public void purgeToVisibleLimit(MessageRemovalListener listener) throws MessagingException public void purgeToVisibleLimit(MessageRemovalListener listener) throws MessagingException
{ {
if ( mVisibleLimit == 0)
{
return ;
}
open(OpenMode.READ_WRITE); open(OpenMode.READ_WRITE);
Message[] messages = getMessages(null, false); Message[] messages = getMessages(null, false);
for (int i = mVisibleLimit; i < messages.length; i++) for (int i = mVisibleLimit; i < messages.length; i++)