package com.thibaudperso.sonycamera.timelapse.control;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileRequest<T> extends Request<T> {
private Response.Listener<T> mListener;
private File mOutputFile;
public FileRequest(String url, File outputFile, Response.Listener<T> listener,
Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
mListener = listener;
mOutputFile = outputFile;
}
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
try {
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(mOutputFile));
bos.write(response.data);
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return Response.success(null, HttpHeaderParser.parseCacheHeaders(response));
}
@Override
protected void deliverResponse(T response) {
mListener.onResponse(null);
}
}