The Sharing Service

Registered by Danielle Foré

The Sharing Service is a way for "Source" applications to find "Sender" Applications without a developer having to know which particular "Sender" applications are available at any given time.

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Allen Lowe
Definition:
Approved
Series goal:
Accepted for 0.1-jupiter
Implementation:
Implemented
Milestone target:
None
Started by
Allen Lowe
Completed by
Sergey "Shnatsel" Davidoff

Related branches

Sprints

Whiteboard

The Sender:

- Each Sender adds a .desktop file in the folder $XDG_DATADIR/elementary/sharing/$SENDER.desktop .
- The file looks like this:

[Desktop Entry]
Version=1.0
Type=X-Elementary-SharingService
Name=Send File Via E-Mail
Icon=internet-mail
MimeType=application/mbox;
X-DBus-Service=org.elementary.Postler

- The Sender has to implement the DBus method org.elementary.Sharing.ShareFile.

The Source:

Option a)
- A Source willing to share will call org.elementary.Sharing.ShareFileDialog, on org.elementary.Sharing.
- A dialogue shows up, presenting all senders.
- After choosing one, the sender's DBus method is called.
Option b)
- A Source willing to share will call org.elementary.Sharing.GetSenders, on org.elementary.Sharing, which returns an array of Senders.
- The Source renders a popup menu with names.
- On activation of an item, the menu closes and calls org.elementary.Sharing.ShareFileWithSender, on org.elementary.Sharing.

Open questions:
- "Duplicates" should be filtered, not sure how exactly. So that the preferred Sender is used if two exist.
- The sharing service may terminate after a period of inactivity. Potentially this induces a performance overhead when used again.
- Can we have a modal dialogue that is transient to the Source?

Other Considerations:
- The Sharing Service should handle any and all methods of moving data outside of the current application. This includes Printing, Save As, Set as Wallpaper, and any other functions that one would assume to be a part of "the system". That does not necessarily mean that the sharing service requires these functions, but that it should be able to provide them if they are available.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.