|
41 | 41 | import java.util.List;
|
42 | 42 | import java.util.Locale;
|
43 | 43 |
|
| 44 | +import static com.alamkanak.weekview.WeekViewUtil.*; |
| 45 | + |
44 | 46 | /**
|
45 | 47 | * Created by Raquib-ul-Alam Kanak on 7/21/2014.
|
46 | 48 | * Website: http://alamkanak.github.io/
|
@@ -1051,43 +1053,9 @@ else if (periodToFetch == mFetchedPeriod+1){
|
1051 | 1053 | private void cacheEvent(WeekViewEvent event) {
|
1052 | 1054 | if(event.getStartTime().compareTo(event.getEndTime()) >= 0)
|
1053 | 1055 | return;
|
1054 |
| - if (!isSameDay(event.getStartTime(), event.getEndTime())) { |
1055 |
| - // Add first day. |
1056 |
| - Calendar endTime = (Calendar) event.getStartTime().clone(); |
1057 |
| - endTime.set(Calendar.HOUR_OF_DAY, 23); |
1058 |
| - endTime.set(Calendar.MINUTE, 59); |
1059 |
| - WeekViewEvent event1 = new WeekViewEvent(event.getId(), event.getName(), event.getLocation(), event.getStartTime(), endTime, event.isAllDay()); |
1060 |
| - event1.setColor(event.getColor()); |
1061 |
| - mEventRects.add(new EventRect(event1, event, null)); |
1062 |
| - |
1063 |
| - // Add other days. |
1064 |
| - Calendar otherDay = (Calendar) event.getStartTime().clone(); |
1065 |
| - otherDay.add(Calendar.DATE, 1); |
1066 |
| - while (!isSameDay(otherDay, event.getEndTime())) { |
1067 |
| - Calendar overDay = (Calendar) otherDay.clone(); |
1068 |
| - overDay.set(Calendar.HOUR_OF_DAY, 0); |
1069 |
| - overDay.set(Calendar.MINUTE, 0); |
1070 |
| - Calendar endOfOverDay = (Calendar) overDay.clone(); |
1071 |
| - endOfOverDay.set(Calendar.HOUR_OF_DAY, 23); |
1072 |
| - endOfOverDay.set(Calendar.MINUTE, 59); |
1073 |
| - WeekViewEvent eventMore = new WeekViewEvent(event.getId(), event.getName(),null, overDay, endOfOverDay, event.isAllDay()); |
1074 |
| - eventMore.setColor(event.getColor()); |
1075 |
| - mEventRects.add(new EventRect(eventMore, event, null)); |
1076 |
| - |
1077 |
| - // Add next day. |
1078 |
| - otherDay.add(Calendar.DATE, 1); |
1079 |
| - } |
1080 |
| - |
1081 |
| - // Add last day. |
1082 |
| - Calendar startTime = (Calendar) event.getEndTime().clone(); |
1083 |
| - startTime.set(Calendar.HOUR_OF_DAY, 0); |
1084 |
| - startTime.set(Calendar.MINUTE, 0); |
1085 |
| - WeekViewEvent event2 = new WeekViewEvent(event.getId(), event.getName(), event.getLocation(), startTime, event.getEndTime(), event.isAllDay()); |
1086 |
| - event2.setColor(event.getColor()); |
1087 |
| - mEventRects.add(new EventRect(event2, event, null)); |
1088 |
| - } |
1089 |
| - else { |
1090 |
| - mEventRects.add(new EventRect(event, event, null)); |
| 1056 | + List<WeekViewEvent> splitedEvents = event.splitWeekViewEvents(); |
| 1057 | + for(WeekViewEvent splitedEvent: splitedEvents){ |
| 1058 | + mEventRects.add(new EventRect(splitedEvent, event, null)); |
1091 | 1059 | }
|
1092 | 1060 | }
|
1093 | 1061 |
|
@@ -2071,35 +2039,4 @@ public interface ScrollListener {
|
2071 | 2039 | */
|
2072 | 2040 | void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay);
|
2073 | 2041 | }
|
2074 |
| - |
2075 |
| - |
2076 |
| - ///////////////////////////////////////////////////////////////// |
2077 |
| - // |
2078 |
| - // Helper methods. |
2079 |
| - // |
2080 |
| - ///////////////////////////////////////////////////////////////// |
2081 |
| - |
2082 |
| - /** |
2083 |
| - * Checks if two times are on the same day. |
2084 |
| - * @param dayOne The first day. |
2085 |
| - * @param dayTwo The second day. |
2086 |
| - * @return Whether the times are on the same day. |
2087 |
| - */ |
2088 |
| - private boolean isSameDay(Calendar dayOne, Calendar dayTwo) { |
2089 |
| - return dayOne.get(Calendar.YEAR) == dayTwo.get(Calendar.YEAR) && dayOne.get(Calendar.DAY_OF_YEAR) == dayTwo.get(Calendar.DAY_OF_YEAR); |
2090 |
| - } |
2091 |
| - |
2092 |
| - /** |
2093 |
| - * Returns a calendar instance at the start of this day |
2094 |
| - * @return the calendar instance |
2095 |
| - */ |
2096 |
| - private Calendar today(){ |
2097 |
| - Calendar today = Calendar.getInstance(); |
2098 |
| - today.set(Calendar.HOUR_OF_DAY, 0); |
2099 |
| - today.set(Calendar.MINUTE, 0); |
2100 |
| - today.set(Calendar.SECOND, 0); |
2101 |
| - today.set(Calendar.MILLISECOND, 0); |
2102 |
| - return today; |
2103 |
| - } |
2104 |
| - |
2105 | 2042 | }
|
0 commit comments