Loading src/com/owncloud/android/lib/resources/files/UploadFileRemoteOperation.java +19 −26 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.methods.RequestEntity; Loading @@ -54,6 +55,7 @@ public class UploadFileRemoteOperation extends RemoteOperation { protected static final String OC_TOTAL_LENGTH_HEADER = "OC-Total-Length"; protected static final String IF_MATCH_HEADER = "If-Match"; protected static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime"; protected static final String RESULT_HEADER_ETAG ="ETag"; protected String mLocalPath; protected String mRemotePath; Loading @@ -61,6 +63,7 @@ public class UploadFileRemoteOperation extends RemoteOperation { protected String mFileLastModifTimestamp; protected PutMethod mPutMethod = null; protected String mRequiredEtag = null; protected Boolean getResultEtag = false; protected final AtomicBoolean mCancellationRequested = new AtomicBoolean(false); //protected Set<OnDatatransferProgressListener> mDataTransferListeners = new HashSet<OnDatatransferProgressListener>(); Loading Loading @@ -134,10 +137,7 @@ public class UploadFileRemoteOperation extends RemoteOperation { try { File f = new File(mLocalPath); mEntity = new FileRequestEntity(f, mMimeType); /*synchronized (mDataTransferListeners) { ((ProgressiveDataTransferer)mEntity) .addDatatransferProgressListeners(mDataTransferListeners); } */ if (mRequiredEtag != null && mRequiredEtag.length() > 0) { mPutMethod.addRequestHeader(IF_MATCH_HEADER, "\"" + mRequiredEtag + "\""); } Loading @@ -150,6 +150,13 @@ public class UploadFileRemoteOperation extends RemoteOperation { result = new RemoteOperationResult(isSuccess(status), mPutMethod); if(getResultEtag && result.isSuccess()){ Header getEtagHeader = mPutMethod.getResponseHeader(RESULT_HEADER_ETAG); if(getEtagHeader != null){ result.setSingleData( getEtagHeader.getValue() ); } } client.exhaustResponse(mPutMethod.getResponseBodyAsStream()); } finally { Loading @@ -158,28 +165,6 @@ public class UploadFileRemoteOperation extends RemoteOperation { return result; } /* public Set<OnDatatransferProgressListener> getDataTransferListeners() { return mDataTransferListeners; } public void addDatatransferProgressListener (OnDatatransferProgressListener listener) { synchronized (mDataTransferListeners) { mDataTransferListeners.add(listener); } if (mEntity != null) { ((ProgressiveDataTransferer)mEntity).addDatatransferProgressListener(listener); } } public void removeDatatransferProgressListener(OnDatatransferProgressListener listener) { synchronized (mDataTransferListeners) { mDataTransferListeners.remove(listener); } if (mEntity != null) { ((ProgressiveDataTransferer)mEntity).removeDatatransferProgressListener(listener); } } */ public void cancel() { synchronized (mCancellationRequested) { mCancellationRequested.set(true); Loading @@ -188,4 +173,12 @@ public class UploadFileRemoteOperation extends RemoteOperation { } } public void askResultEtag(Boolean value){ this.getResultEtag = value; } public Boolean isResultEtagAsked(){ return this.getResultEtag; } } Loading
src/com/owncloud/android/lib/resources/files/UploadFileRemoteOperation.java +19 −26 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.methods.RequestEntity; Loading @@ -54,6 +55,7 @@ public class UploadFileRemoteOperation extends RemoteOperation { protected static final String OC_TOTAL_LENGTH_HEADER = "OC-Total-Length"; protected static final String IF_MATCH_HEADER = "If-Match"; protected static final String OC_X_OC_MTIME_HEADER = "X-OC-Mtime"; protected static final String RESULT_HEADER_ETAG ="ETag"; protected String mLocalPath; protected String mRemotePath; Loading @@ -61,6 +63,7 @@ public class UploadFileRemoteOperation extends RemoteOperation { protected String mFileLastModifTimestamp; protected PutMethod mPutMethod = null; protected String mRequiredEtag = null; protected Boolean getResultEtag = false; protected final AtomicBoolean mCancellationRequested = new AtomicBoolean(false); //protected Set<OnDatatransferProgressListener> mDataTransferListeners = new HashSet<OnDatatransferProgressListener>(); Loading Loading @@ -134,10 +137,7 @@ public class UploadFileRemoteOperation extends RemoteOperation { try { File f = new File(mLocalPath); mEntity = new FileRequestEntity(f, mMimeType); /*synchronized (mDataTransferListeners) { ((ProgressiveDataTransferer)mEntity) .addDatatransferProgressListeners(mDataTransferListeners); } */ if (mRequiredEtag != null && mRequiredEtag.length() > 0) { mPutMethod.addRequestHeader(IF_MATCH_HEADER, "\"" + mRequiredEtag + "\""); } Loading @@ -150,6 +150,13 @@ public class UploadFileRemoteOperation extends RemoteOperation { result = new RemoteOperationResult(isSuccess(status), mPutMethod); if(getResultEtag && result.isSuccess()){ Header getEtagHeader = mPutMethod.getResponseHeader(RESULT_HEADER_ETAG); if(getEtagHeader != null){ result.setSingleData( getEtagHeader.getValue() ); } } client.exhaustResponse(mPutMethod.getResponseBodyAsStream()); } finally { Loading @@ -158,28 +165,6 @@ public class UploadFileRemoteOperation extends RemoteOperation { return result; } /* public Set<OnDatatransferProgressListener> getDataTransferListeners() { return mDataTransferListeners; } public void addDatatransferProgressListener (OnDatatransferProgressListener listener) { synchronized (mDataTransferListeners) { mDataTransferListeners.add(listener); } if (mEntity != null) { ((ProgressiveDataTransferer)mEntity).addDatatransferProgressListener(listener); } } public void removeDatatransferProgressListener(OnDatatransferProgressListener listener) { synchronized (mDataTransferListeners) { mDataTransferListeners.remove(listener); } if (mEntity != null) { ((ProgressiveDataTransferer)mEntity).removeDatatransferProgressListener(listener); } } */ public void cancel() { synchronized (mCancellationRequested) { mCancellationRequested.set(true); Loading @@ -188,4 +173,12 @@ public class UploadFileRemoteOperation extends RemoteOperation { } } public void askResultEtag(Boolean value){ this.getResultEtag = value; } public Boolean isResultEtagAsked(){ return this.getResultEtag; } }