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
message = getString(R.string.uploader_upload_failed);
if (mLocalPaths.length > 1)
message += " (" + mSuccessCounter + " / " + mLocalPaths.length + getString(R.string.uploader_files_uploaded_suffix) + ")";
- Toast.makeText(this, "Upload could not be completed", Toast.LENGTH_SHORT).show();
}
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
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]);