Singleton didn't work (worth a try though ^^) - Make a new constructor
authorLennart Rosam <lennart@familie-rosam.de>
Tue, 3 Jul 2012 23:06:27 +0000 (01:06 +0200)
committerLennart Rosam <lennart@familie-rosam.de>
Tue, 3 Jul 2012 23:06:27 +0000 (01:06 +0200)
instead

src/eu/alefzero/owncloud/Uploader.java
src/eu/alefzero/owncloud/authenticator/AuthenticationRunnable.java
src/eu/alefzero/owncloud/authenticator/ConnectionCheckerRunnable.java
src/eu/alefzero/owncloud/files/services/FileDownloader.java
src/eu/alefzero/owncloud/files/services/FileUploader.java
src/eu/alefzero/owncloud/files/services/InstantUploadService.java
src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java
src/eu/alefzero/webdav/WebdavClient.java

index 757f803..fcb22a2 100644 (file)
@@ -28,15 +28,15 @@ import java.util.Vector;
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
 import android.app.AlertDialog;\r
+import android.app.AlertDialog.Builder;\r
 import android.app.Dialog;\r
 import android.app.ListActivity;\r
 import android.app.ProgressDialog;\r
-import android.app.AlertDialog.Builder;\r
 import android.content.Context;\r
 import android.content.DialogInterface;\r
-import android.content.Intent;\r
 import android.content.DialogInterface.OnCancelListener;\r
 import android.content.DialogInterface.OnClickListener;\r
+import android.content.Intent;\r
 import android.database.Cursor;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
@@ -46,21 +46,15 @@ import android.util.Log;
 import android.view.View;\r
 import android.view.Window;\r
 import android.widget.AdapterView;\r
+import android.widget.AdapterView.OnItemClickListener;\r
 import android.widget.Button;\r
 import android.widget.EditText;\r
-import android.widget.ListView;\r
 import android.widget.SimpleAdapter;\r
-import android.widget.SimpleCursorAdapter;\r
-import android.widget.AdapterView.OnItemClickListener;\r
-import android.widget.Toast;\r
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
 import eu.alefzero.owncloud.datamodel.DataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
-import eu.alefzero.owncloud.db.ProviderMeta;\r
-import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;\r
 import eu.alefzero.owncloud.files.services.FileUploader;\r
-import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 /**\r
@@ -74,7 +68,6 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
 \r
     private Account mAccount;\r
     private AccountManager mAccountManager;\r
-    private String mUsername, mPassword;\r
     private Stack<String> mParents;\r
     private ArrayList<Parcelable> mStreamsToUpload;\r
     private boolean mCreateDir;\r
@@ -298,8 +291,6 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
     }\r
 \r
     private void populateDirectoryList() {\r
-        mUsername = mAccount.name.substring(0, mAccount.name.indexOf('@'));\r
-        mPassword = mAccountManager.getPassword(mAccount);\r
         setContentView(R.layout.uploader_layout);\r
 \r
         String full_path = "";\r
@@ -378,15 +369,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
     }\r
 \r
     public void uploadFiles() {\r
-        OwnCloudVersion ocv = new OwnCloudVersion(mAccountManager.getUserData(mAccount,\r
-                AccountAuthenticator.KEY_OC_VERSION));\r
-        String base_url = mAccountManager.getUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL);\r
-        String webdav_path = AccountUtils.getWebdavPath(ocv);\r
-        Uri oc_uri = Uri.parse(base_url + webdav_path);\r
-\r
-        WebdavClient wdc = new WebdavClient(oc_uri);\r
-        wdc.setCredentials(mUsername, mPassword);\r
-        wdc.allowSelfsignedCertificates();\r
+        WebdavClient wdc = new WebdavClient(mAccount, getApplicationContext());\r
 \r
         // create last directory in path if nessesary\r
         if (mCreateDir) {\r
index f161c6a..691c93e 100644 (file)
@@ -52,9 +52,7 @@ public class AuthenticationRunnable implements Runnable {
     public void run() {
         Uri uri;
         uri = Uri.parse(mUrl.toString());
-        WebdavClient client = new WebdavClient(uri);
-        client.setCredentials(mUsername, mPassword);
-        int login_result = client.tryToLogin();
+        int login_result = WebdavClient.tryToLogin(uri, mUsername, mPassword);
         switch (login_result) {
         case HttpStatus.SC_OK:
             postResult(true, uri.toString());
index bc0ff78..62131ef 100644 (file)
@@ -94,7 +94,7 @@ public class ConnectionCheckerRunnable implements Runnable {
     }
 
     private boolean tryConnection(Uri uri) {
-        WebdavClient wc = new WebdavClient(uri);
+        WebdavClient wc = new WebdavClient();
         wc.allowSelfsignedCertificates();
         GetMethod get = new GetMethod(uri.toString());
         boolean retval = false;
index 734359e..d6d7780 100644 (file)
@@ -11,7 +11,6 @@ import android.app.PendingIntent;
 import android.app.Service;\r
 import android.content.ContentValues;\r
 import android.content.Intent;\r
-import android.net.Uri;\r
 import android.os.Environment;\r
 import android.os.Handler;\r
 import android.os.HandlerThread;\r
@@ -21,14 +20,10 @@ import android.os.Message;
 import android.os.Process;\r
 import android.util.Log;\r
 import android.widget.RemoteViews;\r
-import eu.alefzero.owncloud.AccountUtils;\r
 import eu.alefzero.owncloud.R;\r
-import eu.alefzero.owncloud.R.drawable;\r
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
 import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;\r
 import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;\r
-import eu.alefzero.owncloud.ui.activity.FileDisplayActivity;\r
-import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 public class FileDownloader extends Service implements OnDatatransferProgressListener {\r
@@ -100,13 +95,9 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
 \r
     void downloadFile() {\r
         AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);\r
-        String oc_base_url = am.getUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL);\r
-        OwnCloudVersion ocv = new OwnCloudVersion(am\r
-                .getUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION));\r
-        String webdav_path = AccountUtils.getWebdavPath(ocv);\r
-        Uri oc_url = Uri.parse(oc_base_url+webdav_path);\r
 \r
-        WebdavClient wdc = new WebdavClient(Uri.parse(oc_base_url + webdav_path));\r
+\r
+        WebdavClient wdc = new WebdavClient(mAccount, getApplicationContext());\r
         \r
         String username = mAccount.name.split("@")[0];\r
         String password = "";\r
@@ -143,8 +134,6 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
             e.printStackTrace();\r
         }\r
 \r
-        Log.e(TAG, file.getAbsolutePath() + " " + oc_url.toString());\r
-        Log.e(TAG, mFilePath+"");\r
         String message;\r
         if (wdc.downloadFile(mRemotePath, file)) {\r
             ContentValues cv = new ContentValues();\r
index 1e688b5..68ddafb 100644 (file)
@@ -1,16 +1,7 @@
 package eu.alefzero.owncloud.files.services;
 
 import java.io.File;
-import java.util.List;
 
-import eu.alefzero.owncloud.AccountUtils;
-import eu.alefzero.owncloud.R;
-import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
-import eu.alefzero.owncloud.datamodel.FileDataStorageManager;
-import eu.alefzero.owncloud.datamodel.OCFile;
-import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;
-import eu.alefzero.owncloud.utils.OwnCloudVersion;
-import eu.alefzero.webdav.WebdavClient;
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.app.Notification;
@@ -18,7 +9,6 @@ import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.Service;
 import android.content.Intent;
-import android.net.Uri;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.IBinder;
@@ -29,6 +19,11 @@ import android.util.Log;
 import android.webkit.MimeTypeMap;
 import android.widget.RemoteViews;
 import android.widget.Toast;
+import eu.alefzero.owncloud.R;
+import eu.alefzero.owncloud.datamodel.FileDataStorageManager;
+import eu.alefzero.owncloud.datamodel.OCFile;
+import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;
+import eu.alefzero.webdav.WebdavClient;
 
 public class FileUploader extends Service implements OnDatatransferProgressListener {
 
@@ -47,7 +42,6 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
     private NotificationManager mNotificationManager;
     private Looper mServiceLooper;
     private ServiceHandler mServiceHandler;
-    private AccountManager mAccountManager;
     private Account mAccount;
     private String[] mLocalPaths, mRemotePaths;
     private int mUploadType;
@@ -82,7 +76,6 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
         thread.start();
         mServiceLooper = thread.getLooper();
         mServiceHandler = new ServiceHandler(mServiceLooper);
-        mAccountManager = AccountManager.get(this);
     }
 
     @Override
@@ -134,15 +127,6 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
     }
 
     public void uploadFile() {
-        String baseUrl = mAccountManager.getUserData(mAccount,
-                AccountAuthenticator.KEY_OC_BASE_URL), ocVerStr = mAccountManager
-                .getUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION);
-        OwnCloudVersion ocVer = new OwnCloudVersion(ocVerStr);
-        String webdav_path = AccountUtils.getWebdavPath(ocVer);
-        Uri ocUri = Uri.parse(baseUrl + webdav_path);
-        String username = mAccount.name.substring(0,
-                mAccount.name.lastIndexOf('@'));
-        String password = mAccountManager.getPassword(mAccount);
         FileDataStorageManager storageManager = new FileDataStorageManager(mAccount, getContentResolver());
         
         mTotalDataToSend = mSendData = mPreviousPercent = 0;
@@ -160,10 +144,8 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
         
         mNotificationManager.notify(42, mNotification);
 
-        WebdavClient wc = new WebdavClient(ocUri);
-        wc.allowSelfsignedCertificates();
+        WebdavClient wc = new WebdavClient(mAccount, getApplicationContext());
         wc.setDataTransferProgressListener(this);
-        wc.setCredentials(username, password);
 
         for (int i = 0; i < mLocalPaths.length; ++i) {
             File f = new File(mLocalPaths[i]);
index 9ac0411..1cf22c2 100644 (file)
@@ -139,7 +139,7 @@ public class InstantUploadService extends Service {
                 String oc_version = am.getUserData(account, AccountAuthenticator.KEY_OC_VERSION);
                 OwnCloudVersion ocv = new OwnCloudVersion(oc_version);
                 String webdav_path = AccountUtils.getWebdavPath(ocv);
-                WebdavClient wdc = new WebdavClient(Uri.parse(oc_base_url + webdav_path));
+                WebdavClient wdc = new WebdavClient(account, getApplicationContext());
                 wdc.allowSelfsignedCertificates();
                 wdc.setCredentials(username, password);
                 
index 2b11978..5ea4e3e 100644 (file)
@@ -149,18 +149,11 @@ public abstract class AbstractOwnCloudSyncAdapter extends
     protected WebdavClient getClient() throws OperationCanceledException,\r
             AuthenticatorException, IOException {\r
         if (mClient == null) {\r
-            String username = getAccount().name.split("@")[0];\r
-            String password = this.getAccountManager().blockingGetAuthToken(\r
-                    getAccount(), AccountAuthenticator.AUTH_TOKEN_TYPE, true);\r
             if (this.getAccountManager().getUserData(getAccount(),\r
                     AccountAuthenticator.KEY_OC_URL) == null) {\r
                 throw new UnknownHostException();\r
             }\r
-            Uri uri = getUri();\r
-\r
-            mClient = new WebdavClient(uri);\r
-            mClient.setCredentials(username, password);\r
-            mClient.allowSelfsignedCertificates();\r
+            mClient = new WebdavClient(account, getContext());\r
             // mHost = mClient.getTargetHost();\r
         }\r
 \r
index beb9f66..07ca6f5 100644 (file)
@@ -560,8 +560,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     \r
         @Override\r
         public void run() {\r
-            WebdavClient wdc = new WebdavClient(Uri.parse(mAm.getUserData(\r
-                    mAccount, AccountAuthenticator.KEY_OC_URL)));\r
+            WebdavClient wdc = new WebdavClient(mAccount, getApplicationContext());\r
     \r
             String username = mAccount.name.substring(0,\r
                     mAccount.name.lastIndexOf('@'));\r
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