Avoid use of queues to delay recursion
[pub/Android/ownCloud.git] / src / eu / alefzero / webdav / WebdavClient.java
index 3ed86c1..fd1ec50 100644 (file)
@@ -25,7 +25,6 @@ import java.util.HashMap;
 \r
 import org.apache.commons.httpclient.Credentials;\r
 import org.apache.commons.httpclient.HttpClient;\r
-import org.apache.commons.httpclient.HttpException;\r
 import org.apache.commons.httpclient.UsernamePasswordCredentials;\r
 import org.apache.commons.httpclient.auth.AuthScope;\r
 import org.apache.commons.httpclient.methods.GetMethod;\r
@@ -38,17 +37,16 @@ import org.apache.jackrabbit.webdav.client.methods.DavMethod;
 import org.apache.jackrabbit.webdav.client.methods.DeleteMethod;\r
 import org.apache.jackrabbit.webdav.client.methods.MkColMethod;\r
 \r
-import eu.alefzero.owncloud.AccountUtils;\r
-import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
-import eu.alefzero.owncloud.authenticator.EasySSLSocketFactory;\r
-import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;\r
-import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
-\r
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
 import android.content.Context;\r
 import android.net.Uri;\r
 import android.util.Log;\r
+import eu.alefzero.owncloud.AccountUtils;\r
+import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
+import eu.alefzero.owncloud.authenticator.EasySSLSocketFactory;\r
+import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;\r
+import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 \r
 public class WebdavClient extends HttpClient {\r
     private Uri mUri;\r
@@ -99,21 +97,10 @@ public class WebdavClient extends HttpClient {
     }\r
 \r
     public boolean downloadFile(String remoteFilepath, File targetPath) {\r
-        // HttpGet get = new HttpGet(mUri.toString() + filepath.replace(" ",\r
-        // "%20"));\r
-        /* dvelasco - this is not necessary anymore; OCFile.mRemotePath (the origin of remoteFielPath) keeps valid URL strings\r
-        String[] splitted_filepath = remoteFilepath.split("/");\r
-        remoteFilepath = "";\r
-        for (String s : splitted_filepath) {\r
-            if (s.equals("")) continue;\r
-            remoteFilepath += "/" + URLEncoder.encode(s);\r
-        }\r
-\r
-        Log.e("ASD", mUri.toString() + remoteFilepath.replace(" ", "%20") + "");\r
-        GetMethod get = new GetMethod(mUri.toString()\r
-                + remoteFilepath.replace(" ", "%20"));\r
-        */\r
         GetMethod get = new GetMethod(mUri.toString() + remoteFilepath);\r
+        HttpMethodParams params = get.getParams();\r
+        params.setSoTimeout(0); // that means "infinite timeout"; it's the default value, but let's make it explicit\r
+        get.setParams(params);\r
 \r
         // get.setHeader("Host", mUri.getHost());\r
         // get.setHeader("User-Agent", "Android-ownCloud");\r
@@ -152,8 +139,8 @@ public class WebdavClient extends HttpClient {
         DavMethod delete = new DeleteMethod(mUri.toString() + remoteFilePath);\r
         try {\r
             executeMethod(delete);\r
-        }  catch (IOException e) {\r
-            Log.e(TAG, "Logging failed with error: " + e.getMessage(), e);\r
+        }  catch (Throwable e) {\r
+            Log.e(TAG, "Deleting failed with error: " + e.getMessage(), e);\r
             return false;\r
         }\r
         return true;\r
@@ -174,6 +161,9 @@ public class WebdavClient extends HttpClient {
             entity.setOnDatatransferProgressListener(mDataTransferListener);\r
             Log.e("ASD", f.exists() + " " + entity.getContentLength());\r
             PutMethod put = new PutMethod(mUri.toString() + remoteTarget);\r
+            HttpMethodParams params = put.getParams();\r
+            params.setSoTimeout(0); // that means "infinite timeout"; it's the default value, but let's make it explicit\r
+            put.setParams(params);\r
             put.setRequestEntity(entity);\r
             Log.d(TAG, "" + put.getURI().toString());\r
             int status = executeMethod(put);\r