mirror of
https://github.com/nextcloud/android.git
synced 2024-11-26 23:28:42 +03:00
Prevent double count of transfer progress when part of an upload is resend
This commit is contained in:
parent
3ffc515f42
commit
d9f42d500c
2 changed files with 10 additions and 6 deletions
|
@ -120,11 +120,15 @@ 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
|
||||
Log_OC.d(TAG, "añadiendo a mTransfered " + mTransferred + " readCount " + readCount + " hasta " + (mTransferred + readCount));
|
||||
mTransferred += readCount;
|
||||
}
|
||||
synchronized (mDataTransferListeners) {
|
||||
it = mDataTransferListeners.iterator();
|
||||
while (it.hasNext()) {
|
||||
|
|
|
@ -168,21 +168,21 @@ public class WebdavClient extends HttpClient {
|
|||
try {
|
||||
method.setFollowRedirects(mFollowRedirects);
|
||||
} catch (Exception e) {
|
||||
Log_OC.d(TAG, "setFollowRedirects failed for " + method.getName() + " method, custom redirection will be used");
|
||||
customRedirectionNeeded = true;
|
||||
if (mFollowRedirects) Log_OC.d(TAG, "setFollowRedirects failed for " + method.getName() + " method, custom redirection will be used");
|
||||
customRedirectionNeeded = mFollowRedirects;
|
||||
}
|
||||
if (mSsoSessionCookie != null && mSsoSessionCookie.length() > 0) {
|
||||
method.setRequestHeader("Cookie", mSsoSessionCookie);
|
||||
}
|
||||
int status = super.executeMethod(method);
|
||||
int redirectionsCount = 0;
|
||||
while (mFollowRedirects &&
|
||||
while (customRedirectionNeeded &&
|
||||
redirectionsCount < MAX_REDIRECTIONS_COUNT &&
|
||||
customRedirectionNeeded &&
|
||||
( status == HttpStatus.SC_MOVED_PERMANENTLY ||
|
||||
status == HttpStatus.SC_MOVED_TEMPORARILY ||
|
||||
status == HttpStatus.SC_TEMPORARY_REDIRECT)
|
||||
) {
|
||||
|
||||
Header location = method.getResponseHeader("Location");
|
||||
if (location != null) {
|
||||
Log_OC.d(TAG, "Location to redirect: " + location.getValue());
|
||||
|
|
Loading…
Reference in a new issue