package co.touchlab.droidconandroid.tasks;
import android.content.Context;
import java.util.concurrent.TimeUnit;
import co.touchlab.android.threading.eventbus.EventBusExt;
import co.touchlab.android.threading.tasks.Task;
import co.touchlab.droidconandroid.data.AppPrefs;
import co.touchlab.droidconandroid.data.Event;
import co.touchlab.droidconandroid.presenter.ConferenceDataHelper;
import co.touchlab.droidconandroid.presenter.ConferenceDayHolder;
import co.touchlab.droidconandroid.presenter.ScheduleBlockHour;
/**
* Created by samuelhill on 7/5/16.
*/
public class UpdateAlertsTask extends Task
{
public Event nextEvent = null;
public static final long ALERT_BUFFER = TimeUnit.MINUTES.toMillis(5);
@Override
protected void run(Context context) throws Throwable
{
if(AppPrefs.getInstance(context).getAllowNotifications())
{
ConferenceDayHolder[] conferenceDayHolders = ConferenceDataHelper.listDays(context,
false);
for(ConferenceDayHolder day : conferenceDayHolders)
{
for(ScheduleBlockHour hour : day.hourHolders)
{
if(hour.scheduleBlock instanceof Event)
{
Event event = (Event) hour.scheduleBlock;
if(event.getStartLong() - ALERT_BUFFER > System.currentTimeMillis())
{
nextEvent = event;
return;
}
}
}
}
}
}
@Override
protected boolean handleError(Context context, Throwable throwable)
{
return false;
}
@Override
protected void onComplete(Context context)
{
EventBusExt.getDefault().post(this);
}
}