package com.crossbow.volley; import android.os.Handler; import android.os.Looper; import com.android.volley.VolleyError; /** */ public class BasicFileDelivery implements FileDelivery { private Handler handler = new Handler(Looper.getMainLooper()); @Override public void deliverSuccess(FileRequest<?> fileRequest, FileResponse<?> fileResponse) { if(!fileRequest.isCanceled()) { fileRequest.mark("post-result"); fileRequest.finish(); handler.post(new SuccessRunnable(fileRequest, fileResponse)); } else { fileRequest.mark("result-canceled-at-delivery"); } } @Override public void deliverError(FileRequest<?> fileRequest, VolleyError error) { if(!fileRequest.isCanceled()) { fileRequest.mark("post-error"); fileRequest.finish(); handler.post(new ErrorRunnable(fileRequest, error)); } else { fileRequest.mark("error-canceled-at-delivery"); } } private class SuccessRunnable implements Runnable { private final FileRequest<?> fileRequest; private final FileResponse fileResponse; private SuccessRunnable(FileRequest<?> fileRequest, FileResponse<?> fileResponse) { this.fileRequest = fileRequest; this.fileResponse = fileResponse; } @Override public void run() { fileRequest.preformDelivery(fileResponse); } } private class ErrorRunnable implements Runnable { private final FileRequest<?> fileRequest; private final VolleyError volleyError; private ErrorRunnable(FileRequest<?> fileRequest, VolleyError volleyError) { this.fileRequest = fileRequest; this.volleyError = volleyError; } @Override public void run() { fileRequest.preformError(volleyError); } } }