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
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
\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
}\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
}\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
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());
}
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;
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
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
\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
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
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;
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;
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 {
private NotificationManager mNotificationManager;
private Looper mServiceLooper;
private ServiceHandler mServiceHandler;
- private AccountManager mAccountManager;
private Account mAccount;
private String[] mLocalPaths, mRemotePaths;
private int mUploadType;
thread.start();
mServiceLooper = thread.getLooper();
mServiceHandler = new ServiceHandler(mServiceLooper);
- mAccountManager = AccountManager.get(this);
}
@Override
}
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;
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]);
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);
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
\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
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
* @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