From 066260e40b185b90a50b3c9f97b8c46d84a722b1 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:07:31 +1200 Subject: [PATCH 01/10] Change requestPermissions --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 3a8771fbf..c5b16fefc 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -92,7 +92,8 @@ public class ShareActivity if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Check for Storage permission that is required for upload. Do not allow user to proceed without permission, otherwise will crash if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); + //See http://stackoverflow.com/questions/33169455/onrequestpermissionsresult-not-being-called-in-dialog-fragment + requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); } else { uploadBegins(); } @@ -295,6 +296,7 @@ public class ShareActivity getFileMetadata(); getLocationData(); } + } @Override From 56dc2cb31e15e8dd909cfbba5c1ddcde0e4edba3 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:14:10 +1200 Subject: [PATCH 02/10] Add getFileMetadata() to uploadBegins() --- app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index c5b16fefc..a631e8e26 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -104,6 +104,7 @@ public class ShareActivity private void uploadBegins() { + getFileMetadata(); Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); startingToast.show(); From 9659389057301ae9e6b6dbf63ea8dc811df41c1b Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:07:31 +1200 Subject: [PATCH 03/10] Change requestPermissions --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 3a8771fbf..c5b16fefc 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -92,7 +92,8 @@ public class ShareActivity if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //Check for Storage permission that is required for upload. Do not allow user to proceed without permission, otherwise will crash if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); + //See http://stackoverflow.com/questions/33169455/onrequestpermissionsresult-not-being-called-in-dialog-fragment + requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); } else { uploadBegins(); } @@ -295,6 +296,7 @@ public class ShareActivity getFileMetadata(); getLocationData(); } + } @Override From 30632a72bea7ec7d32954ebc006deb59342c2efa Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:14:10 +1200 Subject: [PATCH 04/10] Add getFileMetadata() to uploadBegins() --- app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index c5b16fefc..a631e8e26 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -104,6 +104,7 @@ public class ShareActivity private void uploadBegins() { + getFileMetadata(); Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); startingToast.show(); From 333a0e0510360f35aa101b00c2379305e3b20bb5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:37:42 +1200 Subject: [PATCH 05/10] Merge getFileMetadata() and getLocationData() --- .../nrw/commons/upload/ShareActivity.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index a631e8e26..4d6c8bef4 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -350,26 +350,19 @@ public class ShareActivity } } - public void getFileMetadata() { + public void getFileMetadata(boolean gpsEnabled) { filePath = FileUtils.getPath(this, mediaUri); Log.d(TAG, "Filepath: " + filePath); Log.d(TAG, "Calling GPSExtractor"); - imageObj = new GPSExtractor(filePath, this); - - if (filePath != null && !filePath.equals("")) { - // Gets image coords from exif data - decimalCoords = imageObj.getCoords(false); - useImageCoords(); - } - } - - public void getLocationData() { if(imageObj == null) { imageObj = new GPSExtractor(filePath, this); } - decimalCoords = imageObj.getCoords(true); - useImageCoords(); + if (filePath != null && !filePath.equals("")) { + // Gets image coords from exif data + decimalCoords = imageObj.getCoords(gpsEnabled); + useImageCoords(); + } } /** From 5102507fc8104d32ebf9c1d7b48fe988555b682e Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:44:07 +1200 Subject: [PATCH 06/10] Replace getLocationData() with getFileMetadata(true) --- .../nrw/commons/upload/ShareActivity.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 4d6c8bef4..b68624fee 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -104,7 +104,7 @@ public class ShareActivity private void uploadBegins() { - getFileMetadata(); + getFileMetadata(true); Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); startingToast.show(); @@ -292,10 +292,9 @@ public class ShareActivity }).show(); } } else if (useNewPermissions && storagePermission && !locationPermission) { - getFileMetadata(); + getFileMetadata(true); } else if(!useNewPermissions || (storagePermission && locationPermission)) { - getFileMetadata(); - getLocationData(); + getFileMetadata(true); } } @@ -308,7 +307,7 @@ public class ShareActivity case 1: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - getFileMetadata(); + getFileMetadata(true); } return; } @@ -316,7 +315,7 @@ public class ShareActivity case 2: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - getLocationData(); + getFileMetadata(false); } return; } @@ -324,11 +323,11 @@ public class ShareActivity case 3: { if (grantResults.length > 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - getFileMetadata(); + getFileMetadata(true); } if (grantResults.length > 1 && grantResults[1] == PackageManager.PERMISSION_GRANTED) { - getLocationData(); + getFileMetadata(false); } return; } @@ -339,7 +338,7 @@ public class ShareActivity && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //It is OK to call this at both (1) and (4) because if perm had been granted at //snackbar, user should not be prompted at submit button - getFileMetadata(); + getFileMetadata(true); //Uploading only begins if storage permission granted from arrow icon uploadBegins(); @@ -359,7 +358,7 @@ public class ShareActivity } if (filePath != null && !filePath.equals("")) { - // Gets image coords from exif data + // Gets image coords from exif data or user location decimalCoords = imageObj.getCoords(gpsEnabled); useImageCoords(); } From 26df8894d6ff77f0eb903a12c88dd91a5f0963f6 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:48:55 +1200 Subject: [PATCH 07/10] Check for locationPermission in uploadBegins() --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index b68624fee..d27f781ab 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -103,8 +103,12 @@ public class ShareActivity } private void uploadBegins() { + if (locationPermission) { + getFileMetadata(true); + } else { + getFileMetadata(false); + } - getFileMetadata(true); Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); startingToast.show(); From 89ee06a4c614a2ace1f08874aa03938b5a1f3523 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:55:12 +1200 Subject: [PATCH 08/10] Versioning --- app/src/main/AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0743124d0..0a3cca7fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ + android:versionCode="49" + android:versionName="1.31" > From 9e086df48bb9ce73200d78e271058ee48d242c70 Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Sat, 17 Sep 2016 17:57:16 +1200 Subject: [PATCH 09/10] Update changelog.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03eb695d5..48287c89c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Wikimedia Commons for Android +##v1.31 +- Fixed bug with geolocation category suggestions not being displayed +- Fixed bug with (0,0) being recorded as image location occasionally + ##v1.30 - Fixed {{Location|null}} template bug From 2b9488d5ff7b51b419a04533a27b7c8d8af506cb Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 17 Sep 2016 17:59:42 +1200 Subject: [PATCH 10/10] Add comments --- .../main/java/fr/free/nrw/commons/upload/GPSExtractor.java | 1 + .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java b/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java index a6629d097..209b3827f 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java @@ -82,6 +82,7 @@ public class GPSExtractor { /** * Extracts geolocation (either of image from EXIF data, or of user) + * @param useGPS set to true if location permissions allowed (by API 23), false if disallowed * @return coordinates as string (needs to be passed as a String in API query) */ @Nullable diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index d27f781ab..79672ad4f 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -353,6 +353,10 @@ public class ShareActivity } } + /** + * Gets coordinates for category suggestions, either from EXIF data or user location + * @param gpsEnabled + */ public void getFileMetadata(boolean gpsEnabled) { filePath = FileUtils.getPath(this, mediaUri); Log.d(TAG, "Filepath: " + filePath);