Singleton didn't work (worth a try though ^^) - Make a new constructor
[pub/Android/ownCloud.git] / src / eu / alefzero / webdav / WebdavClient.java
index 797bad4..3ed86c1 100644 (file)
@@ -59,31 +59,26 @@ public class WebdavClient extends HttpClient {
     private static HashMap<String, WebdavClient> clients = new HashMap<String, WebdavClient>();\r
     \r
     /**\r
-     * Gets a WebdavClient setup for the current account\r
+     * Creates a WebdavClient setup for the current account\r
      * @param account The client accout\r
      * @param context The application context\r
      * @return\r
      */\r
-    public static synchronized WebdavClient getInstance(Account account, Context context){\r
-        WebdavClient instance = clients.get(account.name);\r
-        if(instance == null ){\r
-            OwnCloudVersion ownCloudVersion = new OwnCloudVersion(AccountManager.get(context).getUserData(account,\r
-                    AccountAuthenticator.KEY_OC_VERSION));\r
-            String baseUrl = AccountManager.get(context).getUserData(account, AccountAuthenticator.KEY_OC_BASE_URL);\r
-            String webDavPath = AccountUtils.getWebdavPath(ownCloudVersion);\r
-            WebdavClient client = new WebdavClient();\r
-            \r
-            String username = account.name.substring(0, account.name.indexOf('@'));\r
-            String password = AccountManager.get(context).getPassword(account);\r
-            \r
-            client.mUri = Uri.parse(baseUrl + webDavPath);\r
-            client.getParams().setParameter(HttpMethodParams.USER_AGENT, USER_AGENT);\r
-            client.setCredentials(username, password);\r
-            client.allowSelfsignedCertificates();\r
-            clients.put(account.name, client);\r
-        }\r
-        return instance;\r
+    public WebdavClient (Account account, Context context){\r
+        OwnCloudVersion ownCloudVersion = new OwnCloudVersion(AccountManager.get(context).getUserData(account,\r
+                AccountAuthenticator.KEY_OC_VERSION));\r
+        String baseUrl = AccountManager.get(context).getUserData(account, AccountAuthenticator.KEY_OC_BASE_URL);\r
+        String webDavPath = AccountUtils.getWebdavPath(ownCloudVersion);        \r
+        String username = account.name.substring(0, account.name.indexOf('@'));\r
+        String password = AccountManager.get(context).getPassword(account);\r
+        \r
+        mUri = Uri.parse(baseUrl + webDavPath);\r
+        getParams().setParameter(HttpMethodParams.USER_AGENT, USER_AGENT);\r
+        setCredentials(username, password);\r
+        allowSelfsignedCertificates();\r
     }\r
+    \r
+    public WebdavClient(){}\r
 \r
     public void setCredentials(String username, String password) {\r
         getParams().setAuthenticationPreemptive(true);\r
@@ -200,12 +195,13 @@ public class WebdavClient extends HttpClient {
      * @param password Password to verify\r
      * @return A {@link HttpStatus}-Code of the result. SC_OK is good.\r
      */\r
-    public int tryToLogin(Uri uri, String username, String password) {\r
+    public static int tryToLogin(Uri uri, String username, String password) {\r
         int returnCode = 0;\r
-        setCredentials(username, password);\r
+        WebdavClient client = new WebdavClient();\r
+        client.setCredentials(username, password);\r
         HeadMethod head = new HeadMethod(uri.toString());\r
         try {\r
-            returnCode = executeMethod(head);\r
+            returnCode = client.executeMethod(head);\r
         } catch (Exception e) {\r
             Log.e(TAG, "Error: " + e.getMessage());\r
         }\r