Skip to content

Commit d02ed17

Browse files
committed
Empty view long press support added
1 parent 8bc63c7 commit d02ed17

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

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

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)