Skip to content

Commit ac39f7d

Browse files
committed
Merge branch 'pr/50'
2 parents a8431b9 + 9bfd96b commit ac39f7d

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ Use the following interfaces according to your need.
129129
- `mWeekView.setEmptyViewClickListener()` to get a callback when any empty space is clicked
130130
- `mWeekView.setEmptyViewLongPressListener()` to get a callback when any empty space is long pressed
131131
- `mWeekView.setDateTimeInterpreter()` to set your own labels for the calendar header row and header column
132+
- `mWeekView.setScrolledListener()` to get an event every time the first visible day has changed
132133

133134
Sample
134135
----------

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ public class WeekView extends View {
111111
private EmptyViewClickListener mEmptyViewClickListener;
112112
private EmptyViewLongPressListener mEmptyViewLongPressListener;
113113
private DateTimeInterpreter mDateTimeInterpreter;
114+
private ScrollListener mScrollListener;
114115

115116
private final GestureDetector.SimpleOnGestureListener mGestureListener = new GestureDetector.SimpleOnGestureListener() {
116117

@@ -429,8 +430,12 @@ private void drawHeaderRowAndEvents(Canvas canvas) {
429430
}
430431

431432
// Iterate through each day.
433+
Calendar oldFirstVisibleDay = mFirstVisibleDay;
432434
mFirstVisibleDay = (Calendar) mToday.clone();
433435
mFirstVisibleDay.add(Calendar.DATE, leftDaysWithGaps);
436+
if(!mFirstVisibleDay.equals(oldFirstVisibleDay) && mScrollListener != null){
437+
mScrollListener.onFirstVisibleDayChanged(mFirstVisibleDay, oldFirstVisibleDay);
438+
}
434439
for (int dayNumber = leftDaysWithGaps + 1;
435440
dayNumber <= leftDaysWithGaps + mNumberOfVisibleDays + 1;
436441
dayNumber++) {
@@ -973,6 +978,13 @@ public EmptyViewLongPressListener getEmptyViewLongPressListener(){
973978
return mEmptyViewLongPressListener;
974979
}
975980

981+
public void setScrollListener(ScrollListener scrolledListener){
982+
this.mScrollListener = scrolledListener;
983+
}
984+
985+
public ScrollListener getScrollListener(){
986+
return mScrollListener;
987+
}
976988
/**
977989
* Get the interpreter which provides the text to show in the header column and the header row.
978990
* @return The date, time interpreter.
@@ -1449,6 +1461,17 @@ public interface EmptyViewLongPressListener {
14491461
public void onEmptyViewLongPress(Calendar time);
14501462
}
14511463

1464+
public interface ScrollListener {
1465+
/**
1466+
* Called when the first visible day has changed.
1467+
*
1468+
* (this will also be called during the first draw of the weekview)
1469+
* @param newFirstVisibleDay The new first visible day
1470+
* @param oldFirstVisibleDay The old first visible day (is null on the first call).
1471+
*/
1472+
public void onFirstVisibleDayChanged(Calendar newFirstVisibleDay, Calendar oldFirstVisibleDay);
1473+
}
1474+
14521475

14531476
/////////////////////////////////////////////////////////////////
14541477
//

0 commit comments

Comments
 (0)