From 0b0c01d3ac9959c92d3ba0a2bf8b006c03ee471f Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 20:33:10 +1000 Subject: [PATCH 01/19] Always return false for gpsPreferenceEnabled() --- .../java/fr/free/nrw/commons/upload/GPSExtractor.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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 b9750e350..93eb729f6 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 @@ -71,9 +71,9 @@ public class GPSExtractor { * @return true if enabled, false if disabled */ private boolean gpsPreferenceEnabled() { - boolean gpsPref = prefs.getBoolean("allowGps", false); - Timber.d("Gps pref set to: %b", gpsPref); - return gpsPref; + //TODO: Hotfix for #1599 + //Stopgap measure prior to implementing category suggestions without adding location template + return false; } /** @@ -134,8 +134,7 @@ public class GPSExtractor { // explicitly set by MyLocationListener // and do not default to (0.0,0.0) if (gpsPrefEnabled && currentLatitude != null && currentLongitude != null) { - Timber.d("Current location values: Lat = %f Long = %f", - currentLatitude, currentLongitude); + Timber.d("Current location values: Lat = %f Long = %f", currentLatitude, currentLongitude); return String.valueOf(currentLatitude) + "|" + String.valueOf(currentLongitude); } else { // No coords found From 371580bf5e3ad77c6455546972e96be0dfda5e33 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 20:34:52 +1000 Subject: [PATCH 02/19] Always return null if image has no EXIF data --- .../free/nrw/commons/upload/GPSExtractor.java | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) 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 93eb729f6..50e7cb86e 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 @@ -121,28 +121,7 @@ public class GPSExtractor { //If image has no EXIF data and user has enabled GPS setting, get user's location if (exif == null || exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE) == null) { - if (useGPS) { - registerLocationManager(); - - imageCoordsExists = false; - Timber.d("EXIF data has no location info"); - - //Check what user's preference is for automatic location detection - boolean gpsPrefEnabled = gpsPreferenceEnabled(); - - //Check that currentLatitude and currentLongitude have been - // explicitly set by MyLocationListener - // and do not default to (0.0,0.0) - if (gpsPrefEnabled && currentLatitude != null && currentLongitude != null) { - Timber.d("Current location values: Lat = %f Long = %f", currentLatitude, currentLongitude); - return String.valueOf(currentLatitude) + "|" + String.valueOf(currentLongitude); - } else { - // No coords found - return null; - } - } else { - return null; - } + return null; } else { //If image has EXIF data, extract image coords imageCoordsExists = true; From e8925f5a021ad556da32880c02dedf0fecf7b5db Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 20:36:01 +1000 Subject: [PATCH 03/19] Add TODO --- app/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java | 1 + 1 file changed, 1 insertion(+) 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 50e7cb86e..4ae00b779 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 @@ -120,6 +120,7 @@ public class GPSExtractor { String decimalCoords; //If image has no EXIF data and user has enabled GPS setting, get user's location + //TODO: Always return null as a temporary fix for #1599 if (exif == null || exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE) == null) { return null; } else { From fa238b94aafcc4c1c400e8b3066d8b5affd7de55 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 20:52:42 +1000 Subject: [PATCH 04/19] Do not display Snackbar to get location permissions --- .../free/nrw/commons/upload/ShareActivity.java | 16 ---------------- 1 file changed, 16 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 638ad6a10..59577266a 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 @@ -275,22 +275,6 @@ public class ShareActivity Timber.d("Uri: %s", mediaUri.toString()); Timber.d("Ext storage dir: %s", Environment.getExternalStorageDirectory()); - useNewPermissions = false; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - useNewPermissions = true; - if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - locationPermitted = true; - } - } - - // Check location permissions if M or newer for category suggestions, request via snackbar if not present - if (!locationPermitted) { - requestPermissionUsingSnackBar( - getString(R.string.location_permission_rationale), - new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, - REQUEST_PERM_ON_CREATE_LOCATION); - } - SingleUploadFragment shareView = (SingleUploadFragment) getSupportFragmentManager().findFragmentByTag("shareView"); categorizationFragment = (CategorizationFragment) getSupportFragmentManager().findFragmentByTag("categorization"); if (shareView == null && categorizationFragment == null) { From 801fea631f8eb90a30e863692a83bf5bb23bd410 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 20:54:28 +1000 Subject: [PATCH 05/19] No need to unregisterLocationManager() as it should never be registered --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 6 ------ 1 file changed, 6 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 59577266a..6f2c1b971 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 @@ -453,12 +453,6 @@ public class ShareActivity @Override public void onPause() { super.onPause(); - try { - gpsObj.unregisterLocationManager(); - Timber.d("Unregistered locationManager"); - } catch (NullPointerException e) { - Timber.d("locationManager does not exist, not unregistered"); - } } @Override From b5c74c350b096ec48d3d85bde9e75852e141dad0 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 21:25:19 +1000 Subject: [PATCH 06/19] Remove "automatically get current location" Setting entirely --- app/src/main/res/xml/preferences.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 49720b247..ccba24531 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -38,17 +38,6 @@ - - - - - - From 97d63cef6b83ca4f40ee7dca148fe48c56ced851 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 21 Jun 2018 17:50:44 +1000 Subject: [PATCH 07/19] Added comment in place of allowGps key --- app/src/main/res/xml/preferences.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index ccba24531..8fc5524a2 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -38,6 +38,9 @@ + + From df7a944c78c484bf110ab0cc6b773986f057d1ff Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 19:53:03 +1000 Subject: [PATCH 08/19] Remove unused methods in GPSExtractor --- .../free/nrw/commons/upload/GPSExtractor.java | 40 ------------------- 1 file changed, 40 deletions(-) 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 4ae00b779..fcbb17ac5 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 @@ -66,46 +66,6 @@ public class GPSExtractor { this.context = context; } - /** - * Check if user enabled retrieval of their current location in Settings - * @return true if enabled, false if disabled - */ - private boolean gpsPreferenceEnabled() { - //TODO: Hotfix for #1599 - //Stopgap measure prior to implementing category suggestions without adding location template - return false; - } - - /** - * Registers a LocationManager to listen for current location - */ - protected void registerLocationManager() { - locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); - Criteria criteria = new Criteria(); - String provider = locationManager.getBestProvider(criteria, true); - myLocationListener = new MyLocationListener(); - - try { - locationManager.requestLocationUpdates(provider, 400, 1, myLocationListener); - Location location = locationManager.getLastKnownLocation(provider); - if (location != null) { - myLocationListener.onLocationChanged(location); - } - } catch (IllegalArgumentException e) { - Timber.e(e, "Illegal argument exception"); - } catch (SecurityException e) { - Timber.e(e, "Security exception"); - } - } - - protected void unregisterLocationManager() { - try { - locationManager.removeUpdates(myLocationListener); - } catch (SecurityException e) { - Timber.e(e, "Security exception"); - } - } - /** * 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 From 927ceb9aba726833691ea0c7d4d56c070a1127a7 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 19:59:19 +1000 Subject: [PATCH 09/19] Remove unnecessary context var --- .../main/java/fr/free/nrw/commons/upload/FileProcessor.java | 4 ++-- .../main/java/fr/free/nrw/commons/upload/GPSExtractor.java | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java index 2845b8d1f..561648b60 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java @@ -106,7 +106,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { ParcelFileDescriptor descriptor = contentResolver.openFileDescriptor(mediaUri, "r"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (descriptor != null) { - imageObj = new GPSExtractor(descriptor.getFileDescriptor(), context, prefs); + imageObj = new GPSExtractor(descriptor.getFileDescriptor(), prefs); } } else { String filePath = getPathOfMediaOrCopy(); @@ -161,7 +161,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (descriptor != null) { - tempImageObj = new GPSExtractor(descriptor.getFileDescriptor(), context, prefs); + tempImageObj = new GPSExtractor(descriptor.getFileDescriptor(), prefs); } } else { if (filePath != null) { 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 fcbb17ac5..4923730fa 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 @@ -24,7 +24,6 @@ import timber.log.Timber; */ public class GPSExtractor { - private final Context context; private SharedPreferences prefs; private ExifInterface exif; private double decLatitude; @@ -38,11 +37,9 @@ public class GPSExtractor { /** * Construct from the file descriptor of the image (only for API 24 or newer). * @param fileDescriptor the file descriptor of the image - * @param context the context */ @RequiresApi(24) - public GPSExtractor(@NonNull FileDescriptor fileDescriptor, Context context, SharedPreferences prefs) { - this.context = context; + public GPSExtractor(@NonNull FileDescriptor fileDescriptor, SharedPreferences prefs) { this.prefs = prefs; try { exif = new ExifInterface(fileDescriptor); @@ -63,7 +60,6 @@ public class GPSExtractor { } catch (IOException | IllegalArgumentException e) { Timber.w(e); } - this.context = context; } /** From 0fd77a1c601c419f71bda535302acb1a8e810262 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:00:50 +1000 Subject: [PATCH 10/19] Remove context in other constructor --- .../main/java/fr/free/nrw/commons/upload/FileProcessor.java | 4 ++-- .../main/java/fr/free/nrw/commons/upload/GPSExtractor.java | 6 ++---- .../fr/free/nrw/commons/upload/MultipleShareActivity.java | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java index 561648b60..3e76e9231 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java @@ -111,7 +111,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { } else { String filePath = getPathOfMediaOrCopy(); if (filePath != null) { - imageObj = new GPSExtractor(filePath, context, prefs); + imageObj = new GPSExtractor(filePath, prefs); } } @@ -165,7 +165,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { } } else { if (filePath != null) { - tempImageObj = new GPSExtractor(file.getAbsolutePath(), context, prefs); + tempImageObj = new GPSExtractor(file.getAbsolutePath(), prefs); } } 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 4923730fa..5c4ed5e43 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 @@ -1,8 +1,6 @@ package fr.free.nrw.commons.upload; -import android.content.Context; import android.content.SharedPreferences; -import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; @@ -51,9 +49,9 @@ public class GPSExtractor { /** * Construct from the file path of the image. * @param path file path of the image - * @param context the context + * */ - public GPSExtractor(@NonNull String path, Context context, SharedPreferences prefs) { + public GPSExtractor(@NonNull String path, SharedPreferences prefs) { this.prefs = prefs; try { exif = new ExifInterface(path); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java index 58d6d61ca..f51a1f55a 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java @@ -329,12 +329,12 @@ public class MultipleShareActivity extends AuthenticatedActivity if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { ParcelFileDescriptor fd = getContentResolver().openFileDescriptor(imageUri,"r"); if (fd != null) { - gpsExtractor = new GPSExtractor(fd.getFileDescriptor(),this,prefs); + gpsExtractor = new GPSExtractor(fd.getFileDescriptor(), prefs); } } else { String filePath = FileUtils.getPath(this,imageUri); if (filePath != null) { - gpsExtractor = new GPSExtractor(filePath,this,prefs); + gpsExtractor = new GPSExtractor(filePath, prefs); } } From 7d3e3ae6685d014baa3b9e4ed713a662b56b61a7 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:01:36 +1000 Subject: [PATCH 11/19] Fix other GPSExtractor vars, logs and imports --- .../main/java/fr/free/nrw/commons/upload/GPSExtractor.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) 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 5c4ed5e43..afe63bf62 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 @@ -3,7 +3,6 @@ package fr.free.nrw.commons.upload; import android.content.SharedPreferences; import android.location.Location; import android.location.LocationListener; -import android.location.LocationManager; import android.media.ExifInterface; import android.os.Bundle; import android.support.annotation.NonNull; @@ -17,8 +16,7 @@ import timber.log.Timber; /** * Extracts geolocation to be passed to API for category suggestions. If a picture with geolocation - * is uploaded, extract latitude and longitude from EXIF data of image. If a picture without - * geolocation is uploaded, retrieve user's location (if enabled in Settings). + * is uploaded, extract latitude and longitude from EXIF data of image. */ public class GPSExtractor { @@ -29,8 +27,6 @@ public class GPSExtractor { private Double currentLatitude = null; private Double currentLongitude = null; public boolean imageCoordsExists; - private MyLocationListener myLocationListener; - private LocationManager locationManager; /** * Construct from the file descriptor of the image (only for API 24 or newer). From 0b58e28ba50005281786ab9a6d6d29340192f8cd Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:01:58 +1000 Subject: [PATCH 12/19] Remove LocationListener from GPSExtractor --- .../free/nrw/commons/upload/GPSExtractor.java | 27 ------------------- 1 file changed, 27 deletions(-) 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 afe63bf62..b9fd53222 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 @@ -95,33 +95,6 @@ public class GPSExtractor { } } - /** - * Listen for user's location when it changes - */ - private class MyLocationListener implements LocationListener { - - @Override - public void onLocationChanged(Location location) { - currentLatitude = location.getLatitude(); - currentLongitude = location.getLongitude(); - } - - @Override - public void onStatusChanged(String provider, int status, Bundle extras) { - Timber.d("%s's status changed to %d", provider, status); - } - - @Override - public void onProviderEnabled(String provider) { - Timber.d("Provider %s enabled", provider); - } - - @Override - public void onProviderDisabled(String provider) { - Timber.d("Provider %s disabled", provider); - } - } - public double getDecLatitude() { return decLatitude; } From fe3dda18ce4b184265e943cd2519608690444085 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:03:13 +1000 Subject: [PATCH 13/19] Remove boolean useGPS entirely --- .../java/fr/free/nrw/commons/upload/FileProcessor.java | 8 ++++---- .../java/fr/free/nrw/commons/upload/GPSExtractor.java | 8 +------- .../fr/free/nrw/commons/upload/MultipleShareActivity.java | 2 +- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java index 3e76e9231..91c742d08 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java @@ -115,7 +115,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { } } - decimalCoords = imageObj.getCoords(gpsEnabled); + decimalCoords = imageObj.getCoords(); if (decimalCoords == null || !imageObj.imageCoordsExists) { //Find other photos taken around the same time which has gps coordinates if (!haveCheckedForOtherImages) @@ -170,8 +170,8 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { } if (tempImageObj != null) { - Timber.d("not null fild EXIF" + tempImageObj.imageCoordsExists + " coords" + tempImageObj.getCoords(gpsEnabled)); - if (tempImageObj.getCoords(gpsEnabled) != null && tempImageObj.imageCoordsExists) { + Timber.d("not null fild EXIF" + tempImageObj.imageCoordsExists + " coords" + tempImageObj.getCoords()); + if (tempImageObj.getCoords() != null && tempImageObj.imageCoordsExists) { // Current image has gps coordinates and it's not current gps locaiton Timber.d("This file has image coords:" + file.getAbsolutePath()); SimilarImageDialogFragment newFragment = new SimilarImageDialogFragment(); @@ -250,7 +250,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { @Override public void onPositiveResponse() { imageObj = tempImageObj; - decimalCoords = imageObj.getCoords(false);// Not necessary to use gps as image already ha EXIF data + decimalCoords = imageObj.getCoords();// Not necessary to use gps as image already ha EXIF data Timber.d("EXIF from tempImageObj"); useImageCoords(); } 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 b9fd53222..fdfdd986b 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 @@ -1,10 +1,7 @@ package fr.free.nrw.commons.upload; import android.content.SharedPreferences; -import android.location.Location; -import android.location.LocationListener; import android.media.ExifInterface; -import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.RequiresApi; @@ -24,8 +21,6 @@ public class GPSExtractor { private ExifInterface exif; private double decLatitude; private double decLongitude; - private Double currentLatitude = null; - private Double currentLongitude = null; public boolean imageCoordsExists; /** @@ -58,11 +53,10 @@ 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 - public String getCoords(boolean useGPS) { + public String getCoords() { String latitude; String longitude; String latitudeRef; diff --git a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java index f51a1f55a..0c1ee92eb 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java @@ -340,7 +340,7 @@ public class MultipleShareActivity extends AuthenticatedActivity if (gpsExtractor != null) { //get image coordinates from exif data or user location - return gpsExtractor.getCoords(locationPermitted); + return gpsExtractor.getCoords(); } } catch (FileNotFoundException fnfe) { From be5c05435e73ab1c1ba1b61d0e8dba0f196b09e9 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:04:47 +1000 Subject: [PATCH 14/19] Remove prefs var in GPSExtractor --- .../java/fr/free/nrw/commons/upload/FileProcessor.java | 8 ++++---- .../java/fr/free/nrw/commons/upload/GPSExtractor.java | 9 +++------ .../free/nrw/commons/upload/MultipleShareActivity.java | 4 ++-- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java index 91c742d08..acb29fe29 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java @@ -106,12 +106,12 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { ParcelFileDescriptor descriptor = contentResolver.openFileDescriptor(mediaUri, "r"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (descriptor != null) { - imageObj = new GPSExtractor(descriptor.getFileDescriptor(), prefs); + imageObj = new GPSExtractor(descriptor.getFileDescriptor()); } } else { String filePath = getPathOfMediaOrCopy(); if (filePath != null) { - imageObj = new GPSExtractor(filePath, prefs); + imageObj = new GPSExtractor(filePath); } } @@ -161,11 +161,11 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (descriptor != null) { - tempImageObj = new GPSExtractor(descriptor.getFileDescriptor(), prefs); + tempImageObj = new GPSExtractor(descriptor.getFileDescriptor()); } } else { if (filePath != null) { - tempImageObj = new GPSExtractor(file.getAbsolutePath(), prefs); + tempImageObj = new GPSExtractor(file.getAbsolutePath()); } } 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 fdfdd986b..caadd14b5 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 @@ -16,8 +16,7 @@ import timber.log.Timber; * is uploaded, extract latitude and longitude from EXIF data of image. */ public class GPSExtractor { - - private SharedPreferences prefs; + private ExifInterface exif; private double decLatitude; private double decLongitude; @@ -28,8 +27,7 @@ public class GPSExtractor { * @param fileDescriptor the file descriptor of the image */ @RequiresApi(24) - public GPSExtractor(@NonNull FileDescriptor fileDescriptor, SharedPreferences prefs) { - this.prefs = prefs; + public GPSExtractor(@NonNull FileDescriptor fileDescriptor) { try { exif = new ExifInterface(fileDescriptor); } catch (IOException | IllegalArgumentException e) { @@ -42,8 +40,7 @@ public class GPSExtractor { * @param path file path of the image * */ - public GPSExtractor(@NonNull String path, SharedPreferences prefs) { - this.prefs = prefs; + public GPSExtractor(@NonNull String path) { try { exif = new ExifInterface(path); } catch (IOException | IllegalArgumentException e) { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java index 0c1ee92eb..0e2dc7a8e 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java @@ -329,12 +329,12 @@ public class MultipleShareActivity extends AuthenticatedActivity if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { ParcelFileDescriptor fd = getContentResolver().openFileDescriptor(imageUri,"r"); if (fd != null) { - gpsExtractor = new GPSExtractor(fd.getFileDescriptor(), prefs); + gpsExtractor = new GPSExtractor(fd.getFileDescriptor()); } } else { String filePath = FileUtils.getPath(this,imageUri); if (filePath != null) { - gpsExtractor = new GPSExtractor(filePath, prefs); + gpsExtractor = new GPSExtractor(filePath); } } From 4a5257c2c77e90e70ecfa82009f9c77ec8c0bff0 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:07:06 +1000 Subject: [PATCH 15/19] Optimize FileProcessor --- .../main/java/fr/free/nrw/commons/upload/FileProcessor.java | 5 ++--- .../main/java/fr/free/nrw/commons/upload/GPSExtractor.java | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java index acb29fe29..b29d686f5 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/FileProcessor.java @@ -119,7 +119,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { if (decimalCoords == null || !imageObj.imageCoordsExists) { //Find other photos taken around the same time which has gps coordinates if (!haveCheckedForOtherImages) - findOtherImages(gpsEnabled);// Do not do repeat the process + findOtherImages();// Do not do repeat the process } else { useImageCoords(); } @@ -137,9 +137,8 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse { /** * Find other images around the same location that were taken within the last 20 sec * - * @param gpsEnabled True if GPS is enabled */ - private void findOtherImages(boolean gpsEnabled) { + private void findOtherImages() { Timber.d("filePath" + getPathOfMediaOrCopy()); long timeOfCreation = new File(filePath).lastModified();//Time when the original image was created 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 caadd14b5..e45b31f05 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 @@ -1,6 +1,5 @@ package fr.free.nrw.commons.upload; -import android.content.SharedPreferences; import android.media.ExifInterface; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -16,7 +15,7 @@ import timber.log.Timber; * is uploaded, extract latitude and longitude from EXIF data of image. */ public class GPSExtractor { - + private ExifInterface exif; private double decLatitude; private double decLongitude; From 4340d655c4e717da80b6bc3898842b8505261394 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:10:26 +1000 Subject: [PATCH 16/19] Remove snackbar from ShareActivity --- .../free/nrw/commons/upload/ShareActivity.java | 17 +---------------- 1 file changed, 1 insertion(+), 16 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 6f2c1b971..c67d0cd1b 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 @@ -130,7 +130,6 @@ public class ShareActivity private String title; private String description; private String wikiDataEntityId; - private Snackbar snackbar; private boolean duplicateCheckPassed = false; private boolean isNearbyUpload = false; private Animator CurrentAnimator; @@ -373,7 +372,7 @@ public class ShareActivity } /** - * Handles BOTH snackbar permission request (for location) and submit button permission request (for storage) + * Handles submit button permission request (for storage) * * @param requestCode type of request * @param permissions permissions requested @@ -394,29 +393,15 @@ public class ShareActivity // submit button should bring user to next screen case REQUEST_PERM_ON_SUBMIT_STORAGE: { if (grantResults.length >= 1 && 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 checkIfFileExists(); //Uploading only begins if storage permission granted from arrow icon uploadBegins(); - snackbar.dismiss(); } } } } - /** - * Displays Snackbar to ask for location permissions - */ - private Snackbar requestPermissionUsingSnackBar(String rationale, final String[] perms, final int code) { - Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), rationale, - Snackbar.LENGTH_INDEFINITE).setAction(R.string.ok, - view -> ActivityCompat.requestPermissions(ShareActivity.this, perms, code)); - snackbar.show(); - return snackbar; - } - /** * Check if file user wants to upload already exists on Commons */ From 798bcbad7f32a2fabe3f75e21267b544143edbb5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:11:00 +1000 Subject: [PATCH 17/19] Tidy onRequestPermissionsResult --- .../java/fr/free/nrw/commons/upload/ShareActivity.java | 8 -------- 1 file changed, 8 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 c67d0cd1b..1af4f10a2 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 @@ -381,14 +381,6 @@ public class ShareActivity @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { - case REQUEST_PERM_ON_CREATE_LOCATION: { - if (grantResults.length >= 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - locationPermitted = true; - checkIfFileExists(); - } - return; - } - // Storage (from submit button) - this needs to be separate from (1) because only the // submit button should bring user to next screen case REQUEST_PERM_ON_SUBMIT_STORAGE: { From 3ab3b028c460d15e86e40ff7655172788558530d Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:11:31 +1000 Subject: [PATCH 18/19] Optimize imports in ShareActivity --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 3 --- 1 file changed, 3 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 1af4f10a2..dfa116b9e 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 @@ -21,9 +21,7 @@ import android.os.Environment; import android.support.annotation.NonNull; import android.support.annotation.RequiresApi; import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.Snackbar; import android.support.graphics.drawable.VectorDrawableCompat; -import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.view.MenuItem; import android.view.View; @@ -64,7 +62,6 @@ import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.ViewUtil; import timber.log.Timber; -import android.support.design.widget.FloatingActionButton; import static fr.free.nrw.commons.upload.ExistingFileAsync.Result.DUPLICATE_PROCEED; import static fr.free.nrw.commons.upload.ExistingFileAsync.Result.NO_DUPLICATE; import static fr.free.nrw.commons.upload.FileUtils.getSHA1; From b5161d64a68bd72838268b1e063ba6e6a3dbdebe Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 23 Jun 2018 20:13:15 +1000 Subject: [PATCH 19/19] Remove location constant from ShareActivity --- app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java | 1 - 1 file changed, 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 dfa116b9e..8700f4acb 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 @@ -74,7 +74,6 @@ public class ShareActivity extends AuthenticatedActivity implements SingleUploadFragment.OnUploadActionInitiated, OnCategoriesSaveHandler { - private static final int REQUEST_PERM_ON_CREATE_LOCATION = 2; private static final int REQUEST_PERM_ON_SUBMIT_STORAGE = 4; //Had to make them class variables, to extract out the click listeners, also I see no harm in this final Rect startBounds = new Rect();