projects
/
pub
/
Android
/
ownCloud.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into review_build_process
[pub/Android/ownCloud.git]
/
src
/
eu
/
alefzero
/
webdav
/
ChunkFromFileChannelRequestEntity.java
diff --git
a/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java
b/src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java
index
3f45396
..
103cd04
100644
(file)
--- a/
src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java
+++ b/
src/eu/alefzero/webdav/ChunkFromFileChannelRequestEntity.java
@@
-120,11
+120,14
@@
public class ChunkFromFileChannelRequestEntity implements RequestEntity, Progres
mChannel.position(mOffset);
long size = mFile.length();
if (size == 0) size = -1;
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();
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()) {
synchronized (mDataTransferListeners) {
it = mDataTransferListeners.iterator();
while (it.hasNext()) {