package eu.alefzero.owncloud;\r
\r
import java.io.File;\r
-import java.net.URLEncoder;\r
import java.util.ArrayList;\r
import java.util.HashMap;\r
import java.util.LinkedList;\r
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
EditText mDirname;\r
\r
public a(String path, EditText dirname) {\r
- mPath = path;\r
+ mPath = path; \r
mDirname = dirname;\r
}\r
\r
}\r
\r
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {\r
+ // click on folder in the list\r
Log.d(TAG, "on item click");\r
Vector<OCFile> tmpfiles = mStorageManager.getDirectoryContent(mFile);\r
if (tmpfiles == null) return;\r
}\r
\r
public void onClick(View v) {\r
+ // click on button\r
switch (v.getId()) {\r
case R.id.uploader_choose_folder:\r
- mUploadPath = "";\r
+ mUploadPath = "/";\r
for (String p : mParents)\r
- mUploadPath += URLEncoder.encode(p) + "/";\r
+ mUploadPath += p + "/";\r
+ mUploadPath = Uri.encode(mUploadPath, "/");\r
Log.d(TAG, "Uploading file to dir " + mUploadPath);\r
\r
uploadFiles();\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
final String display_name = c.getString(c.getColumnIndex(Media.DISPLAY_NAME)),\r
data = c.getString(c.getColumnIndex(Media.DATA));\r
local[i] = data;\r
- remote[i] = mUploadPath + display_name;\r
+ remote[i] = mUploadPath + Uri.encode(display_name);\r
} else if (uri.getScheme().equals("file")) {\r
final File file = new File(Uri.decode(uri.toString()).replace(uri.getScheme() + "://", ""));\r
local[i] = file.getAbsolutePath();\r
- remote[i] = mUploadPath + file.getName();\r
+ remote[i] = mUploadPath + Uri.encode(file.getName());\r
}\r
\r
}\r