@@ -505,7 +505,7 @@ private void calculateHeaderHeight(){
505
505
day .add (Calendar .DATE , dayNumber );
506
506
for (int i = 0 ; i < mEventRects .size (); i ++) {
507
507
508
- if (isSameDay (mEventRects .get (i ).event .getStartTime (), day ) && mEventRects .get (i ).event .isAllDay ()) {
508
+ if (WeekViewUtil . isSameDay (mEventRects .get (i ).event .getStartTime (), day ) && mEventRects .get (i ).event .isAllDay ()) {
509
509
containsAllDayEvent = true ;
510
510
break ;
511
511
}
@@ -549,7 +549,7 @@ private void drawHeaderRowAndEvents(Canvas canvas) {
549
549
550
550
calculateHeaderHeight (); //Make sure the header is the right size (depends on AllDay events)
551
551
552
- Calendar today = today ();
552
+ Calendar today = WeekViewUtil . today ();
553
553
554
554
if (mAreDimensionsInvalid ) {
555
555
mEffectiveMinHourHeight = Math .max (mMinHourHeight , (int ) ((getHeight () - mHeaderHeight - mHeaderRowPadding * 2 - mHeaderMarginBottom ) / 24 ));
@@ -640,7 +640,7 @@ else if (mNewHourHeight > mMaxHourHeight)
640
640
mLastVisibleDay = (Calendar ) day .clone ();
641
641
day .add (Calendar .DATE , dayNumber - 1 );
642
642
mLastVisibleDay .add (Calendar .DATE , dayNumber - 2 );
643
- boolean sameDay = isSameDay (day , today );
643
+ boolean sameDay = WeekViewUtil . isSameDay (day , today );
644
644
645
645
// Get more events if necessary. We want to store the events 3 months beforehand. Get
646
646
// events only when it is the first iteration of the loop.
@@ -722,7 +722,7 @@ else if (day.before(today)) {
722
722
// Check if the day is today.
723
723
day = (Calendar ) today .clone ();
724
724
day .add (Calendar .DATE , dayNumber - 1 );
725
- boolean sameDay = isSameDay (day , today );
725
+ boolean sameDay = WeekViewUtil . isSameDay (day , today );
726
726
727
727
// Draw the day labels.
728
728
String dayLabel = getDateTimeInterpreter ().interpretDate (day );
@@ -750,7 +750,7 @@ private Calendar getTimeFromPoint(float x, float y){
750
750
dayNumber ++) {
751
751
float start = (startPixel < mHeaderColumnWidth ? mHeaderColumnWidth : startPixel );
752
752
if (mWidthPerDay + startPixel - start > 0 && x > start && x < startPixel + mWidthPerDay ){
753
- Calendar day = today ();
753
+ Calendar day = WeekViewUtil . today ();
754
754
day .add (Calendar .DATE , dayNumber - 1 );
755
755
float pixelsFromZero = y - mCurrentOrigin .y - mHeaderHeight
756
756
- mHeaderRowPadding * 2 - mTimeTextHeight /2 - mHeaderMarginBottom ;
@@ -774,7 +774,7 @@ private Calendar getTimeFromPoint(float x, float y){
774
774
private void drawEvents (Calendar date , float startFromPixel , Canvas canvas ) {
775
775
if (mEventRects != null && mEventRects .size () > 0 ) {
776
776
for (int i = 0 ; i < mEventRects .size (); i ++) {
777
- if (isSameDay (mEventRects .get (i ).event .getStartTime (), date ) && !mEventRects .get (i ).event .isAllDay ()){
777
+ if (WeekViewUtil . isSameDay (mEventRects .get (i ).event .getStartTime (), date ) && !mEventRects .get (i ).event .isAllDay ()){
778
778
779
779
// Calculate top.
780
780
float top = mHourHeight * 24 * mEventRects .get (i ).top / 1440 + mCurrentOrigin .y + mHeaderHeight + mHeaderRowPadding * 2 + mHeaderMarginBottom + mTimeTextHeight /2 + mEventMarginVertical ;
@@ -819,7 +819,7 @@ top < getHeight() &&
819
819
private void drawAllDayEvents (Calendar date , float startFromPixel , Canvas canvas ) {
820
820
if (mEventRects != null && mEventRects .size () > 0 ) {
821
821
for (int i = 0 ; i < mEventRects .size (); i ++) {
822
- if (isSameDay (mEventRects .get (i ).event .getStartTime (), date ) && mEventRects .get (i ).event .isAllDay ()){
822
+ if (WeekViewUtil . isSameDay (mEventRects .get (i ).event .getStartTime (), date ) && mEventRects .get (i ).event .isAllDay ()){
823
823
824
824
// Calculate top.
825
825
float top = mHeaderRowPadding * 2 + mHeaderMarginBottom + + mTimeTextHeight /2 + mEventMarginVertical ;
@@ -1029,7 +1029,7 @@ else if (periodToFetch == mFetchedPeriod+1){
1029
1029
while (i < tempEvents .size ()) {
1030
1030
// Collect all other events for same day.
1031
1031
EventRect eventRect2 = tempEvents .get (i );
1032
- if (isSameDay (eventRect1 .event .getStartTime (), eventRect2 .event .getStartTime ())) {
1032
+ if (WeekViewUtil . isSameDay (eventRect1 .event .getStartTime (), eventRect2 .event .getStartTime ())) {
1033
1033
tempEvents .remove (i );
1034
1034
eventRects .add (eventRect2 );
1035
1035
} else {
@@ -1047,43 +1047,9 @@ else if (periodToFetch == mFetchedPeriod+1){
1047
1047
private void cacheEvent (WeekViewEvent event ) {
1048
1048
if (event .getStartTime ().compareTo (event .getEndTime ()) >= 0 )
1049
1049
return ;
1050
- if (!isSameDay (event .getStartTime (), event .getEndTime ())) {
1051
- // Add first day.
1052
- Calendar endTime = (Calendar ) event .getStartTime ().clone ();
1053
- endTime .set (Calendar .HOUR_OF_DAY , 23 );
1054
- endTime .set (Calendar .MINUTE , 59 );
1055
- WeekViewEvent event1 = new WeekViewEvent (event .getId (), event .getName (), event .getLocation (), event .getStartTime (), endTime , event .isAllDay ());
1056
- event1 .setColor (event .getColor ());
1057
- mEventRects .add (new EventRect (event1 , event , null ));
1058
-
1059
- // Add other days.
1060
- Calendar otherDay = (Calendar ) event .getStartTime ().clone ();
1061
- otherDay .add (Calendar .DATE , 1 );
1062
- while (!isSameDay (otherDay , event .getEndTime ())) {
1063
- Calendar overDay = (Calendar ) otherDay .clone ();
1064
- overDay .set (Calendar .HOUR_OF_DAY , 0 );
1065
- overDay .set (Calendar .MINUTE , 0 );
1066
- Calendar endOfOverDay = (Calendar ) overDay .clone ();
1067
- endOfOverDay .set (Calendar .HOUR_OF_DAY , 23 );
1068
- endOfOverDay .set (Calendar .MINUTE , 59 );
1069
- WeekViewEvent eventMore = new WeekViewEvent (event .getId (), event .getName (),null , overDay , endOfOverDay , event .isAllDay ());
1070
- eventMore .setColor (event .getColor ());
1071
- mEventRects .add (new EventRect (eventMore , event , null ));
1072
-
1073
- // Add next day.
1074
- otherDay .add (Calendar .DATE , 1 );
1075
- }
1076
-
1077
- // Add last day.
1078
- Calendar startTime = (Calendar ) event .getEndTime ().clone ();
1079
- startTime .set (Calendar .HOUR_OF_DAY , 0 );
1080
- startTime .set (Calendar .MINUTE , 0 );
1081
- WeekViewEvent event2 = new WeekViewEvent (event .getId (), event .getName (), event .getLocation (), startTime , event .getEndTime (), event .isAllDay ());
1082
- event2 .setColor (event .getColor ());
1083
- mEventRects .add (new EventRect (event2 , event , null ));
1084
- }
1085
- else {
1086
- mEventRects .add (new EventRect (event , event , null ));
1050
+ List <WeekViewEvent > splitedEvents = event .splitWeekViewEvents ();
1051
+ for (WeekViewEvent splitedEvent : splitedEvents ){
1052
+ mEventRects .add (new EventRect (splitedEvent , event , null ));
1087
1053
}
1088
1054
}
1089
1055
@@ -2041,35 +2007,4 @@ public interface ScrollListener {
2041
2007
*/
2042
2008
void onFirstVisibleDayChanged (Calendar newFirstVisibleDay , Calendar oldFirstVisibleDay );
2043
2009
}
2044
-
2045
-
2046
- /////////////////////////////////////////////////////////////////
2047
- //
2048
- // Helper methods.
2049
- //
2050
- /////////////////////////////////////////////////////////////////
2051
-
2052
- /**
2053
- * Checks if two times are on the same day.
2054
- * @param dayOne The first day.
2055
- * @param dayTwo The second day.
2056
- * @return Whether the times are on the same day.
2057
- */
2058
- private boolean isSameDay (Calendar dayOne , Calendar dayTwo ) {
2059
- return dayOne .get (Calendar .YEAR ) == dayTwo .get (Calendar .YEAR ) && dayOne .get (Calendar .DAY_OF_YEAR ) == dayTwo .get (Calendar .DAY_OF_YEAR );
2060
- }
2061
-
2062
- /**
2063
- * Returns a calendar instance at the start of this day
2064
- * @return the calendar instance
2065
- */
2066
- private Calendar today (){
2067
- Calendar today = Calendar .getInstance ();
2068
- today .set (Calendar .HOUR_OF_DAY , 0 );
2069
- today .set (Calendar .MINUTE , 0 );
2070
- today .set (Calendar .SECOND , 0 );
2071
- today .set (Calendar .MILLISECOND , 0 );
2072
- return today ;
2073
- }
2074
-
2075
2010
}
0 commit comments