X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a4ba6170ea7696e085b07adfef73eeb8b77cb8e2..5a22c7e79f1a53ccdbae04327e6ac500f3676a67:/src/com/owncloud/android/files/services/InstantUploadService.java diff --git a/src/com/owncloud/android/files/services/InstantUploadService.java b/src/com/owncloud/android/files/services/InstantUploadService.java index 0324f592..8ec0a8d0 100644 --- a/src/com/owncloud/android/files/services/InstantUploadService.java +++ b/src/com/owncloud/android/files/services/InstantUploadService.java @@ -1,9 +1,10 @@ /* ownCloud Android client application * Copyright (C) 2012 Bartek Przybylski + * Copyright (C) 2012-2013 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or + * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -18,25 +19,18 @@ package com.owncloud.android.files.services; -import java.io.IOException; import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import org.apache.commons.httpclient.HttpException; -import org.apache.jackrabbit.webdav.client.methods.MkColMethod; - -import com.owncloud.android.AccountUtils; -import com.owncloud.android.authenticator.AccountAuthenticator; -import com.owncloud.android.utils.OwnCloudVersion; +import com.owncloud.android.Log_OC; +import com.owncloud.android.network.OwnCloudClientUtils; import eu.alefzero.webdav.WebdavClient; import android.accounts.Account; -import android.accounts.AccountManager; import android.app.Service; import android.content.Intent; -import android.net.Uri; import android.os.IBinder; import android.util.Log; @@ -47,23 +41,23 @@ public class InstantUploadService extends Service { public static String KEY_MIME_TYPE = "KEY_MIMETYPE"; public static String KEY_DISPLAY_NAME = "KEY_FILENAME"; public static String KEY_ACCOUNT = "KEY_ACCOUNT"; - + private static String TAG = "InstantUploadService"; - private static String INSTANT_UPLOAD_DIR = "/InstantUpload"; + // TODO make it configurable over the settings dialog + public static String INSTANT_UPLOAD_DIR = "/InstantUpload"; private UploaderRunnable mUploaderRunnable; - + @Override public IBinder onBind(Intent arg0) { return null; } - + @Override public int onStartCommand(Intent intent, int flags, int startId) { - if (intent == null || - !intent.hasExtra(KEY_ACCOUNT) || !intent.hasExtra(KEY_DISPLAY_NAME) || - !intent.hasExtra(KEY_FILE_PATH) || !intent.hasExtra(KEY_FILE_SIZE) || - !intent.hasExtra(KEY_MIME_TYPE)) { - Log.w(TAG, "Not all required information was provided, abording"); + if (intent == null || !intent.hasExtra(KEY_ACCOUNT) || !intent.hasExtra(KEY_DISPLAY_NAME) + || !intent.hasExtra(KEY_FILE_PATH) || !intent.hasExtra(KEY_FILE_SIZE) + || !intent.hasExtra(KEY_MIME_TYPE)) { + Log_OC.w(TAG, "Not all required information was provided, abording"); return Service.START_NOT_STICKY; } @@ -81,7 +75,7 @@ public class InstantUploadService extends Service { // starting new thread for new download doesnt seems like a good idea // maybe some thread pool or single background thread would be better - Log.d(TAG, "Starting instant upload thread"); + Log_OC.d(TAG, "Starting instant upload thread"); new Thread(mUploaderRunnable).start(); return Service.START_STICKY; @@ -126,34 +120,20 @@ public class InstantUploadService extends Service { public void run() { HashMap working_map; - AccountManager am = AccountManager.get(getApplicationContext()); while ((working_map = getFirstObject()) != null) { Account account = (Account) working_map.get(KEY_ACCOUNT); - String username = account.name.substring(0, account.name.lastIndexOf('@')); - String password = am.getPassword(account); String filename = (String) working_map.get(KEY_DISPLAY_NAME); String filepath = (String) working_map.get(KEY_FILE_PATH); String mimetype = (String) working_map.get(KEY_MIME_TYPE); - String oc_base_url = am.getUserData(account, AccountAuthenticator.KEY_OC_BASE_URL); - 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(account, getApplicationContext()); - wdc.allowSelfsignedCertificates(); - wdc.setCredentials(username, password); + WebdavClient wdc = OwnCloudClientUtils.createOwnCloudClient(account, getApplicationContext()); - MkColMethod mkcol = new MkColMethod(oc_base_url+webdav_path+INSTANT_UPLOAD_DIR); - int status = 0; + wdc.createDirectory(INSTANT_UPLOAD_DIR); // fail could just mean that it already exists; put will be tried anyway try { - status = wdc.executeMethod(mkcol); - Log.e(TAG, "mkcol returned " + status); wdc.putFile(filepath, INSTANT_UPLOAD_DIR + "/" + filename, mimetype); - } catch (HttpException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (Exception e) { + // nothing to do; this service is deprecated, indeed } } }