Commit graph

2894 commits

Author SHA1 Message Date
u7469570
60764f6f73
#3101: Add image upload limit of 20 to custom selector (#5369)
* Add basic image limit warning to custom selector

* Block upload button when image limit is exceeded

* Complete basic functionality for upload limit: Disabled button, warning sign & toast

* Consolidate functionality between upload limit and not for upload marking

* Upload Limit: write unit tests and optimize control flow

* Upload Limit Tests: improve logic coverage and alter to stay valid if limit is changed

* Upload Limit: polish javadocs and add explanation to warning toast.

* Upload Limit: refactor variable names

* Upload Limit: change warning toast to dialog box, repurposing welcome dialog code & layout

* Upload Limit: remove error icon when the mark as not for upload button is pressed
2023-11-20 18:13:05 +09:00
Paul Hawke
3118a8368b
Removed butterknife from quiz activity (#5383) 2023-11-20 17:48:22 +09:00
Ritika Pahwa
d967279abc
UploadActivity: fix multi-upload bugs (#5389) 2023-11-20 17:46:32 +09:00
Paul Hawke
5e35db159d
Remove butterknife from achievements fragment (#5382)
* Replace butterknife view bindings

* Migrated onClick listeners, and removed Butterknife
2023-11-12 14:39:59 +09:00
Paul Hawke
861d2b9bf6
Removed butterknife from login activity (#5380)
* Removed butterknife view bindings

* Migrated click listeners to view binding

* Migrate onEditorAction to use ViewBinding

* Finally, removed butterknife
2023-11-11 22:54:08 +09:00
Paul Hawke
9620f6eee0
Replaced Butterknife with Viewbinding, and dealt the a whole bunch of code quality warnings (#5379) 2023-11-10 23:03:12 +09:00
Kanahia
187872114c
Fixed Grey empty screen at Upload wizard (#5356)
* Fixed Grey empty screen at Upload wizard caption step after denying files permission

* Empty commit

* Fixed loop issue

* Created docs for earlier commits

* Fixed javadoc

* Fixed spaces
2023-11-02 10:19:47 +09:00
HNYDDDTONY-ANU
6f96e8959b
Fixes #5344 Some categories hidden at top of Upload Wizard suggestions, need to manually scroll up (#5370)
* Fix Issue #5344

* fix update Issue #5344

* Add Comment
2023-11-01 22:25:07 +09:00
Ritika Pahwa
39a2fbe3d5
ensure that cancelled uploads are really getting cancelled (#5367) 2023-10-29 23:21:16 +09:00
Priyank Shankar
2ddb6b2e5e
[WIP]Lossless Transformations(Rotate feature) (#5252)
* UI setup for the crop feature almost setup

* basic setup of rotate feature done

* Added basic changes for editing feature

* Getting data back from edit activity

* Getting data back from edit activity

* Updated contentUri

* Finally the rotated image is getting uploaded

* Minor Improvements for better testing

* Fixed thumbnail preview

* Fixed loss of exif data

* Copy exif data

* Save exif data

* Added java docs

* Minor fix

* Added Javadoc

* Refactoring

* Formatting fixes

* Minor Formatting Fix

* Fix unit test

* Add test coverage

* Formatting fixes

* Formatting Fixes

---------

Co-authored-by: Priyank Shankar <priyankshankar@changejar.in>
2023-10-24 13:04:21 +09:00
Shin0017
6c14163c66
checks items length (#5360)
* checks items length

* Update UploadMediaPresenter.java

* Update UploadMediaPresenter.java

* Update UploadMediaPresenter.java
2023-10-23 11:09:45 +09:00
Nicolas Raoul
1490710a51 Merge branch 'v4.2.0-release' 2023-10-20 13:51:30 +09:00
Tai Ha
988b83dc32
Fix #5212: removing bug causing progress dialog to load forever (#5350)
* Fixes bug causing the progress dialog to load forever (#5212)

* Fixes bug causing the progress dialog to load forever (#5212)

* remove unnecessary new line (#5212)
2023-10-19 16:20:28 +09:00
Alvin Tang
f7164d0b78
Fix #5246: map icon in Upload Wizard indicating if location is included in the EXIF data (#5343)
* Add XML map icons with a tick/question mark for the Upload Wizard
The existing map icon may not be intuitive enough to indicate
whether the location EXIF data will be included
The two new XML map icons are intended to indicate the status of
location sharing with the location data in the Upload Wizard

* Label the map icon in the Upload Wizard if location is included
If an image is capture with the in-app camera, the location in the
image metadata by default
If so, the map icon in the Upload Wizard should be labelled with
a green tick during initialisation of its UploadMediaDetailFragment instance

* Update the map icon in Upload Wizard if location is pin-pointed
If the user selects images from the device storage
to upload, the location EXIF data might originally not be included
The map icon is labelled with a red question mark
After pin-pointing the location manully, the map icon should be
labelled with a green tick instead

* Fix Upload Wizard map icon XML rendering failure
SVG path is invalid, resulting in failure to render the icons
Also imports are required for UploadMediaDetailFragment to
use Drawable objects and R objects

* Add hasLocation() to UploadableFile to indicate existence of EXIF
When an image is chosen from the album to the Upload Wizard,
its EXIF might contain location data. hasLocation() and fix of init()
in UploadMediaDetailFragment ensures that the map icon is shown
correctly

* Fix init() NullPointerException in UploadMediaDetailFragment

* Fix comment typo in UploadMediaDetailFragment
Fix the comment about red and green labels for the map icon

* Use SLF4J logging for try-catch clauses in UploadableFile class
Instead of using printStackTrace(), error directed to logcat

* Use Timber for logging in UploadableFile
Clean up the catch clause in hasLocation() and getDataTimeFromExif()
2023-10-18 22:42:01 +09:00
Srishti Rohatgi
64652b987d
fixes blank screen decrepancy when sharing items from external apps (#5345)
* fixes blank screen decrepancy when sharing items from external apps

* reverts comment removal
2023-10-18 12:16:33 +09:00
JiaYuan Huang
f13085147f
5338 bug fix (#5340)
* fix Bug index out bound

* fix Bug index out bound

* fix Bug index out bound

* fix Bug index out bound

* add some comments for that

* add some comments for that

* add some comments for that

* add some comments for that
2023-10-17 14:50:24 +09:00
Srishti Rohatgi
a708c811d6
fixes image retention when no network is available (#5335) 2023-10-10 23:00:17 +09:00
Srishti Rohatgi
b18bc8ff4b
fixes popup message title and description on cancelling uploading image (#5334) 2023-10-10 22:21:15 +09:00
Srishti Rohatgi
0d90ac3c53
Tick icon in place of number of images selected in custom picker (#5331)
* tick in place of number of images selected in custom picker

* fixes tests, dark mode visibility, bold tick icon for better visibility
2023-10-09 23:08:00 +09:00
Srishti Rohatgi
733c8709fc
Makes depicted place and category items unselectable for nearby place (#5325)
* Makes depicted place and category items unselectable for nearby place

* UploadCategoriesFragmentUnitTests.kt fixes and javadoc addition

* comment fix

* Fixes tests and hidden category appearing and dissapearing issue
2023-10-08 18:26:27 +09:00
Dean Stirrat
05fbfce865
check for exact category match on upload search (#5328) 2023-10-07 22:30:27 +09:00
Srishti Rohatgi
048b78a03a
Fixes location issue in upload wizard (#5329)
* Fixes location issue in upload wizard

* Fixes blue dot disappearance on first install
2023-10-07 22:07:08 +09:00
Srishti Rohatgi
8aee7a680d
Fixes copy to subsequent media functionality for nearby uploaded images (#5326) 2023-10-07 07:10:28 +09:00
Kaartic Sivaraam
62661604ff Merge commit 'refs/pull/5220/head' of github.com:commons-app/apps-android-commons into new-tools 2023-10-04 06:54:48 +05:30
Aryan Arora
373c6201bd
Show progress dialog on mark/unmark photos not for upload (#5322) 2023-10-03 23:17:29 +09:00
Srishti Rohatgi
f7e6d30499
fixes copy option not appearing for multi asset upload (#5320) 2023-10-01 19:08:36 +09:00
Ayan Sarkar
fec27ed914
Fixes 4745 : Add bookmarked items to suggested depictions (#4746)
* Dialog can't be dismissed

* Dialog can't be dismissed

* Appended bookmarked items in searching

* Test fixed

* Resolve conflicts

* Resolve conflicts
2023-09-29 15:55:26 +09:00
Srishti Rohatgi
9525409b9b
fixes issues related to location permission denial even when allowed inside in-app camera flow (#5313)
* fixes issues related to location permission denial even when allowed inside in-app camera flow

* fixes related to in app camera location permissions
2023-09-28 23:07:28 +09:00
Srishti Rohatgi
a2ad0394ce
fixes crash in sign up activity in api 21 and 22 (#5311)
* fixes crash in sign up activity

* javadoc comments added
2023-09-26 16:14:41 +09:00
Zeeshan Alam
19733b3e69
bug fix 5240 (#5292)
* bug fix 5240

Signed-off-by: Zeeshan Alam <zeeshan.alam@fmr.com>

* Incorporated review comments. Remove method MediaDetailPagerFragment.newInstance(false, false, 0) which was called only in unit test

* Added Required empty public constructor

---------

Signed-off-by: Zeeshan Alam <zeeshan.alam@fmr.com>
2023-09-25 21:42:40 +05:30
Ritika Pahwa
2282ce3d02
5195: Fix upload wizard crash on tapping target icon (#5306)
* LocationPickerActivity: fix crash on setting location for pictures with no EXIF location

* strings.xml: remove extra string introduced

* optimise constants

* LocationPickerActivity: request for permission only on tapping target icon

* remove newline

* handle location permissions using LocationPermissionsHelper

* add null check to prevent crash
2023-09-25 17:00:46 +09:00
Srishti Rohatgi
2fc8527330
Fixes in-app camera behaviour (#5302) 2023-09-25 09:52:42 +09:00
Ritika Pahwa
4caa8a509b
5195: Fix crash on setting location for pictures with no EXIF location (#5205)
* LocationPickerActivity: fix crash on setting location for pictures with no EXIF location

* strings.xml: remove extra string introduced

* optimise constants

* LocationPickerActivity: request for permission only on tapping target icon

* remove newline

* handle location permissions using LocationPermissionsHelper
2023-09-24 09:31:57 +09:00
Srishti Rohatgi
6881158743
Android 13 permission related fixes (#5299)
* Android 13 permission related fixes

* removes audio and video as permissions
2023-09-22 09:39:28 +09:00
Ritika Pahwa
81030d1e78
5136: Fix retried uploads stuck in queued state (#5272)
* fix stuck uploads

* automate retries for failed uploads once the user returns to the app

* UploadWorker: modify PendingIntent flag and Android version code

* MainActivity: remove automatic retry logic

* Revert "MainActivity: remove automatic retry logic"

* set work request as expedited

* handle notification for foreground service on older versions of Android

* set backoff criteria for work requests

* enqueue failed uploads for a retry

* revert "enqueue failed uploads for a retry"

* limit the number of retries for a failed upload

* add a popup that suggests users to switch to unrestricted battery usage mode

* take users to the battery settings page on the first big upload

* take users to battery optimisation settings page using the standard intent

* add instructions to the battery optimisation settings popup

* remove the first usage of fr.free.nrw.commons from the popup

* comply with the wording in the OS settings

* modify battery optimisation popup instructions, add comments and rename firstBigUploadSet

* add filename to the retry log statement

* update database version

* make battery optimisation dialog appear only on Android 6 and above

* use foreground service instead of setting work request as expedited

* fix retried uploads stuck in queued state

* use MIN_BACKOFF_MILLIS constant instead of using the number 10 and add comments

* factorise the creation of the new OneTimeWorkRequest at one place

* ensure work requests are in accordance with the unit tests

* forbid retries for images which have got uploaded without caption

* add a TODO for the suggestion related to retries

* revert "forbid retries for images which have got uploaded without caption"
2023-09-09 22:46:13 +05:30
Kaartic Sivaraam
4540f54d59
Fix document picker trigger bug (#5275)
* Revert "Revert a1b6973 until we find out why it uses OPEN_DOCUMENT by default on fresh install"

This reverts commit 7ce3b7ebb1.

* Potential fix for get_content picker being used in first run

The initial state of the 'openDocumentPhotoPickerPref' seems to be incorrect
during a fresh install on some devices.

Try to ensure we always use the proper initial state by propagating the default
to the preference access code.

This hopefully fixes #5274
2023-09-04 11:18:58 +09:00
Nicolas Raoul
7ce3b7ebb1 Revert a1b6973 until we find out why it uses OPEN_DOCUMENT by default on fresh install 2023-09-03 23:28:02 +09:00
Ritika Pahwa
5073ca08c3
5196: Fix in-app camera location loss (#5249)
Merging as this is a great improvement, additional issues/bugs can be filed as GitHub issues.

* fix in-app camera location loss

* fix failing unit tests

* UploadMediaDetailFragmentUnitTest: modify testOnActivityResultAddLocationDialog to have null location

* reintroduce removed variable

* enable prePopulateCategoriesAndDepictionsBy for current user location

* add relevant comment and fix failing test

* modify dialog and disable location tag redaction from EXIF

* modify in-app camera dialog flow and change location to inAppPictureLocation

* change location to inAppPictureLocation

* fix location flow

* preferences.xml: remove redundant default value

* inform users about location loss happening for first upload

* FileProcessor.kt: remove commented-out code

* prevent user location from getting attached to images with no EXIF location in normal and custom selector

* handle onPermissionDenied for location permission

* remove last location when the user turns the GPS off

* disable photo picker and in app camera preferences in settings for logged-out users

* remove debug statements and add toast inside runnables
2023-09-01 15:45:50 +09:00
Matija Nalis
d2cd6df3ca
use correct geo: URI format (#5268)
(like OsmAnd, StreetComplete etc do), which works with all apps, and not only some.
2023-08-11 07:44:06 +09:00
Kaartic Sivaraam
a1b6973614
Toggle photo picker switch behaviour and tweak phrases (#5250)
* photo picker: toggle behaviour of switch and adjust phrasing for better UX

The enable state used to trigger the GET_CONTENT intent. Alter the flow
such that the GET_CONTENT intent is triggered when switch is disabled.
Adjust default value and other parts of code naming to reflect this.

The existing phrasing had a lot of tech jargon in it which could
result in the non-technical users being confused. Tweak the phrasing
to avoid such phrases.

The documentation in the website could also use some follow up
improvements.

* Adjust strings to clearly convey that location loss is a "risk"
2023-07-25 17:48:53 +09:00
paco-arana
3f529e674f
Removed comma separator (#5261)
* Removed comma separator from file descriptions

* Removed a redundant line that deleted the last comma of the descriptions

* Added a line to formatDescriptions that replaces every instance of "}}, " with "}}" to remove the comma between descriptions.

* Specified separator as an empty string instead of default value ", " for .joinToString method. Deleted previous fix using .replace method.

* Restored buffer.replace() in updateDescription
2023-07-20 23:14:21 +09:00
Alfusainey Jallow
368e1c753d
Fix resource leak bug (#5251)
Signed-off-by: Alfusainey Jallow <alf.jallow@gmail.com>
2023-07-06 00:20:46 +05:30
Siva Subramaniam
c4d4cbeae2 Merge branch 'master' of https://github.com/siva-subramaniam-v/apps-android-commons into gradle-version-upgrade 2023-06-26 12:15:38 +05:30
Kaartic Sivaraam
f4e8de79fb
nearby: make sure places is initialized (#5241)
On taking a look at the following stack trace:

  java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
  at fr.free.nrw.commons.nearby.fragments.NearbyParentFragment.updatePlaceList(NearbyParentFragment.java:777)
  at fr.free.nrw.commons.nearby.fragments.NearbyParentFragment.lambda$initFilterChips$10$NearbyParentFragment(NearbyParentFragment.java:730)
  at fr.free.nrw.commons.nearby.fragments.-$$Lambda$NearbyParentFragment$AGol6SoJlvIYd45Vbz6tTjDiWU4.onCheckedChanged(Unknown Source:2)
  at android.widget.CompoundButton.setChecked(CompoundButton.java:235)
  at com.google.android.material.chip.Chip.setChecked(Chip.java:665)
  at android.widget.CompoundButton.toggle(CompoundButton.java:150)
  ...

... it seems clear the 'places' list is trying to be iterated
in the updatePlaceList method when it is empty. This is resulting
in an NPE and consequently an app crash.

Avoid the same by ensuring it is always initialized to an empty list.
2023-06-19 20:23:20 +09:00
Ritika Pahwa
9a0f35c681
5196: Fix location stripped from EXIF metadata (#5227)
* MainActivity: add ACCESS_MEDIA_LOCATION permission check to retain location info in EXIF metadata

* remove redundant permission check and optimise imports

* FilePicker: switch to ACTION_OPEN_DOCUMENT intent for opening image files

* add a comment explaining the change

* implement GET_CONTENT photo picker toggle switch

* add location loss warning pop up

* SettingsFragment: modify the comment about GET_CONTENT takeover for more clarity
2023-06-15 10:05:55 +09:00
tpettwa1
3f664d62f8
Added changes to readme.md + comments. (#5230)
* Update README.md

* Update LatLng.java

* Update LoginActivity.java

* Updated LoginActivity.java to feature javadoc syntax
2023-06-07 10:31:53 +09:00
Siva Subramaniam
368701ec59 fixes #5208: gradle build fails with android studio flamingo update 2023-05-03 11:12:28 +05:30
Ritika Pahwa
a116a17e7b
5204: Fix unit test UploadMediaPresenterTest.handleImageResult (#5206)
* UploadMediaPresenterTest: fix failing unit tests

* change else if to if condition to handle all cases

* include errorCodes 68 for duplicate image and 96 for image without exif

* optimise if statements

* remove redundant cases

* modify if statements to cover all cases

* simplify all if statements

* add removed comment again

* remove unused imports
2023-04-18 15:01:20 +09:00
Ritika Pahwa
68ddcf0bc6
ReviewImageFragment: fix disappearing author name on changing orientation (#5209) 2023-04-16 23:21:11 +05:30
José Arias Canto
013809f46a
Fixes #5187: Fix App crashes when you click on Author Name (#5199)
* Add conditional on function onAuthorViewClicked for when there's not logged-in user

* Change media.getAuthor() for media.getUser()

* Change hardcoded URL for one given by the BuildConfig object
2023-04-13 19:59:50 +09:00