===Brief summary
The [Commons app](https://play.google.com/store/apps/details?id=fr.free.nrw.commons) is an open source Android app that allows anyone to **upload** pictures to Wikimedia Commons (the image repository used by Wikipedia, Wikinews and other projects).
The goal of this GSoC is to improve upload queue management, and modernize the app:
# Improve upload queue management:
# Process upload tasks as a real queue, where:
# Uploads are performed one by one.
# There is no difference between uploads that have not started yet. Example: Currently some have a non-started progress bar and some have a label “Queued”, which is unfortunate.
# Adding many uploads to the queue does not disproportionately increase the chances of failure.
# Test: In quick succession add 5 multi-uploads of 20 pictures each, on a stable Internet connection. Currently this leads to part of the uploads getting stuck. Ideally all pictures should get uploaded one after the other.
# Make it easier to see whether all uploads are finished or not, for instance by having them at the top or by having an overall progress bar. Thinking about the best possible UI is part of the task so it does not need to be decided now, though ideas are welcome. It might be worth exploring if we could have a separate "Pending uploads" screen that's completely focused on managing the in-progress uploads of an user and providing them with more flexibility to manage them seamlessly.
# Prevent retries for genuinely failed uploads: https://github.com/commons-app/apps-android-commons/issues/5284
# Never show successfully uploaded images as "Failed": https://github.com/commons-app/apps-android-commons/issues/5280
# Enqueue failed uploads, rather than uploading them simultaneously with the ongoing upload: https://github.com/commons-app/apps-android-commons/issues/5283
# Address uploadstash-file-not-found exceptions: https://github.com/commons-app/apps-android-commons/issues/5281
# Modernize the app by replacing Kotlin Android Extensions and Butterknife with ViewBinding: https://github.com/commons-app/apps-android-commons/issues/4664
# (//optional, if time allows or if some of the tasks above are already completed by someone else//) Improve the "Nearby" feature:
# Make Nearby show all pins that could be presented on the screen, rather than a circle: https://github.com/commons-app/apps-android-commons/issues/5480
# Split Nearby into a fast query for coordinates + a details query for each pin: https://github.com/commons-app/apps-android-commons/issues/4560
===Skills required
- Java or Kotlin
- Android development
===Mentors
- @Nicolas_Raoul
- @RitikaPahwa4444
===Microtasks
Please read [gsoc.md](https://github.com/commons-app/commons-app-documentation/blob/master/android/gsoc.md) which guides you on how to choose an issue and perform a microtask.