@@ -106,7 +106,8 @@ public class WeekView extends View {
106106 private EventClickListener mEventClickListener ;
107107 private EventLongPressListener mEventLongPressListener ;
108108 private MonthChangeListener mMonthChangeListener ;
109- private TimeClickListener mTimeClickListener ;
109+ private EmptyViewClickListener mEmptyViewClickListener ;
110+ private EmptyViewLongPressListener mEmptyViewLongPressListener ;
110111 private DateTimeInterpreter mDateTimeInterpreter ;
111112
112113 private final GestureDetector .SimpleOnGestureListener mGestureListener = new GestureDetector .SimpleOnGestureListener () {
@@ -169,11 +170,11 @@ public boolean onSingleTapConfirmed(MotionEvent e) {
169170 }
170171
171172 // If the tap was on in an empty space, then trigger the callback.
172- if (mTimeClickListener != null && e .getX () > mHeaderColumnWidth && e .getY () > (mHeaderTextHeight + mHeaderRowPadding * 2 + mHeaderMarginBottom )) {
173+ if (mEmptyViewClickListener != null && e .getX () > mHeaderColumnWidth && e .getY () > (mHeaderTextHeight + mHeaderRowPadding * 2 + mHeaderMarginBottom )) {
173174 Calendar selectedTime = getTimeFromPoint (e .getX (), e .getY ());
174175 if (selectedTime != null ) {
175176 playSoundEffect (SoundEffectConstants .CLICK );
176- mTimeClickListener . onTimeClicked (selectedTime );
177+ mEmptyViewClickListener . onEmptyViewClicked (selectedTime );
177178 }
178179 }
179180
@@ -191,10 +192,19 @@ public void onLongPress(MotionEvent e) {
191192 if (event .rectF != null && e .getX () > event .rectF .left && e .getX () < event .rectF .right && e .getY () > event .rectF .top && e .getY () < event .rectF .bottom ) {
192193 mEventLongPressListener .onEventLongPress (event .originalEvent , event .rectF );
193194 performHapticFeedback (HapticFeedbackConstants .LONG_PRESS );
194- break ;
195+ return ;
195196 }
196197 }
197198 }
199+
200+ // If the tap was on in an empty space, then trigger the callback.
201+ if (mEmptyViewLongPressListener != null && e .getX () > mHeaderColumnWidth && e .getY () > (mHeaderTextHeight + mHeaderRowPadding * 2 + mHeaderMarginBottom )) {
202+ Calendar selectedTime = getTimeFromPoint (e .getX (), e .getY ());
203+ if (selectedTime != null ) {
204+ performHapticFeedback (HapticFeedbackConstants .LONG_PRESS );
205+ mEmptyViewLongPressListener .onEmptyViewLongPress (selectedTime );
206+ }
207+ }
198208 }
199209 };
200210
@@ -926,12 +936,20 @@ public void setEventLongPressListener(EventLongPressListener eventLongPressListe
926936 this .mEventLongPressListener = eventLongPressListener ;
927937 }
928938
929- public void setHourClickListener ( TimeClickListener mTimeClickListener ){
930- this .mTimeClickListener = mTimeClickListener ;
939+ public void setEmptyViewClickListener ( EmptyViewClickListener emptyViewClickListener ){
940+ this .mEmptyViewClickListener = emptyViewClickListener ;
931941 }
932942
933- public TimeClickListener getHourClickListener (){
934- return mTimeClickListener ;
943+ public EmptyViewClickListener getEmptyViewClickListener (){
944+ return mEmptyViewClickListener ;
945+ }
946+
947+ public void setEmptyViewLongPressListener (EmptyViewLongPressListener emptyViewLongPressListener ){
948+ this .mEmptyViewLongPressListener = emptyViewLongPressListener ;
949+ }
950+
951+ public EmptyViewLongPressListener getEmptyViewLongPressListener (){
952+ return mEmptyViewLongPressListener ;
935953 }
936954
937955 /**
@@ -1393,8 +1411,12 @@ public interface EventLongPressListener {
13931411 public void onEventLongPress (WeekViewEvent event , RectF eventRect );
13941412 }
13951413
1396- public interface TimeClickListener {
1397- public void onTimeClicked (Calendar time );
1414+ public interface EmptyViewClickListener {
1415+ public void onEmptyViewClicked (Calendar time );
1416+ }
1417+
1418+ public interface EmptyViewLongPressListener {
1419+ public void onEmptyViewLongPress (Calendar time );
13981420 }
13991421
14001422
0 commit comments