From b45122d8ab7627568d9070a8a44d6b9c75a578df Mon Sep 17 00:00:00 2001 From: Yuri Volkov Date: Sat, 28 Dec 2019 22:25:45 +0300 Subject: [PATCH] #356 End date is not needed in a Widget entry: it is the same as in an underlying event --- .../todoagenda/widget/CalendarEntry.java | 16 ++++++++++----- .../todoagenda/widget/DayHeader.java | 2 +- .../todoagenda/widget/LastEntry.java | 2 +- .../todoagenda/widget/TaskEntry.java | 14 ++++++++++--- .../todoagenda/widget/WidgetEntry.java | 20 +++++++++---------- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/org/andstatus/todoagenda/widget/CalendarEntry.java b/app/src/main/java/org/andstatus/todoagenda/widget/CalendarEntry.java index 7dfda0af..888055c8 100644 --- a/app/src/main/java/org/andstatus/todoagenda/widget/CalendarEntry.java +++ b/app/src/main/java/org/andstatus/todoagenda/widget/CalendarEntry.java @@ -29,14 +29,20 @@ public class CalendarEntry extends WidgetEntry { private CalendarEvent event; public static CalendarEntry fromEvent(CalendarEvent event, DateTime entryDate) { - CalendarEntry entry = new CalendarEntry(entryDate, event.getEndDate()); + CalendarEntry entry = new CalendarEntry(entryDate); entry.allDay = event.isAllDay(); entry.event = event; return entry; } - private CalendarEntry(DateTime entryDate, DateTime eventEndDate) { - super(WidgetEntryPosition.ENTRY_DATE, entryDate, eventEndDate); + private CalendarEntry(DateTime entryDate) { + super(WidgetEntryPosition.ENTRY_DATE, entryDate); + } + + @Nullable + @Override + public DateTime getEndDate() { + return event.getEndDate(); } @Override @@ -78,7 +84,7 @@ public boolean isStartOfMultiDayEvent() { } public boolean isEndOfMultiDayEvent() { - return isPartOfMultiDayEvent() && isLastEntryOfEvent; + return isPartOfMultiDayEvent() && isLastEntryOfEvent(); } public boolean spansOneFullDay() { @@ -127,7 +133,7 @@ private String createTimeStringForCalendarEntry(Context context) { startStr = createTimeString(context, entryDate); } if (getSettings().getShowEndTime()) { - if (!isDateDefined(event.getEndDate()) || (isPartOfMultiDayEvent() && !isLastEntryOfEvent)) { + if (!isDateDefined(event.getEndDate()) || (isPartOfMultiDayEvent() && !isLastEntryOfEvent())) { endStr = ARROW; separator = SPACE; } else { diff --git a/app/src/main/java/org/andstatus/todoagenda/widget/DayHeader.java b/app/src/main/java/org/andstatus/todoagenda/widget/DayHeader.java index ad9763dd..f1070b5b 100644 --- a/app/src/main/java/org/andstatus/todoagenda/widget/DayHeader.java +++ b/app/src/main/java/org/andstatus/todoagenda/widget/DayHeader.java @@ -7,6 +7,6 @@ public class DayHeader extends WidgetEntry { public DayHeader(DateTime date) { - super(DAY_HEADER, date, null); + super(DAY_HEADER, date); } } diff --git a/app/src/main/java/org/andstatus/todoagenda/widget/LastEntry.java b/app/src/main/java/org/andstatus/todoagenda/widget/LastEntry.java index f11326c0..8bc028f4 100644 --- a/app/src/main/java/org/andstatus/todoagenda/widget/LastEntry.java +++ b/app/src/main/java/org/andstatus/todoagenda/widget/LastEntry.java @@ -45,7 +45,7 @@ public enum LastEntryType { public final LastEntryType type; public LastEntry(LastEntryType type, DateTime date) { - super(LIST_FOOTER, date, null); + super(LIST_FOOTER, date); this.type = type; } } \ No newline at end of file diff --git a/app/src/main/java/org/andstatus/todoagenda/widget/TaskEntry.java b/app/src/main/java/org/andstatus/todoagenda/widget/TaskEntry.java index 6c43d467..d144a52e 100644 --- a/app/src/main/java/org/andstatus/todoagenda/widget/TaskEntry.java +++ b/app/src/main/java/org/andstatus/todoagenda/widget/TaskEntry.java @@ -1,5 +1,7 @@ package org.andstatus.todoagenda.widget; +import androidx.annotation.Nullable; + import org.andstatus.todoagenda.prefs.OrderedEventSource; import org.andstatus.todoagenda.task.TaskEvent; import org.joda.time.DateTime; @@ -10,13 +12,19 @@ public class TaskEntry extends WidgetEntry { private TaskEvent event; public static TaskEntry fromEvent(TaskEvent event) { - TaskEntry entry = new TaskEntry(ENTRY_DATE, event.getStartDate(), event.getDueDate()); + TaskEntry entry = new TaskEntry(ENTRY_DATE, event.getStartDate()); entry.event = event; return entry; } - private TaskEntry(WidgetEntryPosition entryPosition, DateTime entryDate, DateTime endDate) { - super(entryPosition, entryDate, endDate); + private TaskEntry(WidgetEntryPosition entryPosition, DateTime entryDate) { + super(entryPosition, entryDate); + } + + @Nullable + @Override + public DateTime getEndDate() { + return event.getDueDate(); } @Override diff --git a/app/src/main/java/org/andstatus/todoagenda/widget/WidgetEntry.java b/app/src/main/java/org/andstatus/todoagenda/widget/WidgetEntry.java index 59d3d175..be3b14b8 100644 --- a/app/src/main/java/org/andstatus/todoagenda/widget/WidgetEntry.java +++ b/app/src/main/java/org/andstatus/todoagenda/widget/WidgetEntry.java @@ -13,17 +13,10 @@ public abstract class WidgetEntry> implements Comparabl public final WidgetEntryPosition entryPosition; public final DateTime entryDate; - @Nullable - public final DateTime endDate; - public final boolean isLastEntryOfEvent; - protected WidgetEntry(WidgetEntryPosition entryPosition, DateTime entryDate, @Nullable DateTime eventEndDate) { + protected WidgetEntry(WidgetEntryPosition entryPosition, DateTime entryDate) { this.entryPosition = entryPosition; this.entryDate = fixEntryDate(entryPosition, entryDate); - endDate = eventEndDate; - isLastEntryOfEvent = endDate == null || - !entryPosition.entryDateIsRequired || - endDate.isBefore(DateUtil.startOfNextDay(this.entryDate)); } private static DateTime fixEntryDate(WidgetEntryPosition entryPosition, DateTime entryDate) { @@ -64,12 +57,19 @@ private static void throwIfNull(WidgetEntryPosition entryPosition, DateTime entr } } + public boolean isLastEntryOfEvent() { + return getEndDate() == null || + !entryPosition.entryDateIsRequired || + getEndDate().isBefore(DateUtil.startOfNextDay(this.entryDate)); + } + public DateTime getEntryDay() { return entryDate.withTimeAtStartOfDay(); } + @Nullable public DateTime getEndDate() { - return endDate; + return null; } public OrderedEventSource getSource() { @@ -136,7 +136,7 @@ public TimeSection getTimeSection() { } return DateUtil.isBeforeToday(entryDate) ? TimeSection.PAST - : (DateUtil.isToday(endDate) ? TimeSection.TODAY : TimeSection.FUTURE); + : (DateUtil.isToday(getEndDate()) ? TimeSection.TODAY : TimeSection.FUTURE); } public boolean duplicates(WidgetEntry other) {