Workaround to show hidden accents in options menu
[pub/Android/ownCloud.git] / src / com / owncloud / android / operations / SynchronizeFileOperation.java
index 77724d0..f98de11 100644 (file)
@@ -40,7 +40,9 @@ import eu.alefzero.webdav.WebdavUtils;
 public class SynchronizeFileOperation extends RemoteOperation {
 
     private String TAG = SynchronizeFileOperation.class.getSimpleName();
-    //private String mRemotePath;
+    private static final int SYNC_READ_TIMEOUT = 10000;
+    private static final int SYNC_CONNECTION_TIMEOUT = 5000;
+    
     private OCFile mLocalFile;
     private OCFile mServerFile;
     private DataStorageManager mStorageManager;
@@ -88,13 +90,14 @@ public class SynchronizeFileOperation extends RemoteOperation {
                 if (mServerFile == null) {
                     /// take the duty of check the server for the current state of the file there
                     propfind = new PropFindMethod(client.getBaseUri() + WebdavUtils.encodePath(mLocalFile.getRemotePath()));
-                    int status = client.executeMethod(propfind);
+                    int status = client.executeMethod(propfind, SYNC_READ_TIMEOUT, SYNC_CONNECTION_TIMEOUT);
                     boolean isMultiStatus = status == HttpStatus.SC_MULTI_STATUS;
                     if (isMultiStatus) {
                         MultiStatus resp = propfind.getResponseBodyAsMultiStatus();
                         WebdavEntry we = new WebdavEntry(resp.getResponses()[0],
                                                client.getBaseUri().getPath());
                         mServerFile = fillOCFile(we);
+                        mServerFile.setLastSyncDateForProperties(System.currentTimeMillis());
                         
                     } else {
                         client.exhaustResponse(propfind.getResponseBodyAsStream());
@@ -137,6 +140,8 @@ public class SynchronizeFileOperation extends RemoteOperation {
                         } else {
                             // TODO CHECK: is this really useful in some point in the code?
                             mServerFile.setKeepInSync(mLocalFile.keepInSync());
+                            mServerFile.setLastSyncDateForData(mLocalFile.getLastSyncDateForData());
+                            mServerFile.setStoragePath(mLocalFile.getStoragePath());
                             mServerFile.setParentId(mLocalFile.getParentId());
                             mStorageManager.saveFile(mServerFile);
                             
@@ -210,8 +215,6 @@ public class SynchronizeFileOperation extends RemoteOperation {
         file.setFileLength(we.contentLength());
         file.setMimetype(we.contentType());
         file.setModificationTimestamp(we.modifiedTimesamp());
-        file.setLastSyncDateForProperties(System.currentTimeMillis());
-        file.setLastSyncDateForData(0);
         return file;
     }