CB-14097: (android) Fix crash when selecting some files with getPicture (#322)

* CB-14097: (android) Fix crash when selecting some files with getPicture of urls with raw://

Handles both urls:
content://com.android.providers.downloads.documents/document/1111
content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Ffilename.pdf

* Optimization: Remove TextUtils dependency, return null when no id could be extracted
This commit is contained in:
bvmensvoort 2018-07-06 00:16:25 +02:00 committed by jcesarmobile
parent 6899c5ece9
commit 5c23b65af9

View File

@ -97,10 +97,21 @@ public class FileHelper {
else if (isDownloadsDocument(uri)) { else if (isDownloadsDocument(uri)) {
final String id = DocumentsContract.getDocumentId(uri); final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId( if (id != null && id.length() > 0) {
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id)); if (id.startsWith("raw:")) {
return id.replaceFirst("raw:", "");
}
try {
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
return getDataColumn(context, contentUri, null, null); return getDataColumn(context, contentUri, null, null);
} catch (NumberFormatException e) {
return null;
}
} else {
return null;
}
} }
// MediaProvider // MediaProvider
else if (isMediaDocument(uri)) { else if (isMediaDocument(uri)) {