package co.touchlab.droidconandroid.tasks; import android.content.Context; import java.util.UUID; import java.util.concurrent.Callable; import co.touchlab.android.threading.eventbus.EventBusExt; import co.touchlab.android.threading.tasks.Task; import co.touchlab.droidconandroid.data.DatabaseHelper; import co.touchlab.droidconandroid.data.Event; import co.touchlab.droidconandroid.tasks.persisted.AddRsvp; import co.touchlab.droidconandroid.tasks.persisted.PersistedTaskQueueFactory; import co.touchlab.squeaky.dao.Dao; /** * Created by kgalligan on 4/7/16. */ public class AddRsvpTask extends Task { private final Long eventId; public AddRsvpTask(Long eventId) { this.eventId = eventId; } @Override protected void run(final Context context) throws Throwable { DatabaseHelper.getInstance(context).performTransactionOrThrowRuntime(new Callable<Void>() { @Override public Void call() throws Exception { Dao<Event> dao = DatabaseHelper.getInstance(context).getEventDao(); Event event = dao.queryForId(eventId); if (event != null && event.rsvpUuid == null) { String uuid = UUID.randomUUID().toString(); event.rsvpUuid = uuid; dao.update(event); AddRsvp addRsvpCommandKot = new AddRsvp(eventId, uuid); PersistedTaskQueueFactory.getInstance(context).execute(addRsvpCommandKot); Queues.localQueue(context).execute(new UpdateAlertsTask()); } return null; } }); } @Override protected boolean handleError(Context context, Throwable e) { return false; } @Override protected void onComplete(Context context) { EventBusExt.getDefault().post(this); } }