kdeconnect-kde/plugins/notifications
Adam Pigg 9a8f1b48a0 Build kdeconnect on sailfish and port some simple plugins
Summary:
Below is a lost of the commits, but, in summary
Port the build system for Sailfish, which means selectively building only the bits we need/can, and only against the KF5 libs that are available.
Allow to build on Qt 5.6
Switch from knotification to nemo notification (not complete!)
Add a very simple example sailfish app.

Note, there is still much missing functionality.  Notifications dont work, pairing sort of works but not really, but when it is paired you can send a ping to the desktop client

Dont build kio for Sailfish

Port core build system

Port daemon buld system

Require CoreAddons on Sailfish

Port plugins build for sailfish and include the ping plugin for now

Final build changes for sailfish.

Disable tests and other not needed parts

Add includes for QCA

Fix build errors on sailfish

Get core/ to build on sailfish

Get interfaces/ to build on sailfish

Build daemon on sailfish

On sailfish, dont install the kcm file

Start port plugin to sailfish

Fixup installed files

Add sfos app

Hack declarative plugin to give a public interface

Build sfos app

Compile declarativeplugin into the sfos app for now

Redefine qAsConst for qt 5.6

Packaging fixes

Use official icon

Package .desktop

Reviewers: #kde_connect, apol, nicolasfella, albertvaka

Reviewed By: #kde_connect, apol, nicolasfella, albertvaka

Subscribers: kdeconnect, andyholmes, albertvaka, kossebau, mtijink, vonreth, apol, #kde_connect, nicolasfella

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D10703
2018-08-02 20:10:59 +01:00
..
CMakeLists.txt Clean-up requirements: cmake 3.0, qt 5.7, use min versions, deduplicate KF5 2018-03-17 23:34:33 +01:00
kdeconnect_notifications.json SVN_SILENT made messages (.desktop file) - always resolve ours 2018-06-21 05:33:36 +02:00
notification.cpp Do not start a second transfer if one is in progress 2018-03-24 21:28:43 +01:00
notification.h Do not start a second transfer if one is in progress 2018-03-24 21:28:43 +01:00
notification_debug.h Fix various krazy2 warnings 2015-08-21 22:38:54 +06:00
notificationsdbusinterface.cpp Build kdeconnect on sailfish and port some simple plugins 2018-08-02 20:10:59 +01:00
notificationsdbusinterface.h Fix addNotification being called twice 2018-03-24 21:28:43 +01:00
notificationsplugin.cpp Rename NetworkPackage -> NetworkPacket 2018-03-05 20:03:23 +01:00
notificationsplugin.h Add a method for creating simple notifications 2018-03-18 12:52:22 +01:00
README Improve notificationsplugin README 2018-06-30 23:05:38 +02:00
sendreplydialog.cpp Merge branch 'master' into 1.x 2017-09-03 22:05:54 +02:00
sendreplydialog.h Merge branch 'master' into 1.x 2017-09-03 22:05:54 +02:00
sendreplydialog.ui Improvements on the SendReplyDialog 2017-08-03 17:26:29 +02:00

This plugin listens to packages with type "kdeconnect.notification" that will
contain all the information of the other device notifications.

The other device will report us every notification that is created or dismissed,
so we can keep in sync a local list of notifications.

At the beginning we can request the already existing notifications by sending a
package with the boolean "request" set to true.

The received packages will contain the following fields:

"id" (string): A unique notification id.
"appName" (string): The app that generated the notification
"ticker" (string): The title or headline of the notification, for compatibility with older Android versions.
"isClearable" (boolean): True if we can request to dismiss the notification.
"isCancel" (boolean): True if the notification was dismissed in the peer device.
"requestAnswer" (boolean): True if this is an answer to a "request" package.
"title" (string): The title of the notification.
"text" (string): The text/content of the notification.
"requestReplyId" (string): Used to reply to messages.
"silent" (bool): Handle this notification silent, i.e. don't show a notification, but show it in the plasmoid.

Additionally the package can contain a payload with the icon of the notification
in PNG format. If there another field will be present:

"payloadHash" (string): MD5 hash of the payload. Used as a filename to store the payload.

The content of these fields is used to display the notifications to the user.
Note that if we receive a second notification with the same "id", the existing notification is updated.

If the user dismisses a notification from this device, we have to request the
other device to remove it. This is done by sending a package with the fields
"id" set to the id of the notification we want to dismiss and a boolean "cancel"
set to true. The other device will answer with a notification package with
"isCancel" set to true when it is dismissed.