package com.marcodinacci.android.commons.io; import java.util.ArrayList; import java.util.List; import android.util.Log; import com.marcodinacci.android.commons.AsyncTaskListener; /** * Write to a stream asynchronously. * * @author Marco Dinacci <marco.dinacci@gmail.com> */ @SuppressWarnings("rawtypes") public class DataWriter { private static final String TAG = "DataWriter"; @SuppressWarnings({ "unchecked" }) // FIXME fix the listener parameter public void writeAsync(AsyncTaskListener<Integer, Long> listener, DataSink ds, boolean flushOnWrite, boolean closeOnWrite) { List<AsyncTaskListener> listeners = new ArrayList<AsyncTaskListener>(1); listeners.add(listener); Log.d(TAG, "Writing asynchronously to " + ds.getSink().toString()); new StreamDataTask((AsyncTaskListener<Integer, Long>[]) listeners.toArray(),flushOnWrite, closeOnWrite).execute(ds); } public void writeAsync(DataSink ds) { writeAsync(null, ds, true, true); } }