During this last month, I've been working to improve the code I've already written and to cover the last details for this feature in order to work like previewed in the mockups.
Here's the branch of my final submission.
This is a summary of all the work I've done so far in my GSoC project.
display one forecast in weather;
- I've updated the calendar widgets ordering, and also the weather section according to the mock-up.
move notification UI to its subclasses (I mentioned why in this post);
- The base class of a notification shouldn't be responsible for its UI anymore, because the subclasses don't share any similarities, and if any new type of notification needs to be created, its style can be fully implemented. This makes maintenance easier.
update notification icons handling;
- A regular notification will always display the icon of its source on the top left corner, and for that, we need the app icon from its desktop entry.
- A new class to represent the group that will also handle its notifications. In this post, I detailed this implementation.
- Layout manager created to handle the collapsed/expanded states of a source group. In this post, I detailed this implementation.
remove max notifications limit;
- In the current version of the Shell, there is a limit in the code, that prevents a notification source to have more than 3 notifications in the queue. Now that we have the groups per app with the stacked logic, there's no need to keep this limit anymore.
add group expanding animations;
- In my last post, I've shown you the code I've written at that point, the groups were working, but without any kind of animation. To create a smoother opening and close transition effects.
update message footer through loop;
- As more and more notifications get received and stacked into a source group, the most recent one needs to display a counter, if the group is collapsed.
Inspecting the code I've also found some unused code, and opened a merge request to remove it: !1346 - messageTray: Remove
To be completed
To merge this branch into Shell's code, there's some work left to do. Below is what I plan to continue working on:
- Add actions in the notification messages:
- Blur the messages around the expanded group;
- Collapse the expanded group if the user clicks outside the popup or the stack area;
- Add the option to customize the planner column;
Minimal adjusts in the UI:
- Update the design of the header button for the expanded group;
- Improve the avatar/cover handling of a notification message;
The ending of a journey
I want to thank the GNOME team for accept and support me on this amazing journey.
I also want to thank my mentor, Florian, for his patience and for his help along with this project that certainly doesn't end here.
Thanks for reading!