Commit graph

68 commits

Author SHA1 Message Date
Nicolas Fella
2e99c37122 [plugins/telephony] Clear actions before creating new notification action
Otherwise we accumulate them

BUG: 479904
2024-01-22 13:52:18 +00:00
Nicolas Fella
0343c9401d Port to new KNotifications action API 2023-11-04 13:40:22 +01:00
Alexander Lohnau
69d6c17214 plugins: Use QLatin1String::arg for faster and simpler string concatination
Using an infix with .arg() is simpler than having two string literals
2023-08-28 17:20:46 +00:00
Alexander Lohnau
c5e7fdb5e4 plugins: Prefer using statements with baseclass over empty constructor
Those plugins re really simple and don't need any initialization logic.
With the using statement, we do not need to add a constructor and pass the parent/args to the baseclass
2023-08-07 19:28:37 +02:00
Alexander Lohnau
1631ada5b3 Simplify KDEConnectPlugin::recievePacket
- We do not need the return type. If a plugin declares it can handle the
  packet it should do so. We don't have any fallback logic in place and
  the packet types are namespaced with the plugin IDs anyway.

- Provide a default implementation with a warning, not all plugins need
  to overwrite this
2023-08-03 20:49:44 +02:00
Alexander Lohnau
2e67f95017 Add explicit moc includes to cpp files
The rationale is explained in https://planet.kde.org/friedrich-kossebau-2023-06-28-include-also-moc-files-of-headers/

In case of KDEConnect, it impressively speeds up compilation. Before it
took 390 seconds on a clean build and with this change it took 330 seconds.
This is due to the mocs_compilation having to include the header files
and thus all their headers. Due to the lots of small plugins we have,
this means that the same headers must be compiled plenty of times.
When we include the moc files directly in the C++ file, they are already
available.
2023-07-30 07:27:45 +00:00
Nicolas Fella
a918ffc0cb Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00
Nicolas Fella
bbce00e005 Remove parent from KNotification ctor
It doesn't do anything useful and is discouraged
2020-11-02 19:01:39 +01:00
Nicolas Fella
87db95b22f Convert license headers to SPDX expressions 2020-08-17 09:48:10 +00:00
Antonio Larrosa
1d36164230 Use ecm_qt_declare_logging_category to declare the logging categories
This automatizes the generation of logging categories so a
kdeconnect-kde.categories is generated and installed to
/usr/share/qlogging-categories5/ so kdebugsettings can use it.

Also, sets the default logging level to Warning. So now the logs
of users won't be filled with debug messages but they can
modify the configuration easily with kdebugsettings.
2020-05-26 18:55:47 +02:00
Kai Uwe Broulik
310b0517ed Check for null notification
When starting a phone call on the phone, we enter "talking" state without having created a notification first leading to a crash.
2020-03-31 15:18:29 +02:00
Nicolas Fella
2725de9170 Improve call notification handling
Simplify the code, close the notification when talking.
2020-03-21 22:18:34 +01:00
Abdel-Rahman Abdel-Rahman
0240c43bb5 Make incoming call notification persistent
Accomplishes task T11851
2020-03-15 23:34:52 +02:00
Nicolas Fella
b44c97bb79 Use default destructor 2019-06-13 15:24:13 +02:00
Nicolas Fella
5c16bfda5d Use K_PLUGIN_CLASS_WITH_JSON 2019-06-12 22:16:54 +02:00
Nicolas Fella
e601755644 Force usage of QStringLiteral and port remaining offenders 2019-06-10 14:40:28 +00:00
Nicolas Fella
3b8fedea1a Replace http GNU urls with https 2019-03-23 17:29:26 +01:00
Nicolas Fella
a4509d9640 Emit DBus signal when receiving a call 2019-02-17 02:41:42 +01:00
Albert Vaca
73129abbf5 Unused var 2018-11-06 23:28:03 +01:00
Simon Redman
563dde9891 Correct braces and add contributors
Summary: Braces to start a method are on a newline, braces to begin an in-method block are on the same line

Test Plan: Pure source code cosmetic changes. Hopefully no functionality has changed!

Reviewers: #kde_connect, nicolasfella

Reviewed By: #kde_connect, nicolasfella

Subscribers: apol, nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D15978
2018-10-06 21:59:15 -06:00
Simon Redman
64062b3cc9 [Desktop] SMS plugin no longer creates desktop notifications -- Old functionality still supported by notifications plugin
Summary:
Drop support for creating notifications from the SMS plugin. The old usecase is better handled by the notifications plugin reply box anyway

Rename packets defined in SMS plugin from PACKET_TYPE_TELEPHONY_* to PACKET_TYPE_SMS_*

Update TELEPHONY plugin packet description to point to SMS plugin

Define TELEPHONY_REQUEST_MUTE packet to replace old TELEPHONY_REQUEST with mute event field

Please see Android-side patch here: D15544

Test Plan:
I see four test cases, based on the version of the app being used, where "old" means any version built with sources not containing this revision and "new" means any version built with sources using this revision:
 - New Android vs. New Desktop
   - Supported and works for me
 - New Android vs. Old Desktop
   - Supported and works for me
 - Old Android vs. New Desktop
   - Not supported - Download a new app from the Play store or F-Droid
 - Old Android vs. Old Desktop
   - If this is broken, it is not my fault :)

In the supported use cases:
 - Test SMS reply
   - Receive SMS (or MMS!) message
   - Verify that the //notification// plugin forwards a replyable notification and that replying works
 - Test incoming call ringer mute
   - Enable ringer volume (not vibrate)
   - Receive phone call
   - Verify a desktop notification with a Mute button appears
   - Verify that clicking the mute button causes the phone to stop making the ringer noise (vibration not affected)

Reviewers: #kde_connect, albertvaka, nicolasfella

Reviewed By: #kde_connect, albertvaka, nicolasfella

Subscribers: nicolasfella, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D15543
2018-09-16 16:06:53 -06:00
Simon Redman
bcc9fb06db Split SMS and Telephony plugin on desktop
Summary:
Telephony and SMS handling are quite distinct so they should be in separate plugins for better maintainability, given that @sredman has big plans with SMS.
This diff should be fully backwards compatible, but whether we really want to do that is up to discussion

Test Plan: Only supeficially tested. Receive an SMS (old way), Notification is shown

Reviewers: #kde_connect, sredman

Reviewed By: sredman

Subscribers: albertvaka, apol, sredman, kdeconnect, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D13594
2018-09-10 11:31:05 +02:00
Aleix Pol
31e93ef7bf (WIP) Upgrade Telephony plugin to read SMS history (KDE side)
Summary:
For real usecases of SMS support, we will almost always need access to the message history in some way

Specifically resolve T8338

Incidentally resolve T6651 since Telephony shall no longer create a notification

Test Plan:
Setup:
- Build corresponding Android-side diff (D11698)
- Build this diff

Step 1: Does anything at all work?
- Put a breakpoint in the handleBatchMessages method of the telephony plugin, ideally after constructing a Message object
- Use DBus to poke /modules/kdeconnect/devices/<deviceID>/telephony.requestAllConversations()
- Verify that the constructed Message is one you sent or received and that it is the most recent in the corresponding conversation

Step 2: DBus
- Open the Interface org.kde.kdeconnect.device.conversations of /modules/kdeconnect/devices/<deviceId>
- Poke activeConversations and verify an empty array is returned
- Poke requestAllConversationThreads
- Poke activeConversations and verify that a list of numbers has been returned. These are conversationIds
- Use a conversationId to call getFirstFromConversation
  - Verify that the returned Message object is one which you recognize
  - Note that if the message is an MMS it will be blank and meaningless. Try a different conversationId. MMS support "coming soon!"

Step 3: SMS App
- Use ccmake (or similar) to set SMSAPP_ENABLE to ON
- Build the project
- Run ./bin/kdeconnect-sms
- Verify that the app shows a list of everyone you have an SMS conversation with (MMS messages are stripped out)
  - If you have the Contacts plugin working, verify that most contacts have their name and photo instead of their phone number

Reviewers: #kde_connect, nicolasfella, apol

Reviewed By: #kde_connect, nicolasfella, apol

Subscribers: andyholmes, apol, nicolasfella, #kde_connect

Tags: #kde_connect

Maniphest Tasks: T8338, T6651

Differential Revision: https://phabricator.kde.org/D11854
2018-06-09 13:35:26 -06:00
Aleix Pol
c863feef58 Optionally include sms app
Creates a tiny messaging app that uses KPeople to query the contacts and
KDE connect telephony plugins to send plugins.
To be ready, still needs some work on the contacts sync side and some
messages history would be nice.
2018-03-25 20:48:38 +02:00
Albert Vaca
f47f517827 Rename NetworkPackage -> NetworkPacket
Summary: KDE Connect, now with correct naming!

Test Plan: It still builds.

Reviewers: #kde_connect, apol, nicolasfella

Reviewed By: #kde_connect, apol, nicolasfella

Subscribers: nicolasfella

Differential Revision: https://phabricator.kde.org/D11036
2018-03-05 20:03:23 +01:00
Albert Vaca
84bba9429f Merge branch 'master' into 1.x
# Conflicts:
#	core/backends/lan/downloadjob.cpp
#	core/backends/lan/downloadjob.h
#	core/filetransferjob.cpp
#	core/filetransferjob.h
#	plugins/notifications/sendreplydialog.cpp
#	plugins/notifications/sendreplydialog.h
#	plugins/telephony/sendsmsdialog.cpp
#	plugins/telephony/sendsmsdialog.h
2017-09-03 22:05:54 +02:00
Jean Vincent
72535ecf48 Make member variable names, & placement and * placement more coherent
Summary:
Change all member variables to the form m_fooBar because it is the preferred form in Qt (it was half and half between this and mFooBar, and a minority didn't have anything).
Place all references and pointers on the side of the type since it is the majority.

Basically:
 - mFoo -> m_foo
 - foo -> m_foo (if it is a member variable)
 - Type &ref -> Type& ref
 - Type *ptr -> Type* ptr

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, nicolasfella, albertvaka

Subscribers: albertvaka, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D7312
2017-09-03 21:45:08 +02:00
Aleix Pol
ec97af93a6 Use the same dialog for SendReply and SendSms 2017-08-05 02:11:27 +02:00
Albert Vaca
5f0173f469 Added a comment
Ubuntu's Unity doesn't support persistent notifications and it shows a
popup dialog instead :/
2017-02-08 14:59:34 +01:00
Albert Vaca
d992b0af25 This flag is of no use since we don't specify a widget. 2017-01-20 00:54:07 +01:00
Aleix Pol
3734d6ce4d Reduce API exposed through dbus
Summary:
Don't use QDBusConnection::ExportAllContents
No need to make connect and receivedPackage public slots (they're are the
parent's already)

Fixes T4975

Test Plan: Rough manual test

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Maniphest Tasks: T4975

Differential Revision: https://phabricator.kde.org/D3871
2017-01-10 18:15:01 +01:00
Albert Vaca
e694575b4f Fixed runtime connect warning if telepathy interface not present 2017-01-01 16:41:15 +01:00
Albert Vaca
60331ccbf1 Clazy says all this QStringLiteral and QLatin1String were missing/wrong 2016-11-26 16:21:29 +01:00
Albert Vaca
a1340c8042 Fixed old style connects with clazy 2016-11-26 15:14:19 +01:00
Aleix Pol
7d88340da7 Makes it possible to send sms from kdeconnect-cli
Summary: Introduces --send-sms and --destination

Test Plan: Sent an sms to Albert Vaca

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Differential Revision: https://phabricator.kde.org/D3252
2016-11-04 12:27:52 +01:00
Albert Vaca
c154d9702b Only return if telepathy actually handles the message 2016-06-26 15:48:37 +02:00
Albert Vaca
7af35b00f2 Send sms to a number, not a contact name. Use the contact name for display.
CCMAIL: david@davidedmundson.co.uk
2016-06-22 14:27:31 +02:00
Albert Vaca
9939b58df0 Merge telephonyplugin and telepathy plugin
We now use the telepathy interface when it's available, and fall back to
our custom dialog when it's not. This also makes the kdeconnect telepathy
connection manager be completely decoupled from the kdeconnect code.

CCMAIL: david@davidedmundson.co.uk
2016-06-22 14:27:09 +02:00
Aleix Pol
f9406e8afc Introduce QVariantMap as an argument of NetworkPackage
Makes it possible to specify the different properties sent at once,
rather than one by one as we used to do.

Also port whenever possible to the initializer-list syntax.

REVIEW: 128269
2016-06-21 20:07:12 +02:00
Aleix Pol
e6349524bc Move all Telepathy bits into a Telepathy plugin 2016-06-18 13:23:41 +02:00
Aleix Pol Gonzalez
a465577005 Move the Telepathy infrastructure at the plugin level
At the moment, telepathy integration needs to be compiled within the
daemon. This creates a rather aggressive dependency with Telepathy.

This plugin proposes to move into a plugin, so that if the plugin isn't
present, telepathy becomes out of the picture.

REVIEW: 128149
2016-06-18 11:54:38 +02:00
Albert Vaca
73f5996f14 Consistent naming of _REQUEST package type macros 2016-06-03 00:47:03 +02:00
Aleix Pol
e7578cc129 Refactor capabilities together with Albert
He is committing a similar patch to kdeconnect-android
2016-05-31 17:16:01 +02:00
Àlex Fiestas
5d80bf9f23 If the package contains a photo, show it in the notification
If the received packet has a photo, set it as pixmap in the
notification, otherwise keep showing the icon.

REVIEW:127298
2016-03-07 11:34:41 +01:00
David Edmundson
e4cbf22519 Telepathy integration
This sends recieved text messages to any Telepathy client and allows the
user to respond from there.
This should work with both our clients and Empathy.

An account on telepathy is created on activation.

As Telepathy clients expect backends to be always running, this is
started by the daemon to
suppress client errors. The plugin system then talks to the same CM via
use of a singleton accessor.

Based on work by Alexandr Akulich then tidied up and rebased.
2015-09-10 20:36:46 +02:00
Aleix Pol
817fcbc9d6 Merge branch 'stable' 2015-09-08 10:51:41 +02:00
Aleix Pol
d58f6314fe run Clang Modernize
Minus the auto change
2015-09-08 10:47:37 +02:00
Gaël Le Baccon
866fdfb33f Added a simple way to answer SMS messages from the notification 2015-09-08 01:12:01 -07:00
Albert Vaca
b21a4682a9 Fixed notification flags being overwritten 2015-09-08 01:12:00 -07:00
Aleix Pol
c7cee37330 Port away from KServiceTrader
Uses KPluginLoader+KPluginMetadata instead.
Describes plugins in json instead of desktop files. These desktop files are
then embedded into the .so file. All the plugins will be in a kdeconnect/
directory, and those will be the ones to look for.

Note it doesn't drop the KService dependency as KIOCore is a KDE Connect
dependency as well.

REVIEW: 123042
2015-03-19 16:36:53 +01:00