From 1d26239809fa6c32cc1ed293a911110f551d8985 Mon Sep 17 00:00:00 2001 From: Alvaro Date: Fri, 9 Nov 2012 09:28:26 +0200 Subject: [PATCH] not getting the path correctly if the URI contains a file:// Previous to 2.2 this function was crashing if the URI wasn't different than a 'content://' but still if it is a 'file://' it fails getting the correct path. This happens for example picking a picture from dropbox instead of local gallery. --- framework/src/org/apache/cordova/FileUtils.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/framework/src/org/apache/cordova/FileUtils.java b/framework/src/org/apache/cordova/FileUtils.java index 973b820d..46f2e9c3 100755 --- a/framework/src/org/apache/cordova/FileUtils.java +++ b/framework/src/org/apache/cordova/FileUtils.java @@ -1069,16 +1069,18 @@ public class FileUtils extends CordovaPlugin { */ @SuppressWarnings("deprecation") protected static String getRealPathFromURI(Uri contentUri, CordovaInterface cordova) { - String uri = contentUri.toString(); - if (uri.startsWith("content:")) { + final String scheme = contentUri.getScheme(); + + if (scheme.compareTo("content") == 0) { String[] proj = { _DATA }; Cursor cursor = cordova.getActivity().managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(_DATA); cursor.moveToFirst(); return cursor.getString(column_index); + } else if (scheme.compareTo("file") == 0) { + return contentUri.getPath(); } else { - return uri; + return contentUri.toString(); } - } }