From 28c9dfdcce166be8964435b8c26d7cbffeb94a66 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 13 Oct 2010 10:53:08 +0000 Subject: [PATCH] Delay formatting of dates in messagelist until we actually need them -- it turns out they're very expensive. --- .../fsck/k9/activity/MessageInfoHolder.java | 7 +++++++ src/com/fsck/k9/activity/MessageList.java | 2 +- src/com/fsck/k9/helper/MessageHelper.java | 19 ++++++++++--------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/com/fsck/k9/activity/MessageInfoHolder.java b/src/com/fsck/k9/activity/MessageInfoHolder.java index 8379d0384..ee9ef0127 100644 --- a/src/com/fsck/k9/activity/MessageInfoHolder.java +++ b/src/com/fsck/k9/activity/MessageInfoHolder.java @@ -1,4 +1,5 @@ package com.fsck.k9.activity; +import com.fsck.k9.helper.MessageHelper; import java.util.Date; import com.fsck.k9.mail.Message; @@ -51,4 +52,10 @@ public class MessageInfoHolder return uid.hashCode(); } + public String getDate(MessageHelper messageHelper) { + if (date == null) { + date = messageHelper.formatDate(message.getSentDate()); + } + return date; + } } diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index ff1116d78..877ef6dbd 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -2718,7 +2718,7 @@ public class MessageList holder.from.setTypeface(null, message.read ? Typeface.NORMAL : Typeface.BOLD); } - holder.date.setText(message.date); + holder.date.setText(message.getDate(mMessageHelper)); holder.subject.setCompoundDrawablesWithIntrinsicBounds( message.answered ? mAnsweredIcon : null, // left null, // top diff --git a/src/com/fsck/k9/helper/MessageHelper.java b/src/com/fsck/k9/helper/MessageHelper.java index b8c38b308..eb0ae679b 100644 --- a/src/com/fsck/k9/helper/MessageHelper.java +++ b/src/com/fsck/k9/helper/MessageHelper.java @@ -66,15 +66,6 @@ public class MessageHelper target.folder = folder; - if (Utility.isDateToday(date)) - { - target.date = mTodayDateFormat.format(date); - } - else - { - target.date = mDateFormat.format(date); - } - target.hasAttachments = message.getAttachmentCount() > 0; target.read = message.isSet(Flag.SEEN); @@ -122,4 +113,14 @@ 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); + } + } }