GSoC update #1 – Planning

GSoC coding period started on Monday, so this is a good time to blog about what I’ve started working on and what’s my milestone to finish the project. First off, I’ve created a simple mockup using Sonny Piers’ amazing Workbench app. This is the first step in knowing how we want the UI to look like, at least in the first iteration.

Media history viewer mockup

Thanks to the mockup, I’ve created a milestone with approximate time estimates for each task. This is what my milestone looks like:

First part – Implement a basic media history viewer (18 days)

  • Add MediaTimeline list model that can load media messages (6 days, in progress)
  • Add a subpage to the RoomDetails dialog for the media history with a GtkGridView that links to the MediaTimeline (2 days)
  • Add MediaHistoryImage widget that can show an image message type (3 days)
  • Add MediaHistoryVideo widget that can show a video message type (3 days)
  • Add MediaHistoryAudio widget that can show an audio message type (1 day)
  • Add MediaHistoryVoice widget that can show a voice message type (1 day)
  • Add MediaHistoryFile widget that can show a file message type (2 days)

Second part – Add click actions to the media history widgets (18 days)

  • Integrate the MediaViewer inside the media history page as a subpage (2 days)
  • Make image and video message types to be opened by the MediaViewer on click (2 days)
  • Make the file of the MediaHistoryFile widget to download on click and show the progress (6 days)
  • Make the file of the MediaHistoryFile widget open on click when it’s downloaded (2 days)
  • Add a dialog to listen to the audio of the MediaHistoryAudio and MediaHistoryVoice widgets on click (6 days)

Third part – Filters & Animations (12 days)

  • Wrap the MediaTimeline list model to a GtkFilterListModel to be able to filter the list (1 days)
  • Add options to filter the media history by media type (4 days)
  • Add animations to the MediaViewer to open and close photos and videos (3 days)
  • Add a swipe back gesture to the MediaViewer, similar to the one found in Telegram (4 days)

Sneak peek: Media viewer animations

Some days ago I started working on a media viewer for my app Telegrand. I wanted a similar feeling of the media viewer on Telegram iOS and Android, which I’ve always found really cool to use. You can see my progress in the tweets below. The animations and the swipe gestures were liked quite a bit, so I’ve decided to add them in Fractal too, so that they can also be used in the media history viewer.


Hello everyone!

I’m Marco Melorio, a 22-year-old Italian computer science student. I’m a GNOME user for about 2 years and I’ve quite literally felt in love with it since then. Last year I started developing Telegrand, a Telegram client built to be well integrated with GNOME, which is a project I’m really proud of and it’s gaining quite a bit of interest. That was the moment where I started being more active in the community and also when I started contributing to various GNOME projects.

Fast-forward to today

I’m excited to announce that I’ve been selected for GSoC’22 to implement a media history viewer in Fractal, the matrix client for GNOME, with the help of my mentor Julian Sparber. More specifically, this is about adding a page to the room info dialog that can display all the media (e.g. images, videos, gifs) sent in the room. This is similar to what it’s found in other messaging apps, like Telegram, WhatsApp, etc.

I will be posting more in the next days with details on the implementation and milestones about the project.

Thanks for reading.