package co.touchlab.droidconandroid.tasks; import android.content.Context; 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.NetworkErrorHandler; import co.touchlab.droidconandroid.network.SponsorsRequest; import co.touchlab.droidconandroid.network.SponsorsResult; import co.touchlab.droidconandroid.presenter.AppManager; import retrofit.RestAdapter; public class SponsorsTask extends Task { public static final int SPONSOR_GENERAL = 0; public static final int SPONSOR_STREAMING = 1; public static final int SPONSOR_PARTY = 2; //TODO move to build config? public static final String URL_AMAZON_S3 = "https://s3.amazonaws.com/"; public int type; public SponsorsResult response; public SponsorsTask(int type) { this.type = type; } @Override protected void run(Context context) throws Throwable { RestAdapter restAdapter = DataHelper.makeRequestAdapterBuilder(context, AppManager.getPlatformClient(), URL_AMAZON_S3, new NetworkErrorHandler()).build(); String fileName = getFileName(type); response = restAdapter.create(SponsorsRequest.class).getSponsors(fileName); } private String getFileName(int type) { switch(type) { case SPONSOR_STREAMING: return "sponsors_stream.json"; case SPONSOR_PARTY: return "sponsors_party.json"; default: return "sponsors_general.json"; } } @Override protected boolean handleError(Context context, Throwable throwable) { CrashReport.logException(throwable); return true; } @Override protected void onComplete(Context context) { super.onComplete(context); EventBusExt.getDefault().post(this); } }