X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/65f403bf994bd84d64eea16072b7bec479c0d525..de9b09fd3b9cc3b5bca707c6cc210e4e87068c33:/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java diff --git a/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java b/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java index 3f453968..86202479 100644 --- a/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java +++ b/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java @@ -29,8 +29,8 @@ import java.util.Set; import org.apache.commons.httpclient.methods.RequestEntity; -import com.owncloud.android.Log_OC; -import com.owncloud.android.network.ProgressiveDataTransferer; +import de.mobilcom.debitel.cloud.android.Log_OC; +import de.mobilcom.debitel.cloud.android.network.ProgressiveDataTransferer; import eu.alefzero.webdav.OnDatatransferProgressListener; @@ -120,11 +120,14 @@ public class ChunkFromFileChannelRequestEntity implements RequestEntity, Progres mChannel.position(mOffset); long size = mFile.length(); if (size == 0) size = -1; - while (mChannel.position() < mOffset + mChunkSize && mChannel.position() < mChannel.size()) { + long maxCount = Math.min(mOffset + mChunkSize, mChannel.size()); + while (mChannel.position() < maxCount) { readCount = mChannel.read(mBuffer); out.write(mBuffer.array(), 0, readCount); mBuffer.clear(); - mTransferred += readCount; + if (mTransferred < maxCount) { // condition to avoid accumulate progress for repeated chunks + mTransferred += readCount; + } synchronized (mDataTransferListeners) { it = mDataTransferListeners.iterator(); while (it.hasNext()) {