import org.apache.commons.httpclient.methods.RequestEntity;
import com.owncloud.android.Log_OC;
+import com.owncloud.android.network.ProgressiveDataTransferer;
import eu.alefzero.webdav.OnDatatransferProgressListener;
-import android.util.Log;
-
/**
* A RequestEntity that represents a PIECE of a file.
*
* @author David A. Velasco
*/
-public class ChunkFromFileChannelRequestEntity implements RequestEntity {
+public class ChunkFromFileChannelRequestEntity implements RequestEntity, ProgressiveDataTransferer {
private static final String TAG = ChunkFromFileChannelRequestEntity.class.getSimpleName();
return true;
}
- public void addOnDatatransferProgressListener(OnDatatransferProgressListener listener) {
- mDataTransferListeners.add(listener);
+ @Override
+ public void addDatatransferProgressListener(OnDatatransferProgressListener listener) {
+ synchronized (mDataTransferListeners) {
+ mDataTransferListeners.add(listener);
+ }
}
- public void addOnDatatransferProgressListeners(Collection<OnDatatransferProgressListener> listeners) {
- mDataTransferListeners.addAll(listeners);
+ @Override
+ public void addDatatransferProgressListeners(Collection<OnDatatransferProgressListener> listeners) {
+ synchronized (mDataTransferListeners) {
+ mDataTransferListeners.addAll(listeners);
+ }
}
- public void removeOnDatatransferProgressListener(OnDatatransferProgressListener listener) {
- mDataTransferListeners.remove(listener);
+ @Override
+ public void removeDatatransferProgressListener(OnDatatransferProgressListener listener) {
+ synchronized (mDataTransferListeners) {
+ mDataTransferListeners.remove(listener);
+ }
}
out.write(mBuffer.array(), 0, readCount);
mBuffer.clear();
mTransferred += readCount;
- it = mDataTransferListeners.iterator();
- while (it.hasNext()) {
- it.next().onTransferProgress(readCount, mTransferred, size, mFile.getName());
+ synchronized (mDataTransferListeners) {
+ it = mDataTransferListeners.iterator();
+ while (it.hasNext()) {
+ it.next().onTransferProgress(readCount, mTransferred, size, mFile.getName());
+ }
}
}