projects
/
pub
/
Android
/
ownCloud.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2246c27
)
OC-2332: rewrite getAvailableRemotePath from UpdateFileOperation, using ExistenceCehe...
author
masensio
<masensio@solidgear.es>
Thu, 12 Dec 2013 11:37:36 +0000
(12:37 +0100)
committer
masensio
<masensio@solidgear.es>
Thu, 12 Dec 2013 11:37:36 +0000
(12:37 +0100)
src/com/owncloud/android/files/services/FileUploader.java
patch
|
blob
|
blame
|
history
src/com/owncloud/android/operations/ChunkedUploadFileOperation.java
patch
|
blob
|
blame
|
history
src/com/owncloud/android/operations/UploadFileOperation.java
patch
|
blob
|
blame
|
history
diff --git
a/src/com/owncloud/android/files/services/FileUploader.java
b/src/com/owncloud/android/files/services/FileUploader.java
index
c7d0d20
..
1ea347f
100644
(file)
--- a/
src/com/owncloud/android/files/services/FileUploader.java
+++ b/
src/com/owncloud/android/files/services/FileUploader.java
@@
-267,9
+267,10
@@
public class FileUploader extends Service implements OnDatatransferProgressListe
uploadKey = buildRemoteName(account, files[i].getRemotePath());
if (chunked) {
newUpload = new ChunkedUploadFileOperation(account, files[i], isInstant, forceOverwrite,
uploadKey = buildRemoteName(account, files[i].getRemotePath());
if (chunked) {
newUpload = new ChunkedUploadFileOperation(account, files[i], isInstant, forceOverwrite,
- localAction);
+ localAction
, getApplicationContext()
);
} else {
} else {
- newUpload = new UploadFileOperation(account, files[i], isInstant, forceOverwrite, localAction);
+ newUpload = new UploadFileOperation(account, files[i], isInstant, forceOverwrite, localAction,
+ getApplicationContext());
}
if (isInstant) {
newUpload.setRemoteFolderToBeCreated();
}
if (isInstant) {
newUpload.setRemoteFolderToBeCreated();
diff --git
a/src/com/owncloud/android/operations/ChunkedUploadFileOperation.java
b/src/com/owncloud/android/operations/ChunkedUploadFileOperation.java
index
fd8a5a6
..
f48e8dd
100644
(file)
--- a/
src/com/owncloud/android/operations/ChunkedUploadFileOperation.java
+++ b/
src/com/owncloud/android/operations/ChunkedUploadFileOperation.java
@@
-36,6
+36,7
@@
import com.owncloud.android.utils.Log_OC;
import android.accounts.Account;
import android.accounts.Account;
+import android.content.Context;
public class ChunkedUploadFileOperation extends UploadFileOperation {
public class ChunkedUploadFileOperation extends UploadFileOperation {
@@
-48,9
+49,9
@@
public class ChunkedUploadFileOperation extends UploadFileOperation {
OCFile file,
boolean isInstant,
boolean forceOverwrite,
OCFile file,
boolean isInstant,
boolean forceOverwrite,
- int localBehaviour) {
+ int localBehaviour
, Context context
) {
- super(account, file, isInstant, forceOverwrite, localBehaviour);
+ super(account, file, isInstant, forceOverwrite, localBehaviour
, context
);
}
@Override
}
@Override
diff --git
a/src/com/owncloud/android/operations/UploadFileOperation.java
b/src/com/owncloud/android/operations/UploadFileOperation.java
index
80a3463
..
f34871c
100644
(file)
--- a/
src/com/owncloud/android/operations/UploadFileOperation.java
+++ b/
src/com/owncloud/android/operations/UploadFileOperation.java
@@
-43,10
+43,12
@@
import com.owncloud.android.oc_framework.operations.OperationCancelledException;
import com.owncloud.android.oc_framework.operations.RemoteOperation;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.oc_framework.operations.RemoteOperation;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult;
import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.oc_framework.operations.remote.ExistenceCheckRemoteOperation;
import com.owncloud.android.utils.FileStorageUtils;
import com.owncloud.android.utils.Log_OC;
import android.accounts.Account;
import com.owncloud.android.utils.FileStorageUtils;
import com.owncloud.android.utils.Log_OC;
import android.accounts.Account;
+import android.content.Context;
/**
/**
@@
-72,6
+74,7
@@
public class UploadFileOperation extends RemoteOperation {
PutMethod mPutMethod = null;
private Set<OnDatatransferProgressListener> mDataTransferListeners = new HashSet<OnDatatransferProgressListener>();
private final AtomicBoolean mCancellationRequested = new AtomicBoolean(false);
PutMethod mPutMethod = null;
private Set<OnDatatransferProgressListener> mDataTransferListeners = new HashSet<OnDatatransferProgressListener>();
private final AtomicBoolean mCancellationRequested = new AtomicBoolean(false);
+ private Context mContext;
protected RequestEntity mEntity = null;
protected RequestEntity mEntity = null;
@@
-80,7
+83,8
@@
public class UploadFileOperation extends RemoteOperation {
OCFile file,
boolean isInstant,
boolean forceOverwrite,
OCFile file,
boolean isInstant,
boolean forceOverwrite,
- int localBehaviour) {
+ int localBehaviour,
+ Context context) {
if (account == null)
throw new IllegalArgumentException("Illegal NULL account in UploadFileOperation creation");
if (file == null)
if (account == null)
throw new IllegalArgumentException("Illegal NULL account in UploadFileOperation creation");
if (file == null)
@@
-100,6
+104,7
@@
public class UploadFileOperation extends RemoteOperation {
mLocalBehaviour = localBehaviour;
mOriginalStoragePath = mFile.getStoragePath();
mOriginalFileName = mFile.getFileName();
mLocalBehaviour = localBehaviour;
mOriginalStoragePath = mFile.getStoragePath();
mOriginalFileName = mFile.getFileName();
+ mContext = context;
}
public Account getAccount() {
}
public Account getAccount() {
@@
-199,7
+204,7
@@
public class UploadFileOperation extends RemoteOperation {
// !!!
expectedFile = new File(expectedPath);
// !!!
expectedFile = new File(expectedPath);
- //
/
check location of local file; if not the expected, copy to a
+ // check location of local file; if not the expected, copy to a
// temporal file before upload (if COPY is the expected behaviour)
if (!mOriginalStoragePath.equals(expectedPath) && mLocalBehaviour == FileUploader.LOCAL_BEHAVIOUR_COPY) {
// temporal file before upload (if COPY is the expected behaviour)
if (!mOriginalStoragePath.equals(expectedPath) && mLocalBehaviour == FileUploader.LOCAL_BEHAVIOUR_COPY) {
@@
-389,7
+394,7
@@
public class UploadFileOperation extends RemoteOperation {
* @return
*/
private String getAvailableRemotePath(WebdavClient wc, String remotePath) throws Exception {
* @return
*/
private String getAvailableRemotePath(WebdavClient wc, String remotePath) throws Exception {
- boolean check =
wc.existsFile(
remotePath);
+ boolean check =
existsFile(wc,
remotePath);
if (!check) {
return remotePath;
}
if (!check) {
return remotePath;
}
@@
-404,10
+409,12
@@
public class UploadFileOperation extends RemoteOperation {
int count = 2;
do {
suffix = " (" + count + ")";
int count = 2;
do {
suffix = " (" + count + ")";
- if (pos >= 0)
- check = wc.existsFile(remotePath + suffix + "." + extension);
- else
- check = wc.existsFile(remotePath + suffix);
+ if (pos >= 0) {
+ check = existsFile(wc, remotePath + suffix + "." + extension);
+ }
+ else {
+ check = existsFile(wc, remotePath + suffix);
+ }
count++;
} while (check);
count++;
} while (check);
@@
-418,6
+425,12
@@
public class UploadFileOperation extends RemoteOperation {
}
}
}
}
+ private boolean existsFile(WebdavClient client, String remotePath){
+ ExistenceCheckRemoteOperation existsOperation = new ExistenceCheckRemoteOperation(remotePath, mContext, false);
+ RemoteOperationResult result = existsOperation.execute(client);
+ return result.isSuccess();
+ }
+
public void cancel() {
synchronized (mCancellationRequested) {
mCancellationRequested.set(true);
public void cancel() {
synchronized (mCancellationRequested) {
mCancellationRequested.set(true);