The working prototype

Coding through the second and third weeks of GSoC resulted in a working prototype of the custom selector for Wikimedia Commons. 🎉

The custom selector can now be used to upload any media from the user's device. It accurately shows the upload status fetched from the API.

Image Selection

In the second week, I worked on selecting the images from the custom selector. With the help of helper functions, it is now possible to select multiple images and return them as activity results.

Making the most out of the week, I worked on the API and fetching the uploaded result. After multiple attempts to load data asynchronously without affecting the UI, we settled with Kotlin Coroutines.

What is coroutine you said?

Kotlin Coroutine is a very well-documented library for asynchronous programming. You can perform CPU-intensive tasks or fetch API results off the main thread thus allowing a fluid UI. The added benefit of concurrency and scalability makes it the best suited for Wikimedia Commons.

Showing images differently

Contributions — Custom Selector — Upload Activity — Contributions

The end of the third week was the moment of truth, the custom selector should now show already uploaded images differently, allowing multiple selections at a time.

After identifying and fixing minor bugs, the selector functionalities were working seamlessly. I must say, all those mockups before the coding round really paid off.

What’s Left?

UI enhancements like saving selector state and orientation changes would make it more user-friendly, improving the overall experience.

Next up

Do not forget to check out the current custom selector and give us your valuable feedback.

To be continued …

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store