package co.touchlab.droidconandroid.tasks; import android.content.Context; import org.apache.commons.lang3.StringUtils; import co.touchlab.android.threading.eventbus.EventBusExt; import co.touchlab.android.threading.tasks.Task; import co.touchlab.droidconandroid.CrashReport; import co.touchlab.droidconandroid.network.DataHelper; import co.touchlab.droidconandroid.network.RefreshScheduleDataRequest; import co.touchlab.droidconandroid.network.dao.EventVideoDetails; import co.touchlab.droidconandroid.presenter.AppManager; import retrofit.RestAdapter; /** * Created by kgalligan on 9/14/16. */ public class EventVideoDetailsTask extends Task { private final long eventId; private EventVideoDetails eventVideoDetails; public EventVideoDetailsTask(long eventId) { this.eventId = eventId; } public long getEventId() { return eventId; } public EventVideoDetails getEventVideoDetails() { return eventVideoDetails; } @Override protected void onComplete(Context context) { EventBusExt.getDefault().post(this); } @Override protected void run(Context context) throws Throwable { RestAdapter restAdapter = DataHelper.makeRequestAdapter(context, AppManager.getPlatformClient()); RefreshScheduleDataRequest refreshScheduleDataRequest = restAdapter.create( RefreshScheduleDataRequest.class); eventVideoDetails = refreshScheduleDataRequest.getEventVideoDetails(eventId); } @Override protected boolean handleError(Context context, Throwable throwable) { CrashReport.logException(throwable); return true; } public boolean hasStream() { return eventVideoDetails != null && (StringUtils.isNotEmpty(eventVideoDetails.getStreamLink()) || StringUtils.isNotEmpty(eventVideoDetails.getStreamArchiveLink())); } public boolean isNow() { return eventVideoDetails != null && StringUtils.isNotEmpty(eventVideoDetails.getStreamLink()); } public String getMergedStreamLink() { if(eventVideoDetails == null) return null; return StringUtils.isNotEmpty(eventVideoDetails.getStreamLink()) ? eventVideoDetails.getStreamLink() : eventVideoDetails.getStreamArchiveLink(); } }