From c959321ab08a8fdff6994d198053090a62b255b6 Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Wed, 2 May 2018 20:17:32 +1000 Subject: [PATCH 01/29] Update issue_template.md It feels like the template for reporting bugs is a bit redundant - we have summary, steps to reproduce, observed behaviour AND expected behaviour, which all are very similar. I think that by paring it down to the essentials, people will be less likely to skip steps. --- ISSUE_TEMPLATE.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 691562b04..ce33f1a18 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,9 +1,9 @@ -_Before creating an issue, please search the existing issues to see if a similar one has already been created. You can search issues by specific labels (e.g. `label:nearby `) or just by typing keywords into the search filter._ - **Summary:** Summarize your issue in one sentence (what goes wrong, what did you expect to happen) +_Before creating an issue, please search the existing issues to see if a similar one has already been created. You can search issues by specific labels (e.g. `label:nearby `) or just by typing keywords into the search filter._ + **Steps to reproduce:** How can we reproduce the issue? @@ -12,14 +12,6 @@ How can we reproduce the issue? Add logcat files here (if possible). -**Expected behavior:** - -What did you expect the App to do? - -**Observed behavior:** - -What did you see instead? Describe your issue in detail here. - **Device and Android version:** What make and model device (e.g., Samsung J7) did you encounter this on? What Android @@ -28,7 +20,7 @@ version (e.g., Android 4.0 Ice Cream Sandwich or Android 6.0 Marshmallow) are yo **Commons app version:** -You can find this information by going to the navigation drawer in the app and tapping 'About' +You can find this information by going to the navigation drawer in the app and tapping 'About'. If you are building from our codebase instead of downloading the app, please also mention the branch and build variant (e.g. master and prodDebug). **Screen-shots:** From 0b0c01d3ac9959c92d3ba0a2bf8b006c03ee471f Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 19 Jun 2018 20:33:10 +1000 Subject: [PATCH 02/29] 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 03/29] 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 04/29] 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 05/29] 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 06/29] 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 07/29] 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 08/29] 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 09/29] 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 10/29] 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 11/29] 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 12/29] 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 13/29] 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 14/29] 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 15/29] 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 16/29] 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 17/29] 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 18/29] 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 19/29] 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 20/29] 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(); From 8859ff91e8638dababd8750cbe1d11a3c9a06aa5 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Thu, 28 Jun 2018 01:18:16 +0900 Subject: [PATCH 21/29] Merge Mapbox update from master --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index dc8c3b845..7cde64233 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ dependencies { implementation 'info.debatty:java-string-similarity:0.24' implementation 'com.borjabravo:readmoretextview:2.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.0' - implementation ('com.mapbox.mapboxsdk:mapbox-android-sdk:5.4.1@aar'){ - transitive=true + implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:5.5.0@aar') { + transitive = true } implementation "com.github.deano2390:MaterialShowcaseView:1.2.0" From 779704812c14713a455fa6ed5f88b81d4a9ff05d Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Fri, 29 Jun 2018 03:11:35 +1000 Subject: [PATCH 22/29] Add description to "steps to reproduce" --- ISSUE_TEMPLATE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index ce33f1a18..8feca4268 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -6,7 +6,8 @@ _Before creating an issue, please search the existing issues to see if a similar **Steps to reproduce:** -How can we reproduce the issue? +How can we reproduce the issue? +What did you expect the app to do, and what did you see instead? **Add System logs:** From 88d2038bc1573f7c0f6cae90b305f437c976cb6e Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 30 Jun 2018 20:17:09 +0530 Subject: [PATCH 23/29] Fix tamil translation of app name (#1679) The app name has been 'Commons' (and not 'Wikimedia Commons') for a very long time. For completely unknown reasons, the Tamil (ta) translation of the app name stuck with the translation for 'Wikimedia Commons' regardless of the fact that the translation had been corrected at translatewiki.net in the year 2016. The correction somehow didn't reflect here during the localisation updates from tranlsatewiki.net. Ignoring the weirdness, correct the translation of the app name to reflect it's current name. --- app/src/main/res/values-ta/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 1b611137d..c3dd661c7 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -1,6 +1,6 @@ - விக்கிமீடியா காமன்சு + காமன்சு அமைப்புகள் பயனர் பெயர் கடவுச்சொல் From d3f8ffa3080fc65db08d566f6514b6c7b047e432 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 2 Jul 2018 07:54:40 +0200 Subject: [PATCH 24/29] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-ar/strings.xml | 2 ++ app/src/main/res/values-bn/strings.xml | 2 ++ app/src/main/res/values-pl/strings.xml | 10 ++++++++++ app/src/main/res/values-skr/strings.xml | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index fb18f34f2..237f1e3b8 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -144,4 +144,6 @@ %1$s رسالة على صفحة الحديث %1$s ذكر لك على %2$s. شارك التطبيق + صورة اليوم + صورة اليوم diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index c412c11c2..1284867be 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -257,6 +257,8 @@ ইন্টারনেট অনুপলব্ধ ইন্টারনেট উপলব্ধ কোন বিজ্ঞপ্তি পাওয়া যায়নি + ভাষাসমূহ + বাতিল পুনঃচেষ্টা করুন বুঝেছি! কোন চিত্র পাওয়া যায়নি! diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 975cf23b0..8edd29ac6 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -94,6 +94,7 @@ Kategorie Ustawienia Zarejestruj się + Wyróżniony obrazek O aplikacji Aplikacja Wikimedia Commons jest oprogramowaniem typu open-source tworzonym i rozwijanym przez stypendystów i wolontariuszy ze społeczności Wikimedii. Fundacja Wikimedia nie bierze udziału w tworzeniu, rozwijaniu ani utrzymywaniu aplikacji. <a href=\"https://github.com/commons-app/apps-android-commons\">Kod źródłowy</a> oraz <a href=\"https://commons-app.github.io/\">strona internetowa</a> na GitHub. Aby zgłosić błąd lub sugestię, utwórz nowe <a href=\"https://github.com/commons-app/apps-android-commons/issues\">zgłoszenie na GitHub</a>. @@ -159,6 +160,7 @@ Nieznana licencja Odśwież Wymagane uprawnienia: odczyt z dysku zewnętrznego. Aplikacja nie będzie w stanie funkcjonować bez tego. + Wymagane uprawnienia: odczyt z dysku zewnętrznego. Aplikacja nie będzie w stanie funkcjonować bez tego. Opcjonalne zezwolenie: uzyskiwanie bieżącej lokalizacji dla wygenerowania propozycji kategorii OK Pobliskie miejsca @@ -175,6 +177,7 @@ Data przesłania Licencja Współrzędne + Nie dostarczone Zostań beta-testerem Dołącz do kanału bety w Google Play i dostań wczesny dostęp do nowych funkcji i łatek Kod 2FA @@ -205,12 +208,15 @@ Wyloguj Samouczek Powiadomienia + Wyróżnione nie znaleziono opisu Element Wikidanych Artykuł na Wikipedii Podaj krótką, opisową i unikalną nazwę, która będzie służyła jako nazwa pliku. Możesz używać prostego języka i spacji. Nie dodawaj rozszerzenia pliku. + Uzyskaj uprawnienie Zaloguj się na swoje konto Błąd! Nie znaleziono adresu URL + Zgłoszone do usunięcia Ta grafika została zgłoszona do usunięcia. Otwórz w przeglądarce Witamy w Wikimedia Commons, %1$s! Cieszymy się, że tu jesteś. @@ -225,9 +231,13 @@ Pomiń samouczek Nie znaleziono powiadomień Języki + Dalej Anuluj + Ponów próbę + Wszystko jasne! Nie znaleziono grafik! Wystąpił błąd podczas ładowania grafik. + Przesłano przez $1 Ustaw tapetę Tapeta ustawiona pomyślnie! diff --git a/app/src/main/res/values-skr/strings.xml b/app/src/main/res/values-skr/strings.xml index 7a4dffb41..ddb88636a 100644 --- a/app/src/main/res/values-skr/strings.xml +++ b/app/src/main/res/values-skr/strings.xml @@ -20,7 +20,7 @@ لاگ ان کامیاب! لاگ ان ناکام! فائل کائنی لبھی،ٻئی فائل کیتے کوشش کرو۔ - تصدیق ناکام! + تصدیق ناکام، ولدا لاڳ ان تھیوو اپ لوڈ شروع! %1$s اپ لوڈ تھی ڳیا! آپݨی اپلوڈ ݙیکھݨ کیتے ٹیپ کرو From 306f23d1e22f68f4d326786be01792f5918028fa Mon Sep 17 00:00:00 2001 From: Vivek Maskara Date: Tue, 3 Jul 2018 19:59:26 +0530 Subject: [PATCH 25/29] Force login when no active session is found while uploading an image (#1684) * Force login when no active session is found while uploading an image * Updated not logged in message --- .../fr/free/nrw/commons/auth/SessionManager.java | 3 +++ .../free/nrw/commons/upload/UploadController.java | 13 ++++++++++++- app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java b/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java index 9ef6b7843..896158439 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java @@ -5,6 +5,8 @@ import android.accounts.AccountManager; import android.content.Context; import android.content.SharedPreferences; +import javax.annotation.Nullable; + import fr.free.nrw.commons.mwapi.MediaWikiApi; import io.reactivex.Completable; import io.reactivex.Observable; @@ -31,6 +33,7 @@ public class SessionManager { /** * @return Account|null */ + @Nullable public Account getCurrentAccount() { if (currentAccount == null) { AccountManager accountManager = AccountManager.get(context); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 5fd6d909b..40aae8636 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons.upload; +import android.accounts.Account; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; @@ -13,6 +14,7 @@ import android.os.AsyncTask; import android.os.IBinder; import android.provider.MediaStore; import android.text.TextUtils; +import android.widget.Toast; import java.io.BufferedInputStream; import java.io.IOException; @@ -22,9 +24,11 @@ import java.util.concurrent.Executors; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.HandlerService; +import fr.free.nrw.commons.R; import fr.free.nrw.commons.auth.SessionManager; import fr.free.nrw.commons.contributions.Contribution; import fr.free.nrw.commons.settings.Prefs; +import fr.free.nrw.commons.utils.ViewUtil; import timber.log.Timber; public class UploadController { @@ -95,8 +99,15 @@ public class UploadController { Contribution contribution; //TODO: Modify this to include coords + Account currentAccount = sessionManager.getCurrentAccount(); + if(currentAccount == null) { + Timber.d("Current account is null"); + ViewUtil.showLongToast(context, context.getString(R.string.user_not_logged_in)); + sessionManager.forceLogin(context); + return; + } contribution = new Contribution(mediaUri, null, title, description, -1, - null, null, sessionManager.getCurrentAccount().name, + null, null, currentAccount.name, CommonsApplication.DEFAULT_EDIT_SUMMARY, decimalCoords); contribution.setTag("mimeType", mimeType); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d2acdb245..7134afc61 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -287,4 +287,6 @@ Failed to update corresponding Wikidata entity! Set wallpaper Wallpaper set successfully! + + Login session expired, please log in again. From b2a150a3ae05decd0937f6e047943cef2248ecad Mon Sep 17 00:00:00 2001 From: Vivek Maskara Date: Thu, 5 Jul 2018 15:43:37 +0530 Subject: [PATCH 26/29] Fix issue where Wikidata edits were not happening (#1682) * Added logs to debug wikidata edits * Minor changes in logs --- .../contributions/ContributionController.java | 4 +++- .../nrw/commons/nearby/NearbyListFragment.java | 3 ++- .../nrw/commons/nearby/NearbyMapFragment.java | 9 +++++---- .../java/fr/free/nrw/commons/nearby/Place.java | 16 +++++++++++++++- .../fr/free/nrw/commons/nearby/Sitelinks.java | 9 +++++++++ .../free/nrw/commons/upload/ShareActivity.java | 3 +++ .../nrw/commons/upload/UploadController.java | 3 +++ .../free/nrw/commons/upload/UploadService.java | 2 ++ .../nrw/commons/wikidata/WikidataConstants.java | 5 +++++ .../commons/wikidata/WikidataEditService.java | 10 ++++++++-- 10 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/fr/free/nrw/commons/wikidata/WikidataConstants.java diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index ed6001f94..76f3e5a0f 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -24,6 +24,7 @@ import static android.content.Intent.EXTRA_STREAM; import static fr.free.nrw.commons.contributions.Contribution.SOURCE_CAMERA; import static fr.free.nrw.commons.contributions.Contribution.SOURCE_GALLERY; import static fr.free.nrw.commons.upload.UploadService.EXTRA_SOURCE; +import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF; public class ContributionController { @@ -91,6 +92,7 @@ public class ContributionController { } public void handleImagePicked(int requestCode, Intent data, boolean isDirectUpload, String wikiDataEntityId) { + Timber.d("Is direct upload %s and the Wikidata entity ID is %s", isDirectUpload, wikiDataEntityId); FragmentActivity activity = fragment.getActivity(); Timber.d("handleImagePicked() called with onActivityResult()"); Intent shareIntent = new Intent(activity, ShareActivity.class); @@ -119,7 +121,7 @@ public class ContributionController { try { shareIntent.putExtra("isDirectUpload", isDirectUpload); if (wikiDataEntityId != null && !wikiDataEntityId.equals("")) { - shareIntent.putExtra("wikiDataEntityId", wikiDataEntityId); + shareIntent.putExtra(WIKIDATA_ENTITY_ID_PREF, wikiDataEntityId); } activity.startActivity(shareIntent); } catch (SecurityException e) { diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java index 099792bc5..0599b4fe2 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java @@ -35,6 +35,7 @@ import timber.log.Timber; import static android.app.Activity.RESULT_OK; import static android.content.pm.PackageManager.PERMISSION_GRANTED; +import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF; public class NearbyListFragment extends DaggerFragment { private Bundle bundleForUpdates; // Carry information from activity about changed nearby places and current location @@ -146,7 +147,7 @@ public class NearbyListFragment extends DaggerFragment { if (resultCode == RESULT_OK) { Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); - controller.handleImagePicked(requestCode, data, true, directPrefs.getString("WikiDataEntityId", null)); + controller.handleImagePicked(requestCode, data, true, directPrefs.getString(WIKIDATA_ENTITY_ID_PREF, null)); } else { Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index 934d74353..44807c195 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -63,6 +63,7 @@ import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView; import static android.app.Activity.RESULT_OK; import static android.content.pm.PackageManager.PERMISSION_GRANTED; +import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF; public class NearbyMapFragment extends DaggerFragment { @@ -711,7 +712,7 @@ public class NearbyMapFragment extends DaggerFragment { fabCamera.setOnClickListener(view -> { if (fabCamera.isShown()) { - Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + Timber.d("Camera button tapped. Place: %s", place.toString()); storeSharedPrefs(); directUpload.initiateCameraUpload(); } @@ -719,7 +720,7 @@ public class NearbyMapFragment extends DaggerFragment { fabGallery.setOnClickListener(view -> { if (fabGallery.isShown()) { - Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + Timber.d("Gallery button tapped. Place: %s", place.toString()); storeSharedPrefs(); directUpload.initiateGalleryUpload(); } @@ -731,7 +732,7 @@ public class NearbyMapFragment extends DaggerFragment { editor.putString("Title", place.getName()); editor.putString("Desc", place.getLongDescription()); editor.putString("Category", place.getCategory()); - editor.putString("WikiDataEntityId", place.getWikiDataEntityId()); + editor.putString(WIKIDATA_ENTITY_ID_PREF, place.getWikiDataEntityId()); editor.apply(); } @@ -767,7 +768,7 @@ public class NearbyMapFragment extends DaggerFragment { if (resultCode == RESULT_OK) { Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); - controller.handleImagePicked(requestCode, data, true, directPrefs.getString("WikiDataEntityId", null)); + controller.handleImagePicked(requestCode, data, true, directPrefs.getString(WIKIDATA_ENTITY_ID_PREF, null)); } else { Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index 93075e8fe..285fcf83e 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -10,6 +10,7 @@ import java.util.Map; import fr.free.nrw.commons.R; import fr.free.nrw.commons.location.LatLng; +import timber.log.Timber; public class Place { @@ -58,10 +59,12 @@ public class Place { @Nullable public String getWikiDataEntityId() { if (!hasWikidataLink()) { + Timber.d("Wikidata entity ID is null for place with sitelink %s", siteLinks.toString()); return null; } String wikiDataLink = siteLinks.getWikidataLink().toString(); + Timber.d("Wikidata entity is %s", wikiDataLink); return wikiDataLink.replace("http://www.wikidata.org/entity/", ""); } @@ -94,7 +97,18 @@ public class Place { @Override public String toString() { - return String.format("Place(%s@%s)", name, location); + return "Place{" + + "name='" + name + '\'' + + ", label='" + label + '\'' + + ", longDescription='" + longDescription + '\'' + + ", secondaryImageUrl='" + secondaryImageUrl + '\'' + + ", location='" + location + '\'' + + ", category='" + category + '\'' + + ", image='" + image + '\'' + + ", secondaryImage=" + secondaryImage + + ", distance='" + distance + '\'' + + ", siteLinks='" + siteLinks.toString() + '\'' + + '}'; } /** diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Sitelinks.java b/app/src/main/java/fr/free/nrw/commons/nearby/Sitelinks.java index f4b29df77..8993db344 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Sitelinks.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Sitelinks.java @@ -58,6 +58,15 @@ public class Sitelinks implements Parcelable { return Uri.parse(sanitisedStringUrl); } + @Override + public String toString() { + return "Sitelinks{" + + "wikipediaLink='" + wikipediaLink + '\'' + + ", commonsLink='" + commonsLink + '\'' + + ", wikidataLink='" + wikidataLink + '\'' + + '}'; + } + private Sitelinks(Sitelinks.Builder builder) { this.wikidataLink = builder.wikidataLink; this.wikipediaLink = builder.wikipediaLink; 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..54e116c28 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 @@ -68,6 +68,7 @@ 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; +import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF; /** * Activity for the title/desc screen after image is selected. Also starts processing image @@ -325,6 +326,8 @@ public class ShareActivity if (intent.hasExtra("isDirectUpload")) { Timber.d("This was initiated by a direct upload from Nearby"); isNearbyUpload = true; + wikiDataEntityId = intent.getStringExtra(WIKIDATA_ENTITY_ID_PREF); + Timber.d("Received wikiDataEntityId from contribution controller %s", wikiDataEntityId); } mimeType = intent.getType(); } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 40aae8636..57b19cfe9 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons.upload; +import android.annotation.SuppressLint; import android.accounts.Account; import android.content.ComponentName; import android.content.ContentResolver; @@ -98,6 +99,7 @@ public class UploadController { public void startUpload(String title, Uri mediaUri, String description, String mimeType, String source, String decimalCoords, String wikiDataEntityId, ContributionUploadProgress onComplete) { Contribution contribution; + Timber.d("Wikidata entity ID received from Share activity is %s", wikiDataEntityId); //TODO: Modify this to include coords Account currentAccount = sessionManager.getCurrentAccount(); if(currentAccount == null) { @@ -124,6 +126,7 @@ public class UploadController { * @param contribution the contribution object * @param onComplete the progress tracker */ + @SuppressLint("StaticFieldLeak") public void startUpload(final Contribution contribution, final ContributionUploadProgress onComplete) { //Set creator, desc, and license if (TextUtils.isEmpty(contribution.getCreator())) { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java index 69b958ef1..b08dbe733 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java @@ -259,8 +259,10 @@ public class UploadService extends HandlerService { String resultStatus = uploadResult.getResultStatus(); if (!resultStatus.equals("Success")) { + Timber.d("Contribution upload failed. Wikidata entity won't be edited"); showFailedNotification(contribution); } else { + Timber.d("Contribution upload success. Initiating Wikidata edit for entity id %s", contribution.getWikiDataEntityId()); wikidataEditService.createClaimWithLogging(contribution.getWikiDataEntityId(), filename); contribution.setFilename(uploadResult.getCanonicalFilename()); contribution.setImageUrl(uploadResult.getImageUrl()); diff --git a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataConstants.java b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataConstants.java new file mode 100644 index 000000000..e7e929dac --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataConstants.java @@ -0,0 +1,5 @@ +package fr.free.nrw.commons.wikidata; + +public class WikidataConstants { + public static final String WIKIDATA_ENTITY_ID_PREF = "WikiDataEntityId"; +} diff --git a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java index 8bff40b89..d07bb56f3 100644 --- a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java +++ b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java @@ -48,10 +48,16 @@ public class WikidataEditService { * @param fileName */ public void createClaimWithLogging(String wikidataEntityId, String fileName) { - if(wikidataEntityId == null - || fileName == null) { + if(wikidataEntityId == null) { + Timber.d("Skipping creation of claim as Wikidata entity ID is null"); return; } + + if(fileName == null) { + Timber.d("Skipping creation of claim as fileName entity ID is null"); + return; + } + editWikidataProperty(wikidataEntityId, fileName); } From fa6353b3ef765e87f34384b304514b1ef6b3d2e5 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 5 Jul 2018 13:41:02 +0200 Subject: [PATCH 27/29] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-iw/strings.xml | 1 + app/src/main/res/values-ko/strings.xml | 1 + app/src/main/res/values-mk/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 6 ++++-- app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-su/strings.xml | 22 +++++++++++++++++++--- app/src/main/res/values-zh-rTW/strings.xml | 1 + 10 files changed, 31 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f6fddb820..b0e1c1081 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -284,4 +284,5 @@ Fehler bei der Aktualisierung des dazugehörigen Wikidata-Objekts! Hintergrundbild festlegen Hintergrundbild erfolgreich festgelegt! + Sitzung abgelaufen. Bitte erneut anmelden. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9308e44fb..2bcf3b2f2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -296,4 +296,5 @@ Échec de la mise à jour de l\'entité Wikidata correspondante ! Définir le papier-peint Papier-peint configuré avec succès! + Session expirée, veuillez vous reconnecter. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index bf121244d..2bc9feb8e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -230,4 +230,5 @@ Condividi applicazione Foto del giorno Foto del giorno + Sessione di login scaduta, accedi nuovamente. diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 66c7c1cff..97bbf4f9c 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -288,4 +288,5 @@ לא ניתן היה לעדכן הישות המתאימה בוויקינתונים! הגדרת רקע הרקע הוגדר בהצלחה! + זמן הכניסה לחשבון פקע, נא להיכנס שוב. diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 05f001e24..5ffa48cef 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -286,4 +286,5 @@ 일치하는 위키데이터 엔티티의 업데이트를 실패했습니다! 배경화면 설정 배경화면을 성공적으로 설정했습니다! + 로그인 세션이 만료되었으므로 다시 로그인해 주십시오. diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index c00a6e97e..ce82821e2 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -278,4 +278,5 @@ Не успеав да ја изменам соодветната единица на Википодатоците! Задај позадина Позадината е успешно зададена! + Најавната седница истече. Најавете се повторно. diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 565b941c0..2b4d82bba 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -5,6 +5,7 @@ * Giro720 * Hamilton Abreu * Imperadeiro98 +* Ldacosta * Lijealso * Luckas * Malafaya @@ -30,7 +31,7 @@ Inicio de sessão bem sucedido O início de sessão falhou! Ficheiro não encontrado. Por favor, tente outro ficheiro. - A autenticação falhou, inicie uma nova sessão, por favor + A autenticação falhou, inicie uma nova sessão Iniciado o carregamento! %1$s enviado! Toque para ver seu carregamento @@ -268,7 +269,7 @@ Erro ao tentar obter as notificações Não foram encontradas notificações <u>Traduzir</u> - Línguas + Idiomas Selecione a língua para a qual quer enviar as traduções Avançar Cancelar @@ -289,4 +290,5 @@ Falha ao atualizar a entidade Wikidata correspondente! Definir imagem de fundo Imagem de fundo definida! + A sessão expirou. Inicie uma nova sessão, por favor. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0b499b414..9bb9d7be6 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -296,4 +296,5 @@ Не удалось обновить соответствующую страницу викиданных! Сделать фоновой заставкой Фоновая заставка успешно установлена! + Сессия авторизации истекла, пожалуйста авторизуйтесь заново. diff --git a/app/src/main/res/values-su/strings.xml b/app/src/main/res/values-su/strings.xml index 7d61a97cb..cdb954d38 100644 --- a/app/src/main/res/values-su/strings.xml +++ b/app/src/main/res/values-su/strings.xml @@ -5,18 +5,25 @@ * Uchup19 --> + Pidangan + Umum + Eupan balik + Lokasi Commons + Séting Sandiasma Kecap sandi + Asup log kana akun Commons Beta anjeun Asup log + Poho Kecap Sandi? Daptar Asup log Tungguan… Laksana login! Gagal login! Berkas teu kapanggih. Coba berkas séjén. - Oténtikasi gagal! + Oténtikasi gagal! mangga asup log deui Mitembeyan ngunjal! %1$s diunjal! Toél pikeun némpo unjalan anjeun @@ -25,7 +32,7 @@ Méréskeun unjalan %1$s Ngunjal %1$s gagal Toél pikeun nempo - + ngunjal %1$d berkas ngunjal %1$d berkas @@ -75,6 +82,7 @@ Kategori Séting Daptar + Gambar petingan Ngeunaan Aplikasi Wikimédia Commons mangrupa aplikasi sumber nembrak nu dijieun jeung dikokolakeun ku panampa hibah sarta rélawan komunitas Wikimédia. Wikimedia Foundation teu pépérodeun dina nyieun, ngamekarkeun, atawa mulasara ieu aplikasi. <a href=\"https://github.com/commons-app/apps-android-commons\">Sumber</a> sarta <a href=\"https://commons-app.github.io/\">situ wéb</a> dina GitHub. Jieun anyar <a href=\"https://github.com/commons-app/apps-android-commons/issues\">perkara GitHub</a> pikeun saran jeung laporan kutu. @@ -91,7 +99,7 @@ Ieu gambar bakal ditangtayungan ku lisénsi %1$s Ku ngirimkeun ieu gambar, kuring ngedalkeun yén ieu mangrupa karya kuring sorangan, yén ieu karya teu ngandung matéri atawa hak pribadi nu ditangtayungan ku hak cipta, sarta mun teu nurut kana <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Kawijakan Wikimedia Commons</a>. Undeur - Lisénsi + Lisénsi buhun Paké baé judul/pedaran saméméhna Comot lokasi sacara otomatis Catet lokasi ayeuna pikeun nawarkeun usulan kategori lamun gambar tanpa géotag @@ -125,6 +133,7 @@ - Sélpi atawa poto sobat anjeun\n- Poto anu diundeur ti Internét\n- Poto layar aplikasi Conto unjalan: - Judul: Gedung Opera Sydney\n- Pedaran: Gedung Opera Sydney (Sydney Opera House) ditempo ti basisir peuntas\n- Kategori: Sydney Opera House, Sydney Opera House from the west, Sydney Opera House remote views + Judul: Rumah Opera Sydney Sumbangkeun gambar Anjeun. Bantuan ngahirupkeun artikel Wikipédia! Gambar di Wikipédia asalna ti Wikimedia Commons. Gambar-gambar anjeun ngabantu ngatik jalma di sakuliah dunya. @@ -151,6 +160,7 @@ Judul berkas Déskripsi Pedaran berkas nyangkaruk didieu. Bisa jadi matak ngalikakeun, sarta ngempladkeun kana sawatara baris. Sanajan kitu, muga bisa katémbong écés. + Pangarang Tanggal ngunjal Lisénsi Koordinat @@ -165,6 +175,9 @@ Oténtikasi dua faktor kiwari teu dirojong. Yakin anjeun rék kaluar? Logo Commons + Situs wéb Commons + Kaca Facebook Commons + Kode Sumber Github Commons Gambar Kasang Tukang Gambar Média Gagal Gambar Teu Kapanggih @@ -189,10 +202,13 @@ Eupan balik Kaluar Pituduh + Iber + Petingan Tempat sabudeureun teu bisa ditémbongkeun tanpa idin lokasi teu manggihan pedaran Kaca berkas commons item Wikidata + Artikel Wikipédia Kasalahan nalika muat gambar Judul déskriptif anu unik pikeun berkas, anu bakal miboga fungsi minangka ngaran berkas. Anjeun bisa maké basa basajan kalawan spasi. Ulah ngawuwuhkeun éksténsi berkas Pék émbarkeun wincikan média saloba-lobabana: Dimana éta dicokot? Naon nu titojokeunna? Naon kontéksna? Pék jéntrékeun obyék atawa jalmana. Ébré informasi anu teu gampang kajudi, kawas wayah mun éta mangrupa pamandangan. Ari média nu némbongkeun perkara nu teu guyub, pék jéntrékeun naon nu ngabalukarkeun éta téh teu guyub. diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d2871c3b7..fa40954ce 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -289,4 +289,5 @@ 更新所對應的維基數據項目失敗! 設定桌布 桌布設定成功! + 登入用 session 逾期,請重新登入。 From d7b956e5ac8d4ea3b590a929a8176975afd86422 Mon Sep 17 00:00:00 2001 From: san1j <36819928+san1j@users.noreply.github.com> Date: Sat, 7 Jul 2018 09:05:22 -0400 Subject: [PATCH 28/29] dependency-injection.md: fix some typos (#1681) --- dependency-injection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependency-injection.md b/dependency-injection.md index 5d3599e54..f29d7b603 100644 --- a/dependency-injection.md +++ b/dependency-injection.md @@ -1,6 +1,6 @@ ## Overview -At its core, dependency injection is just the principle of `"tell, dont ask"` put into practice; for instance, if a class needs to use the `MediaWikiApi`, it should be handed an instance of the classs rather than reaching out to get it. This has the effect of decoupling code, making it easier to test and reuse. +At its core, dependency injection is just the principle of `"tell, don't ask"` put into practice; for instance, if a class needs to use the `MediaWikiApi`, it should be handed an instance of the class rather than reaching out to get it. This has the effect of decoupling code, making it easier to test and reuse. ## Dependency Injection in the Commons app From 568f19c2b402039aae23e339b9349baaf1f45900 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 16 Jul 2018 16:49:57 +0200 Subject: [PATCH 29/29] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-el/strings.xml | 1 + app/src/main/res/values-eu/strings.xml | 52 +++++++++++++++++- app/src/main/res/values-fi/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 9 +++- app/src/main/res/values-nb/strings.xml | 61 +++++++++++++++++++--- app/src/main/res/values-pms/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 4 +- app/src/main/res/values-sd/strings.xml | 28 +++++++--- app/src/main/res/values-skr/strings.xml | 8 +-- app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 2 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-ur/strings.xml | 2 +- app/src/main/res/values-zh/strings.xml | 3 +- 15 files changed, 150 insertions(+), 25 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 02ba64754..c1a7f786a 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -288,4 +288,5 @@ Αποτυχία ενημέρωσης της αντιστοιχούσας οντότητας του Wikidata! Ρύθμιση ταπετσαρίας Η ταπετσαρία ρυθμίστηκε επιτυχώς! + Η συνεδρία σύνδεσης έληξε, παρακαλώ συνδεθείτε ξανά. diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 78f6e5a20..c12fcf4df 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -1,5 +1,6 @@ Utseende + Generelt Tilbakemelding + Beliggenhet Commons Innstillinger Brukernavn Passord + Logg inn på Commons Beta-kontoen din Logg inn + Glemt passordet? Registrer deg Logger inn Vennligst vent … @@ -48,8 +52,10 @@ Del Vis i nettleser Tittel + Angi en tittel for denne fila Beskrivelse Innlogging feilet - nettverksproblem + Kunne ikke logge inn – sjekk brukernavnet og passordet ditt For mange misslykkede forsøk. Vennligst prøv igjen om noen få minutter. Beklager, denne brukeren har blitt blokkert på Commons Du må oppgi tofaktorautentiseringskoden din. @@ -61,6 +67,7 @@ Søk kategorier Lagre Oppdater + Liste GPS er slått av på denne enheten. Ønsker du å slå den på? Slå på GPS Ingen opplastinger ennå @@ -82,11 +89,12 @@ Kategorier Innstillinger Registrer deg + Utvalgte bilder Om Wikimedia Commons-appen er åpen kildekode og er skapt og vedlikeholdt av stipendiater og frivillige fra Wikimedia-fellesskapet. Wikimedia Foundation er ikke involvert i utviklingen eller vedlikeholdet av appen. Opprett en ny <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-sak</a> for feilrapporter og forslag. - <a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Personvernpolicy</a> - <a href=\"https://github.com/commons-app/apps-android-comons/blob/master/CREDITS\">Bidragsytere</a> + <u>Personvernpolicy</u> + <u>Bidragsytere</u> Om Send tilbakemelding (via Epost) Ingen epostklient installert @@ -101,7 +109,7 @@ Standardlisens Bruk forrige tittel/beskrivelse Hent automatisk nåværende plassering - Hent nåværende plassering for å tilby kategoriforslag om bildet ikke er geotagget + Hent nåværende plassering om bildet ikke er geotagget, og tagger bildet med plasseringen. Advarsel: Dette vil avsløre hvor du befinner deg for øyeblikket. Nattmodus Bruk mørk drakt Navngivelse-Del på samme vilkår 4.0 @@ -129,15 +137,18 @@ Last opp bilder som er tatt eller skapt av deg: – Naturlige objekter (blomster, dyr, fjell)\n– Nyttige objekter (sykler, jernbanestasjoner)\n– Berømte personer (ordføreren din, OL-deltakere du har møtt) Naturlige objekter (blomster, dyr, fjell) + Nyttige objekter (sykler, togstasjoner) Berømte personer (din ordfører, OL-deltakere du møtte) Vennligst IKKE last opp: - Selfies eller bilder av vennene dine\n- Bilder som du har lastet ned fra internet\n- Skjermbilder tatt fra proprietære apper Selvportrett eller bilder av dine venner Bilder du lastet ned fra Internett + Skjermbilder av proprietære programmer Opplastingseksempel: - Tittel: Sydneys operahus\n- Beskrivelse: Operahuset i Sydney sett fra andre siden av bukten\n- Kategorier: Operahuset i Sydney ifra vest, Operahuset i Sydney utenfra Tittel: Operahuset i Sydney Beskrivelse: Operahuset i Sydney som det sees fra motsatt side av bukten + Kategorier: Sydneys operahus fra vest, Sydneys operahus fra utsiden Bidra med dine bilder. Hjelp til med å blåse liv i Wikipedias artikler! Bilder på Wikipedia kommer fra Wikimedia Commons. Bildene dine kan være til hjelp for mennesker over hele verden som søker kunnskap og dannelse. @@ -150,8 +161,8 @@ Ingen beskrivelse Ukjent lisens Gjenoppfrisk - Nødvendig tillatelse: Lese ekstern lagring. Appen virker ikke uten dette. - Påkrevd tillatelse: Skriv til ekstern lagring. Appen fungerer ikke uten dette. + Nødvendig tillatelse: Lese ekstern lagring. Appen kan ikke få tilgang til galleriet ditt uten dette. + Nødvendig tillatelse: Skriv til ekstern lagring. Appen får ikke tilgang til kameraet ditt uten dette. Valgfri tillatelse: Hent nåværende posisjon for kategoriforslag OK Plasser i nærheten @@ -164,6 +175,8 @@ Medietittel Beskrivelse Beskrivelse av mediet skal være her. Denne kan potensielt være ganske lang, og vil trenge å strekke seg over flere linjer. Vi håper det ser bra nok ut. + Opphavsperson + Brukernavnet til opphavspersonen til utvalgte bilder kommer her. Opplastingsdato Lisens Koordinater @@ -206,10 +219,12 @@ Logg ut Veiviser Varsler + Utvalgt Steder i nærheten kan ikke vises uten tillatelse for stedsbestemmelse ingen beskrivelse funnet Commons-filside Wikidata-element + Wikipedia-artikkel Feil under mellomlagring av bilder En unik beskrivende tittel for fila, som vil fungere som filnavn. Du kan bruke vanlig språk med mellomrom. Ikke ta med filendelsen Beskriv bidraget så mye som mulig: Hvor ble det tatt? Hva viser det? Hva er konteksten? Beskriv objektene eller personene. Gi informasjon som ikke kan gjettes lett, for eksempel når på dagen bildet ble tatt om det er et landskapsbilde. Om bildet viser noe uvanlig, forklar hva som gjør det uvanlig. @@ -222,6 +237,10 @@ Send loggfil Send loggfil til utviklerne via epost Ingen internettleser funnet som kan åpne lenken + Feil! URL ikke funnet + Nominer for sletting + Dette bildet har blitt nominert for sletting. + Vis i nettleseren Stedet har ikke blitt endret. Sted ikke tilgjengelig. Tillatelse kreves for å vise listen over steder i nærheten @@ -232,8 +251,38 @@ Takk for at du har gjort en redigering %1$s nevnte deg på %2$s. Skift visning - Ofte stilte spørsmål + VEIBESKRIVELSE + WIKIDATA + WIKIPEDIA + COMMONS + <u>Vurder oss</u> + <u>Ofte stilte spørsmål</u> + Hopp over innledning Internett er utilgjengelig + Internett tilgjengelig + Feil under henting av varsler + Ingen varsler funnet <u>Oversett</u> + Språk + Velg språket du ønsker å sende inn oversettelser for + Fortsett + Avbryt Prøv igjen + Skjønner! + Det er steder i nærheten av deg som trenger bilder for å illustrere Wikipedia-artiklene sine + Trykk på denne knappen for å få en liste over disse stedene + Du kan laste opp et bilde for alle steder fra galleriet eller kameraet ditt + Ingen bilder funnet! + Feil oppsto under lasting av bilder. + Lastet opp av: %1$s + Del appen + Koordinater ble ikke spesifisert under bildevalget + Feil under henting av steder i nærheten. + Dagens bilde + Dagens bilde + Bildet ble lagt til på %1$s på Wikidata! + Kunne ikke oppdatere tilsvarende Wikidata-element! + Angi som bakgrunnsbilde + Bakgrunnsbildet ble endret! + Innloggingsøkten har utløpt, logg inn på nytt. diff --git a/app/src/main/res/values-pms/strings.xml b/app/src/main/res/values-pms/strings.xml index 32542fe9c..7f9682eed 100644 --- a/app/src/main/res/values-pms/strings.xml +++ b/app/src/main/res/values-pms/strings.xml @@ -278,4 +278,5 @@ Falì a agiorné l\'entità ëd Wikidata corëspondenta! Definì la tapissarìa La tapissarìa a l\'é stàita definìa për da bin! + Session ëscadùa, për piasì ch\'a rintra torna ant ël sistema. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b69aa15c4..8230b9388 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -290,4 +290,5 @@ Falha ao atualizar a entidade Wikidata correspondente! Definir imagem de fundo Imagem de fundo definida! + A sessão expirou. Inicie uma nova sessão, por favor. diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 2b4d82bba..648ae853d 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -31,7 +31,7 @@ Inicio de sessão bem sucedido O início de sessão falhou! Ficheiro não encontrado. Por favor, tente outro ficheiro. - A autenticação falhou, inicie uma nova sessão + A autenticação falhou, inicie uma nova sessão, por favor Iniciado o carregamento! %1$s enviado! Toque para ver seu carregamento @@ -269,7 +269,7 @@ Erro ao tentar obter as notificações Não foram encontradas notificações <u>Traduzir</u> - Idiomas + Línguas Selecione a língua para a qual quer enviar as traduções Avançar Cancelar diff --git a/app/src/main/res/values-sd/strings.xml b/app/src/main/res/values-sd/strings.xml index 62b64658f..65b7d3c12 100644 --- a/app/src/main/res/values-sd/strings.xml +++ b/app/src/main/res/values-sd/strings.xml @@ -16,7 +16,7 @@ ڳجھولفظ وڪي ڪامنز جي آزمائشي کاتي ۾ داخل ٿيو داخل ٿيو - ڳجھو لفظ وساري ويٺا آهيو؟ + پاسورڊ وساري ويٺا آهيو؟ کاتو کوليو داخل ٿيندي براءِ مھرباني انتظار ڪريو… @@ -51,10 +51,10 @@ هن فائيل لاءِ ڪا سُرخي ڏيو تشريح ناقابلِ داخل ٿيڻ - باھمڄار ناڪامي - داخل نه ٿيا آهيو - مهرباني ڪري ڳجهو لفظ ۽ کاتي جو نالو چيڪ ڪيو + داخل نه ٿيا آهيو - مهرباني ڪري پاسورڊ ۽ کاتي جو نالو چيڪ ڪيو ھيڪانديون ناڪام ڪوششون. براءِ مھرباني ڪجھ منٽن کانپوءِ ٻيھر ڪوشش ڪريو. افسوس، ھي واپرائيندڙ العام تي بندشيل آھي - اوهان هر صورت ۾ ٻن عنصرن واري تصديق جو ڪوڊ ڏيو. + اوهان هر صورت ۾ پنهنجو ٻن عنصرن وارو تصديقي ڪوڊ ڏيو. داخل ٿيڻ ناڪام چاڙھيو ھن سيٽ کي نالو ڏيو @@ -64,7 +64,7 @@ سانڍيو تازو ڪيو فهرست - اوهان جي ڊوائيس ۾ جي پي ايس بند آهي. اوهان کولڻ چاهيو ٿا؟ + اوهان جي ڊوائيس ۾ جي پي ايس بند آهي. ڇا اوهان ان کي کولڻ چاهيو ٿا؟ جي پي ايس چالو ڪيو (اين ايبل جي پي ايس) اڃان تائين ڪو به ڄاڙهه (اَپلوڊ) نه ٿيو آهي @@ -133,7 +133,7 @@ مشھور شخصيتون (توھان جو ناظم، اولمپڪ رانديگر جنھن سان توھان مليو) براءِ مھرباني نہ چاڙھيو: u2022 سيلفيون يا پنھنجي دوستن جو تصويرون \nu2022 اھي تصويرون جيڪي توھان انٽرنيٽ تان ڊائونلوڊ ڪيون \nu2022 پروپرائيٽري ايپس جا اسڪرين شاٽ - سيلفي يا اوهان جي دوست جي تصوير + پاڻفي يا اوهان جي دوستن جون تصويرون انٽرنيٽ تان کنيل تصويرون مثال چاڙھ: - عنوان: سڊني اوپيرا گھر \n- تشريح: سڊني اوپيرا گھر نھر جي پاسي کان ڏيک \n- زمرا: سڊني اوپيرا گھر، سڊني اوپيرا گھر اولھ کان، سڊني اوپيرا گھر ڏورانھان ڏيک @@ -150,7 +150,7 @@ ڪا تشريح ناھي اڻڄاتل لائسنس تازو ڪريو - گھربل اجازت: خارجي اسٽوريج پڙھڻ. ايپ ھن کانسواءِ فنڪشن نٿي ڪري سگھي. + گھربل اجازت: خارجي اسٽوريج پڙهو. ايپ ھن کانسواءِ تصوير گيليري نٿو ڏسي سگھي. چونڊ اجازت: زمرن جي تجويزن لاءِ ھاڻوڪي مڪانيت وٺو ٺيڪ ويجھڙائيءَ ۾ جڳھون @@ -161,6 +161,7 @@ عنوان ابلاغ جو عنوان تشريح + ليکڪ چاڙھيل تاريخ لائسنس (اجازت نامو) آزمائشي آزمائيندڙ ٿيو @@ -190,17 +191,20 @@ اوهان جي راءِ ٻاهر نڪرو سکيا (ٽيوٽوريل) + نوٽيفيڪيشنس + چونڊ ڪيل ويجھيو جڳھون بغير مڪانيت اجازت جي نٿيون ڏيکاري سگھجن ڪا به وضاحت نه ملي ڪامن فائيل جو ورق وڪيڊيٽا جزو (وڪيڊيٽا آئيٽم) + وڪيپيڊيا مضمون اجازت ڏيو ٻاھري سنڀار استعمال ڪريو ايپ ۾ ڪئمرا سان ڪڍيل تصويرون پنھنجي ڊوائيس تي سانڍيو پنھنجي کاتي ۾ داخل ٿيو لاگ فائيل موڪليو لاگ فائيل سرجڻھارن کي برقٽپال ذريعي موڪليو - تصوير مٽائڻ لاءِ نامزد ڪئي وئي آهي. + هن تصوير کي ڊاهڻ لاءِ مقرر ڪيو ويو آهي. برائوزر ۾ ڏسو مڪانيت تبديلي ناھي ٿي. مڪانيت موجود ناھي. @@ -208,11 +212,13 @@ ھدايتون وٺو مضمون پڙھو وڪيپيڊيا ڪامنز ۾ ڀليڪار، %1$s! اسان کي خوشي آهي ته اوهان هتي آهيو - %1$s اوهان جي بحث صفحي تي پيغام ڇڏيو آهي. + %1$s اوهان جي بحث واري صفحي تي پيغام ڇڏيو آهي. سنوارڻ لاءِ مهرباني %1$s اوهان جو %2$s تي ذڪر ڪيو آهي. طرف + وڪيڊيٽا وڪيپيڊيا + ڪامنز <u>پذيرائي ڏيو</u> <u>عام سوال</u> سبق کي ڇڏيو @@ -221,9 +227,15 @@ <u>ترجمو</u> ٻوليون رد + ٻيهر ڪوشش ڪريو سمجھي ويس! ڪوبہ عڪس نہ لڌو! + تصويرون لوڊ ڪرڻ دوران چُڪ ٿي آهي. + پاران چاڙهيل: %1$s ايپ ونڊيو اڄ جي تصوير اڄ جي تصوير + وال پيپر لڳايو + وال پيپر ڪاميابيءَ سان لڳي ويو! + لاگ اِن سيشن ايڪسپائير ٿي ويو آهي، مهرباني ڪري وري لاڳ اِن ٿيو. diff --git a/app/src/main/res/values-skr/strings.xml b/app/src/main/res/values-skr/strings.xml index ddb88636a..7d446473a 100644 --- a/app/src/main/res/values-skr/strings.xml +++ b/app/src/main/res/values-skr/strings.xml @@ -46,18 +46,18 @@ ایں سیٹ دا ناں ݙسو تبدیلیاں اپلوڈ - قسماں دی ڳول + ونکیاں دی ڳول بچاؤ سجرا، تازہ کرو فہرست جی پی ایس چلاؤ اڄݨ ککھ وی اپ لوڈ نی تھیا - قسماں، زمرے + ونکیاں ترتیباں سائن اپ تعارف تعارف - حالیہ ورتیاں ڳیاں قسماں + حالیہ ورتیاں ڳیاں ونکیاں ولدا کوشش کرو منسوخ ڈاؤن لوڈ ، لہاوݨ @@ -74,7 +74,7 @@ وکی پیڈیا تے فوٹو وکی میڈیا کامنز کنوں امدن۔ تہاݙے فوٹو پوری دنیا دے لوکاں کوں تعلیم ݙیوݨ کیتے مدد ݙیندن جیا! - قسماں، زمرے + ونکیاں لوڈ تھیدا پئے۔۔۔ کجھ نی چݨیا کوئی تفصیل کائنی diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index b582761bd..b216afffe 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -286,4 +286,5 @@ Misslyckades att uppdatera motsvarande Wikidataentitet! Ange som bakgrundsbild Bakgrundsbilden ändrades! + Inloggningssessionen löptes ut, var god logga in igen. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d04974f5a..15ecf2afe 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -4,6 +4,7 @@ * Emperyan * Hedda * Incelemeelemani +* Joseph * McAang * Neslihan Turan * Rapsar @@ -288,4 +289,5 @@ Karşılık gelen Vikiveri varlığı güncellenemedi! Duvar kağıdı ayarla Duvar kağıdı başarıyla ayarlandı! + Oturumun süresi doldu, lütfen tekrar giriş yapın. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 8bace5fb9..be964d068 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -295,4 +295,5 @@ Не вдалось оновити відповідну сторінку Вікіданих! Поставити шпалерами екрану Шпалери екрану виставлено успішно! + Сесія авторизації спливла. Будь ласка, авторизуйтесь знову. diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index cc4246e94..f422443dc 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -39,7 +39,7 @@ از نگار خانہ تصویر لیں قریبی - میری اپلوڈ + میرے اپلوڈ کردہ شیئر براؤزر میں کھولیں عنوان diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 090ddd1dd..697b7a3e5 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -11,7 +11,7 @@ --> 外观 - 常规 + 一般 反馈 位置 共享资源 @@ -285,4 +285,5 @@ 更新对应维基数据实体失败! 设置墙纸 墙纸已成功设置! + 登录会话已过期,请重新登录。