elementary / notifications

Gtk Notifications Server
https://elementary.io
GNU General Public License v3.0
38 stars 6 forks source link

Progress Notifications API #221

Open colinkiama opened 2 years ago

colinkiama commented 2 years ago

Problem

SysTray apps were phased out but one experience that wasn't taken into account were file syncing services. There isn't a solution for this displaying sync progress data with as much detail as these apps did.

Proposal

My solution to this would be progress notification APIs. These would build upon the ability to replace a notification through referencing its ID and push the idea further with the addition of progress data.

So what ends up happening is that as progress gets updated, the same notification will be swapped with a new one with up to date progress data over time.

Unlike progress indicators in the dock, it will be possible for there to be multiple notifications to have progress data from the same app.

Prior Art (Optional)

https://docs.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/toast-progress-bar

image

danirabbit commented 9 months ago

The file sync case is already covered by the CloudProviders API: https://world.pages.gitlab.gnome.org/libcloudproviders/index.html

something we don’t currently support is the background portal which has a string arg for reason https://docs.flatpak.org/en/latest/portal-api-reference.html#gdbus-org.freedesktop.portal.Background

It might make sense to extend the background portal to take a double for progress and use that to replace the unity progress API

danirabbit commented 9 months ago

On the more complicated end of the spectrum iOS has ActivityKit: https://developer.apple.com/videos/play/wwdc2023/10184