package com.fourtails.usuariolecturista.jobs; import com.appspot.ocr_backend.backend.Backend; import com.appspot.ocr_backend.backend.model.MessagesNewPrepay; import com.appspot.ocr_backend.backend.model.MessagesNewPrepayResponse; import com.fourtails.usuariolecturista.MainActivity; import com.fourtails.usuariolecturista.ottoEvents.CreatePrepayJobEvent; import com.google.api.client.extensions.android.http.AndroidHttp; import com.google.api.client.extensions.android.json.AndroidJsonFactory; import com.orhanobut.logger.Logger; import com.path.android.jobqueue.Job; import com.path.android.jobqueue.Params; import static com.fourtails.usuariolecturista.ottoEvents.CreatePrepayJobEvent.Type; /** * CreatePrepayJob async job */ public class CreatePrepayJob extends Job { boolean responseOk = false; boolean retry = true; String accountNumber; long mM3toPrepay; public CreatePrepayJob(String accountNumber, long mM3toPrepay) { super(new Params(Priority.MID).requireNetwork().groupBy("create-prepay")); this.accountNumber = accountNumber; this.mM3toPrepay = mM3toPrepay; } @Override public void onAdded() { } @Override public void onRun() throws Throwable { // Use a builder to help formulate the API request. Backend.Builder builder = new Backend.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null); Backend service = builder.build(); MessagesNewPrepay messagesNewPrepay = new MessagesNewPrepay(); messagesNewPrepay.setM3ToPrepay(mM3toPrepay); messagesNewPrepay.setAccountNumber(accountNumber); MessagesNewPrepayResponse response = service.prepay().backendNew(messagesNewPrepay).execute(); if (response.getOk()) { Logger.json(response.toPrettyString()); responseOk = true; // Go back to main activity and call the rest of the backend tasks MainActivity.bus.post(new CreatePrepayJobEvent(Type.COMPLETED, 1)); } else { Logger.e(response.getError()); } } @Override protected void onCancel() { Logger.d("CreatePrepayJob canceled"); MainActivity.bus.post(new CreatePrepayJobEvent(Type.COMPLETED, 99)); } @Override protected boolean shouldReRunOnThrowable(Throwable throwable) { return retry; } }