From 8a0b6f1a61390be4153d796d495cbb957e26e1a8 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Thu, 16 Jun 2011 01:29:47 -0700 Subject: [PATCH] Increased sophistication of displaying due dates in task adapter, it was displaying next week incorrectly --- .../com/todoroo/andlib/utility/DateUtilities.java | 11 +++++++++-- .../src/com/todoroo/astrid/adapter/TaskAdapter.java | 12 ++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/api/src/com/todoroo/andlib/utility/DateUtilities.java b/api/src/com/todoroo/andlib/utility/DateUtilities.java index 846b846e6..7c9ff71f0 100644 --- a/api/src/com/todoroo/andlib/utility/DateUtilities.java +++ b/api/src/com/todoroo/andlib/utility/DateUtilities.java @@ -111,11 +111,18 @@ public class DateUtilities { */ @SuppressWarnings("nls") public static String getDateStringWithWeekday(Context context, Date date) { - String weekday = DateUtils.getDayOfWeekString(date.getDay() + Calendar.SUNDAY, - DateUtils.LENGTH_LONG); + String weekday = getWeekday(date); return weekday + ", " + getDateString(context, date); } + /** + * @return weekday + */ + public static String getWeekday(Date date) { + return DateUtils.getDayOfWeekString(date.getDay() + Calendar.SUNDAY, + DateUtils.LENGTH_LONG); + } + /** * @return date format as getDateFormat with weekday */ diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index d867bdd8f..eb60bd588 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -483,10 +483,14 @@ public class TaskAdapter extends CursorAdapter implements Filterable { else string = DateUtilities.getRelativeDay(activity, date).toLowerCase(); } else { - string = DateUtils.getRelativeDateTimeString(activity, date, - DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, 0).toString(); - if(!Task.hasDueTime(date)) - string = string.substring(0, string.lastIndexOf(',')); + if(Task.hasDueTime(date)) + string = DateUtils.getRelativeDateTimeString(activity, date, + DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, 0).toString(); + else if(Math.abs(date - DateUtilities.now()) < DateUtilities.ONE_WEEK) + string = DateUtilities.getWeekday(new Date(date)); + else + string = DateUtilities.getDateString(activity, new Date(date)); + } dateCache.put(date, string);