Skip to content

Commit ed450d8

Browse files
author
Jens Claes
committed
Don't split events if endTime is first millisecond of a day.
See #274: #274 (comment)
1 parent c51239a commit ed450d8

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

library/src/main/java/com/alamkanak/weekview/WeekViewEvent.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,11 @@ public int hashCode() {
175175
public List<WeekViewEvent> splitWeekViewEvents(){
176176
//This function splits the WeekViewEvent in WeekViewEvents by day
177177
List<WeekViewEvent> events = new ArrayList<WeekViewEvent>();
178-
if (!isSameDay(this.getStartTime(), this.getEndTime())) {
179-
Calendar endTime = (Calendar) this.getStartTime().clone();
178+
// The first millisecond of the next day is still the same day. (no need to split events for this).
179+
Calendar endTime = (Calendar) this.getEndTime().clone();
180+
endTime.add(Calendar.MILLISECOND, -1);
181+
if (!isSameDay(this.getStartTime(), endTime)) {
182+
endTime = (Calendar) this.getStartTime().clone();
180183
endTime.set(Calendar.HOUR_OF_DAY, 23);
181184
endTime.set(Calendar.MINUTE, 59);
182185
WeekViewEvent event1 = new WeekViewEvent(this.getId(), this.getName(), this.getLocation(), this.getStartTime(), endTime, this.isAllDay());

sample/src/main/java/com/alamkanak/weekview/sample/BasicActivity.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,21 @@ public List<? extends WeekViewEvent> onMonthChange(int newYear, int newMonth) {
142142
event.setColor(getResources().getColor(R.color.event_color_03));
143143
events.add(event);
144144

145+
// All day event until 00:00 next day
146+
startTime = Calendar.getInstance();
147+
startTime.set(Calendar.DAY_OF_MONTH, 10);
148+
startTime.set(Calendar.HOUR_OF_DAY, 0);
149+
startTime.set(Calendar.MINUTE, 0);
150+
startTime.set(Calendar.SECOND, 0);
151+
startTime.set(Calendar.MILLISECOND, 0);
152+
startTime.set(Calendar.MONTH, newMonth-1);
153+
startTime.set(Calendar.YEAR, newYear);
154+
endTime = (Calendar) startTime.clone();
155+
endTime.set(Calendar.DAY_OF_MONTH, 11);
156+
event = new WeekViewEvent(8, getEventTitle(startTime), null, startTime, endTime, true);
157+
event.setColor(getResources().getColor(R.color.event_color_01));
158+
events.add(event);
159+
145160
return events;
146161
}
147162

0 commit comments

Comments
 (0)