Skip to content

Commit 59fb6fa

Browse files
author
Jens Claes
committed
Merge branch 'pr-200' into develop
2 parents 3724c54 + 2a67bdb commit 59fb6fa

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

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

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -856,25 +856,29 @@ private void getMoreEvents(Calendar day) {
856856
}
857857

858858
// Prepare to calculate positions of each events.
859-
ArrayList<EventRect> tempEvents = new ArrayList<EventRect>(mEventRects);
859+
List<EventRect> tempEvents = mEventRects;
860860
mEventRects = new ArrayList<EventRect>();
861-
Calendar dayCounter = (Calendar) day.clone();
862-
dayCounter.add(Calendar.MONTH, -1);
863-
dayCounter.set(Calendar.DAY_OF_MONTH, 1);
864-
Calendar maxDay = (Calendar) day.clone();
865-
maxDay.add(Calendar.MONTH, 1);
866-
maxDay.set(Calendar.DAY_OF_MONTH, maxDay.getActualMaximum(Calendar.DAY_OF_MONTH));
867-
868-
// Iterate through each day to calculate the position of the events.
869-
while (dayCounter.getTimeInMillis() <= maxDay.getTimeInMillis()) {
870-
ArrayList<EventRect> eventRects = new ArrayList<EventRect>();
871-
for (EventRect eventRect : tempEvents) {
872-
if (isSameDay(eventRect.event.getStartTime(), dayCounter))
873-
eventRects.add(eventRect);
874-
}
875861

862+
// Iterate through each day with events to calculate the position of the events.
863+
while (tempEvents.size() > 0) {
864+
ArrayList<EventRect> eventRects = new ArrayList<>(tempEvents.size());
865+
866+
// get first event for a day
867+
EventRect eventRect1 = tempEvents.remove(0);
868+
eventRects.add(eventRect1);
869+
870+
int i = 0;
871+
while (i < tempEvents.size()) {
872+
// collect all other events for same day
873+
EventRect eventRect2 = tempEvents.get(i);
874+
if (isSameDay(eventRect1.event.getStartTime(), eventRect2.event.getStartTime())) {
875+
tempEvents.remove(i);
876+
eventRects.add(eventRect2);
877+
} else {
878+
i++;
879+
}
880+
}
876881
computePositionOfEvents(eventRects);
877-
dayCounter.add(Calendar.DATE, 1);
878882
}
879883
}
880884

0 commit comments

Comments
 (0)