This commit is contained in:
Jesse Vincent 2010-10-21 20:49:20 +00:00
parent 2a4792eb60
commit e8756af4f1
5 changed files with 96 additions and 89 deletions

View File

@ -54,8 +54,10 @@ public class MessageInfoHolder
return uid.hashCode();
}
public String getDate(MessageHelper messageHelper) {
if (date == null) {
public String getDate(MessageHelper messageHelper)
{
if (date == null)
{
date = messageHelper.formatDate(message.getSentDate());
}
return date;

View File

@ -2303,90 +2303,90 @@ public class MessageList
// the callbacks to mutate it.
final List<Message> messages = new ArrayList<Message>(providedMessages);
boolean needsSort = false;
final List<MessageInfoHolder> messagesToAdd = new ArrayList<MessageInfoHolder>();
List<MessageInfoHolder> messagesToRemove = new ArrayList<MessageInfoHolder>();
List<Message> messagesToSearch = new ArrayList<Message>();
boolean needsSort = false;
final List<MessageInfoHolder> messagesToAdd = new ArrayList<MessageInfoHolder>();
List<MessageInfoHolder> messagesToRemove = new ArrayList<MessageInfoHolder>();
List<Message> messagesToSearch = new ArrayList<Message>();
// cache field into local variable for faster access for JVM without JIT
final MessageHelper messageHelper = mMessageHelper;
// cache field into local variable for faster access for JVM without JIT
final MessageHelper messageHelper = mMessageHelper;
for (Message message : messages)
for (Message message : messages)
{
MessageInfoHolder m = getMessage(message);
if (message.isSet(Flag.DELETED))
{
if (m != null)
{
MessageInfoHolder m = getMessage(message);
if (message.isSet(Flag.DELETED))
messagesToRemove.add(m);
}
}
else
{
final Folder messageFolder = message.getFolder();
final Account messageAccount = messageFolder.getAccount();
if (m == null)
{
if (updateForMe(account, folderName))
{
if (m != null)
{
messagesToRemove.add(m);
}
m = new MessageInfoHolder();
messageHelper.populate(m, message, new FolderInfoHolder(MessageList.this, messageFolder, messageAccount), messageAccount);
messagesToAdd.add(m);
}
else
{
final Folder messageFolder = message.getFolder();
final Account messageAccount = messageFolder.getAccount();
if (m == null)
if (mQueryString != null)
{
if (updateForMe(account, folderName))
if (verifyAgainstSearch)
{
messagesToSearch.add(message);
}
else
{
m = new MessageInfoHolder();
messageHelper.populate(m, message, new FolderInfoHolder(MessageList.this, messageFolder, messageAccount), messageAccount);
messagesToAdd.add(m);
}
else
{
if (mQueryString != null)
{
if (verifyAgainstSearch)
{
messagesToSearch.add(message);
}
else
{
m = new MessageInfoHolder();
messageHelper.populate(m, message, new FolderInfoHolder(MessageList.this, messageFolder, messageAccount), messageAccount);
messagesToAdd.add(m);
}
}
}
}
else
{
m.dirty = false; // as we reload the message, unset its dirty flag
messageHelper.populate(m, message, new FolderInfoHolder(MessageList.this, messageFolder, account), account);
needsSort = true;
}
}
}
if (messagesToSearch.size() > 0)
else
{
mController.searchLocalMessages(mAccountUuids, mFolderNames, messagesToSearch.toArray(EMPTY_MESSAGE_ARRAY), mQueryString, mIntegrate, mQueryFlags, mForbiddenFlags,
new MessagingListener()
{
@Override
public void listLocalMessagesAddMessages(Account account, String folder, List<Message> messages)
{
addOrUpdateMessages(account, folder, messages, false);
}
});
m.dirty = false; // as we reload the message, unset its dirty flag
messageHelper.populate(m, message, new FolderInfoHolder(MessageList.this, messageFolder, account), account);
needsSort = true;
}
}
}
if (messagesToRemove.size() > 0)
if (messagesToSearch.size() > 0)
{
mController.searchLocalMessages(mAccountUuids, mFolderNames, messagesToSearch.toArray(EMPTY_MESSAGE_ARRAY), mQueryString, mIntegrate, mQueryFlags, mForbiddenFlags,
new MessagingListener()
{
@Override
public void listLocalMessagesAddMessages(Account account, String folder, List<Message> messages)
{
removeMessages(messagesToRemove);
addOrUpdateMessages(account, folder, messages, false);
}
});
}
if (messagesToAdd.size() > 0)
{
mHandler.addMessages(messagesToAdd);
}
if (messagesToRemove.size() > 0)
{
removeMessages(messagesToRemove);
}
if (needsSort)
{
mHandler.sortMessages();
mHandler.resetUnreadCount();
}
if (messagesToAdd.size() > 0)
{
mHandler.addMessages(messagesToAdd);
}
if (needsSort)
{
mHandler.sortMessages();
mHandler.resetUnreadCount();
}
}
public MessageInfoHolder getMessage(Message message)
{
@ -2718,7 +2718,8 @@ public class MessageList
if (message.toMe)
{
return String.format(getString(R.string.messagelist_sent_to_me_format), message.sender);
} else if (message.ccMe)
}
else if (message.ccMe)
{
return String.format(getString(R.string.messagelist_sent_cc_me_format), message.sender);
}

View File

@ -880,11 +880,11 @@ public class MessageView extends K9Activity implements OnClickListener
webSettings.setSupportZoom(true);
webSettings.setLoadsImagesAutomatically(true);
if (K9.zoomControlsEnabled())
{
if (K9.zoomControlsEnabled())
{
webSettings.setBuiltInZoomControls(true);
}
if (K9.mobileOptimizedLayout())
if (K9.mobileOptimizedLayout())
{
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
}

View File

@ -100,20 +100,23 @@ public class MessageHelper
for (Address address : message.getRecipients(RecipientType.TO)) {
for (Address address : message.getRecipients(RecipientType.TO))
{
if (account.isAnIdentity(address))
{
target.toMe = true;
}
{
target.toMe = true;
}
}
if (target.toMe == false ) {
for(Address address : message.getRecipients(RecipientType.CC)) {
if (account.isAnIdentity(address))
if (target.toMe == false )
{
for(Address address : message.getRecipients(RecipientType.CC))
{
if (account.isAnIdentity(address))
{
target.ccMe = true;
}
}
}
}
target.subject = message.getSubject();
@ -131,14 +134,15 @@ public class MessageHelper
Log.w(K9.LOG_TAG, "Unable to load message info", me);
}
}
public String formatDate(Date date) {
if (Utility.isDateToday(date))
{
return mTodayDateFormat.format(date);
}
else
{
return mDateFormat.format(date);
}
}
public String formatDate(Date date)
{
if (Utility.isDateToday(date))
{
return mTodayDateFormat.format(date);
}
else
{
return mDateFormat.format(date);
}
}
}

View File

@ -860,10 +860,10 @@ public class LocalStore extends Store implements Serializable
cursor.close();
}
}
if (listener != null)
{
listener.messagesFinished(i);
}
if (listener != null)
{
listener.messagesFinished(i);
}
return messages.toArray(EMPTY_MESSAGE_ARRAY);