package com.android.volley.toolbox.multipart; import java.io.IOException; import java.io.OutputStream; import com.android.volley.Response.ProgressListener; public class OutputStreamProgress extends OutputStream { private final OutputStream outstream; private long bytesWritten = 0; private long totalSize = 0; private final ProgressListener progressListener; public OutputStreamProgress(OutputStream outstream, ProgressListener progressListener) { this.outstream = outstream; this.progressListener = progressListener; } @Override public void write(int b) throws IOException { outstream.write(b); if(null != progressListener){ bytesWritten++; progressListener.onProgress(bytesWritten, totalSize); } } @Override public void write(byte[] b) throws IOException { outstream.write(b); if(null != progressListener){ bytesWritten += b.length; progressListener.onProgress(bytesWritten, totalSize); } } @Override public void write(byte[] b, int off, int len) throws IOException { outstream.write(b, off, len); if(null != progressListener){ bytesWritten += len; progressListener.onProgress(bytesWritten, totalSize); } } @Override public void flush() throws IOException { outstream.flush(); } @Override public void close() throws IOException { outstream.close(); } }