diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 88c119939..d6e821c6b 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -167,14 +167,21 @@ public class ShareActivity } private String getRealPathFromURI(Uri contentUri) { - String[] proj = { MediaStore.Images.Media.DATA }; - Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null); - int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); - cursor.moveToFirst(); - - String cursorString = cursor.getString(column_index); - cursor.close(); - return cursorString; + Cursor cursor = null; + try { + String[] proj = {MediaStore.Images.Media.DATA}; + cursor = getContentResolver().query(contentUri, proj, null, null, null); + int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + cursor.moveToFirst(); + return cursor.getString(column_index); + } catch (Exception e) { + Log.w(TAG, e); + return ""; + } finally { + if (cursor != null) { + cursor.close(); + } + } } @Override @@ -208,14 +215,12 @@ public class ShareActivity String filePath = getRealPathFromURI(mediaUri); Log.d(TAG, "Filepath: " + filePath); - - if (filePath != null) { + if (filePath != null && !filePath.equals("")) { //extract the coordinates of image in decimal degrees Log.d(TAG, "Calling GPSExtractor"); GPSExtractor imageObj = new GPSExtractor(filePath); String decimalCoords = imageObj.getCoords(); - if (decimalCoords != null) { double decLongitude = imageObj.getDecLongitude(); double decLatitude = imageObj.getDecLatitude(); @@ -239,16 +244,12 @@ public class ShareActivity Log.d(TAG, "Cache found, setting categoryList in MwVolleyApi to " + displayCatList.toString()); MwVolleyApi.setGpsCat(displayCatList); } - } } - - if(savedInstanceState != null) { contribution = savedInstanceState.getParcelable("contribution"); } - requestAuthToken(); }