X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/5a22c7e79f1a53ccdbae04327e6ac500f3676a67..c3ca5b5a4fda44999f215a3559921a4781f310f8:/src/eu/alefzero/webdav/FileRequestEntity.java diff --git a/src/eu/alefzero/webdav/FileRequestEntity.java b/src/eu/alefzero/webdav/FileRequestEntity.java index b6ecae93..2f8073c3 100644 --- a/src/eu/alefzero/webdav/FileRequestEntity.java +++ b/src/eu/alefzero/webdav/FileRequestEntity.java @@ -33,17 +33,16 @@ import java.util.Set; 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 File. * */ -public class FileRequestEntity implements RequestEntity { +public class FileRequestEntity implements RequestEntity, ProgressiveDataTransferer { final File mFile; final String mContentType; @@ -72,17 +71,26 @@ public class FileRequestEntity implements RequestEntity { public boolean isRepeatable() { 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 listeners) { - mDataTransferListeners.addAll(listeners); + @Override + public void addDatatransferProgressListeners(Collection 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); + } } @@ -105,9 +113,11 @@ public class FileRequestEntity implements RequestEntity { out.write(tmp.array(), 0, readResult); tmp.clear(); transferred += readResult; - it = mDataTransferListeners.iterator(); - while (it.hasNext()) { - it.next().onTransferProgress(readResult, transferred, size, mFile.getName()); + synchronized (mDataTransferListeners) { + it = mDataTransferListeners.iterator(); + while (it.hasNext()) { + it.next().onTransferProgress(readResult, transferred, size, mFile.getName()); + } } }