0

I'm using alamkanak/Android-Week-View library and works fine, but I want to prevent this to happen:

Event collision

I try this:

        Calendar oldEndTime = null;

        Calendar oldStartTime = null;

        for (int i = 0; i < mNewEvents.size(); i++) {

            oldEndTime = mNewEvents.get(i).getEndTime();

            oldStartTime = mNewEvents.get(i).getStartTime();

        }
        if ( mNewEvents.size() == 0
            || event.getEndTime().before(oldStartTime)
            || event.getStartTime().after(oldEndTime)  ){

                mNewEvents.add(event);
        } else {
            Toast.makeText(this, "Noop", Toast.LENGTH_SHORT).show();
        }
Ole V.V.
  • 81,772
  • 15
  • 137
  • 161
Eudes Inácio
  • 33
  • 2
  • 9

1 Answers1

0

Please check if the closing bracket of your for loop is set correctly. You are setting oldStartTime and oldEndTime in the loop but your test is done only once - after the loop. Maybe something like this?

Calendar oldEndTime = null;
Calendar oldStartTime = null;
boolean collision = false;
for (int i = 0; i < mNewEvents.size(); i++) {
    oldEndTime = mNewEvents.get(i).getEndTime();
    oldStartTime = mNewEvents.get(i).getStartTime();
    if (event.getEndTime().after(oldStartTime) 
        && event.getStartTime().before(oldEndTime)) {
        collision = true;
        break;
    }
}
if (!collision) {
    mNewEvents.add(event);
} else {
    Toast.makeText(this, "Noop", Toast.LENGTH_SHORT).show();
}
  • Glad I was able to help. Could you please mark my answer as the accepted answer? Thanks a lot. –  Feb 02 '18 at 12:31