X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/2bc41ee3315feb483e4b92873df8f7dd3bb5499c..329080075e01860f67bc5e1b8418e3eac20b7a9f:/src/eu/alefzero/owncloud/Uploader.java diff --git a/src/eu/alefzero/owncloud/Uploader.java b/src/eu/alefzero/owncloud/Uploader.java index 66dec569..5a6a4a22 100644 --- a/src/eu/alefzero/owncloud/Uploader.java +++ b/src/eu/alefzero/owncloud/Uploader.java @@ -1,5 +1,9 @@ package eu.alefzero.owncloud; +import java.io.File; +import java.net.FileNameMap; +import java.net.URI; +import java.net.URLConnection; import java.util.ArrayList; import java.util.Stack; @@ -173,7 +177,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro throw new IllegalArgumentException("Unknown dialog id: " + id); } } - + class a implements OnClickListener { String mPath; EditText mDirname; @@ -398,18 +402,36 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro } for (int i = 0; i < mUploadStreams.size(); ++i) { - final Cursor c = getContentResolver().query((Uri) mUploadStreams.get(i), null, null, null, null); - c.moveToFirst(); - - if (!wdc.putFile(c.getString(c.getColumnIndex(Media.DATA)), - mUploadPath+"/"+c.getString(c.getColumnIndex(Media.DISPLAY_NAME)), - c.getString(c.getColumnIndex(Media.MIME_TYPE)))) { - mHandler.post(new Runnable() { - public void run() { - Uploader.this.onUploadComplete(false, "Error while uploading file: " + c.getString(c.getColumnIndex(Media.DISPLAY_NAME))); - } - }); + Uri uri = (Uri) mUploadStreams.get(i); + if (uri.getScheme().equals("content")) { + final Cursor c = getContentResolver().query((Uri) mUploadStreams.get(i), null, null, null, null); + c.moveToFirst(); + + if (!wdc.putFile(c.getString(c.getColumnIndex(Media.DATA)), + mUploadPath+"/"+c.getString(c.getColumnIndex(Media.DISPLAY_NAME)), + c.getString(c.getColumnIndex(Media.MIME_TYPE)))) { + mHandler.post(new Runnable() { + public void run() { + Uploader.this.onUploadComplete(false, "Error while uploading file: " + c.getString(c.getColumnIndex(Media.DISPLAY_NAME))); + } + }); + } + } else if (uri.getScheme().equals("file")) { + final File file = new File(Uri.decode(uri.toString()).replace(uri.getScheme()+"://", "")); + FileNameMap fileNameMap = URLConnection.getFileNameMap(); + String contentType = fileNameMap.getContentTypeFor(uri.toString()); + if (contentType == null) { + contentType = "text/plain"; + } + if (!wdc.putFile(file.getAbsolutePath(), mUploadPath+"/"+file.getName(), contentType)) { + mHandler.post(new Runnable() { + public void run() { + Uploader.this.onUploadComplete(false, "Error while uploading file: " + file.getName()); + } + }); + } } + } mHandler.post(new Runnable() { public void run() {