apps-android-commons
apps-android-commons copied to clipboard
GSoC 2022: Improve the custom picture selector
Students interested in GSoC 2022, welcome! Please read the instructions to apply. The set of enhancements below constitutes the proposed task that the chosen student will implement during GSoC 2022.
The custom picture selector appears when the user taps the +
then taps the third button (at the bottom, a gallery icon with a small Commons icon overlay):
Below is a list of enhancements that would make it more convenient for users:
UI when within a folder
- At the bottom of the picker, show two buttons:
- "Upload" to start the Upload Wizard with the selected pictures (replacing the already implemented ✔️ button currently available at the top-right).
- "Mark as not for upload" to mark these pictures with a 🚫 overlay icon (and grey them out). For instance family pictures, not meant to be uploaded to Commons. This state must be remembered even after restarting the app. Tapping "Not for upload" when all selected pictures are already marked as "Not for upload" has the opposite effect, a bit like pressing "Italic" twice in a text editor makes the selected text in Italic then normal.
- Button to hide/unhide pictures that are either marked as "Not for upload" or have been uploaded already. Hiding them allows the contributor to more easily spot pictures they might want to upload.
- For a good user experience, the screen should try to show the same point in time after changing this setting. For instance in the mockup below, after disabling this setting I should still see the pictures with no lower-right overlay, even if many pictures were removed above them. This may require adjusting the scroll position.
- Currently, when selecting 3 pictures, they are numbered "1", "2", "3". Instead, please make all numbers always show the number of selected pictures, for instance if 3 pictures are selected, they should all have the number "3", and be uploaded in the same order as their thumbnails are shown.
- Add a fast scrollbar (ideally bubble scroll showing the date at which the pictures shown were taken).
UI when in full-screen mode
(fullscreen starts when you long-press any picture in the custom picker)
- Show a small overlay indicating whether the picture is selected or not, showing the number of selected pictures.
- Gestures:
- Left/right swipe to go from one picture to another.
- Swipe up to select the picture (the equivalent of tapping it in non-fullscreen mode) and show the next picture (the picture that follows in the folder view, skipping pictures that have either already been uploaded or ignored).
- Swipe down to immediately mark that picture as "Not for upload" (the equivalent of selecting it then tapping "Mark as not for upload" in non-fullscreen mode), and show the next picture.
Hi I am new to contribution , I am targeting GSOC 2022 and so I would like to work on this issue , IT would be great if you guide me a way to kick start working on this issue
@Rishavgupta12345 Welcome! Sure, here is the guide that should contain everything to get started: https://github.com/commons-app/commons-app-documentation/blob/master/android/Students.md :-)
Hey @nicolas-raoul, what's this about ? can i work on this, right now ?
@nicolas-raoul does this mean there will be only 1 idea in GSoC this year?
@arinmodi Please do not start working on this particular issue right now, as there are high chances that it will be worked on during GSoC.
@mrfeder666 Please refer to https://github.com/commons-app/commons-app-documentation/blob/master/android/Students.md#task-ideas (in short: this is the recommended idea but other ideas are OK too)
@nicolas-raoul, is there any idea list for GSOC 2022 ?
And for android, is this only idea for GSOC 2022 from Wikimedia ?
@arinmodi Please read https://github.com/commons-app/commons-app-documentation/blob/master/android/Students.md#task-ideas thanks! For now yes this is the only Android Wikimedia idea apparently: https://www.mediawiki.org/wiki/Google_Summer_of_Code/2022#Ideas_for_projects
Hey @nicolas-raoul, how can we mark the picture that it is not for upload, is there any standard for this ?
@arinmodi I suggest an overlay icon similar to this: 🚫
@nicolas-raoul, i am not talking about the icon but how can we determine that this image is ok to upload and this image is not ok to upload,
For example, picture contain dog photo should mark with not for upload, like that
@arinmodi It is the app user who decides that. For instance on my phone I have a family picture and a building picture: I would manually mark the family picture as "not for upload".
So, how can the user select the picture as "not for upload", currently tapping on the image select the image for upload.
So, i think we need to add another touch event, which mark the image as not for upload for example, onLongPressing the image, it should mark as the "not for upload"
What do you think ?
@arinmodi To mark a picture (or several) as not for upload, here are the steps: 1) Tap the picture(s) 2) Tap the "Mark as not for upload" button.
okay @nicolas-raoul, now i got the idea,
but this is reserved for the GSOC right ?
@arinmodi Yes, this is reserved for GSoC 2022.
As I read through the description, I came across that we have to store the state of "mark not for upload", so we have to store in local database, right or we have to store it in remote database,
@arinmodi The information must be stored locally. The "uploaded already" information is already being stored locally, the implementation will probably be very similar.
I have one suggestion in this improvement,
Instead of toggle at top, we can create a filters menu, which contains 3 filters, reset and apply button,
Three filters are as follow,
- One filter as @nicolas-raoul said
- Second filter named "blur", which removes blur images from the list
- Third filter named "suggestions", which displays only high quality images,
Is this nice idea ?
@arinmodi Please create your proposal on Phabricator as detailed at https://github.com/commons-app/commons-app-documentation/blob/master/android/Students.md. Then, on your Phabricator proposal page, feel free to propose such extra features and ask for feedback about these extra features. Thanks!
Okay @nicolas-raoul
@nicolas-raoul This is the only project for GSoC 2022 so I can make a completely different project for GSoC?
Yes, this is the only Android Wikimedia project idea for GSoC'22 : GSoC'22 Project Ideas
Go through GSoC Students, it has all the information you need for a different project.
is this project got selected in GSoC 2022?
Hello there , I am interested in contributing in this issue as a GSOC contributor, can anyone suggest starting point ..??
@Aadish01 Follow this Doc : https://github.com/commons-app/commons-app-documentation/blob/master/android/Quick-start-guide-for-Developers.md and you good to go, Thanks
Thank you for the help
is this project got selected in GSoC 2022?
@Rishavgupta12345, I think this project is selected but @nicolas-raoul, can you confirm please ? Thanks
is this project got selected in GSoC 2022?
If you mean selected by us (the Commons Android app team) as the recommended task for this year's GSoC, then the answer is yes.
But if you mean accepted by Google, the answer is that we do not know yet, because accepted projects will be announced on May 20 following the timeline at https://developers.google.com/open-source/gsoc/timeline Two days ago Wikimedia got accepted as an organization: https://summerofcode.withgoogle.com/programs/2022/organizations/wikimedia-foundation Within the Wikimedia organization, our recommended task one of several available tasks: https://www.mediawiki.org/wiki/Google_Summer_of_Code/2022 We have had a GSoC slot every year for the last 5 years already, so I am hopeful that we will get a slot this year too.
Here is the most important document to follow: https://github.com/commons-app/commons-app-documentation/blob/master/android/Students.md
I
am facing a issue with this repo , I have cloned the repo and opened it . I loaded perfectly but gradle build is not working properly , I am attaching the screenshot of above . Please resolve it anyone .
I have tried to change gradle versions and even edited gradle-build file , but nothing good happend .