Summary:
Add openFile to Share Plugin and extend handler to open local file urls
Future extension: Modify the desktop file to allow Open with > Open on connected device
Depends on D16605
Test Plan: Apply Android patch. Use kdeconnect-handler file:///somefile. Check phone for reaction
Reviewers: #kde_connect, albertvaka
Reviewed By: #kde_connect, albertvaka
Subscribers: sredman, kdeconnect
Tags: #kde_connect
Maniphest Tasks: T8637
Differential Revision: https://phabricator.kde.org/D15294
Summary: This allows you to send a text string from qml, this can be used in the plasmoid and qml app.
Reviewers: nicolasfella
Reviewed By: nicolasfella
Subscribers: kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D16640
Summary:
Some plugins were copy/pasted from a template and forgot to change their include guards. Since plugin header files are never cross-referenced, this was not a serious issue, but it looks nicer to be correct
NotificationListener.h did not have an include guard. As before, this is not a problem currently, but it's best to have it fixed
Test Plan: Project should build, compile, and run as normal
Reviewers: #kde_connect, nicolasfella
Reviewed By: #kde_connect, nicolasfella
Subscribers: kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D16437
Summary:
Main change is to use libkeepalive to wake up the system to ensure connections stay alive
Other minor changes are:
-Log daemon messages for debugging purposes
-Add way to forece refresh of device list
-Minor spec improvements
The keepalive changes certainly seem to help, not sure if it completely solves the problems
The logging changes are temporary, and I could use them locally, but they only affect sailfish users
Im not sure if the refresh method is correct, but seems to force the daemon to check for devices
Reviewers: #kde_connect, nicolasfella, albertvaka
Reviewed By: #kde_connect, albertvaka
Subscribers: kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D15414
Summary:
When a new message is delivered, the conversation list should update by changing the preview text and re-sorting the conversations
Bonus bug discovered and fixed: previously, when the conversations list was being populated, it made a request for the first message in every conversation. This would be fine if the conversationdbusinterface pulled from local cache. However, this actually triggers a request to the phone for *every* conversation.
This should be handled differently in conversationdbusinterface's requestConversation as well, but that's a project for a later day (TODO comments added)
Test Plan:
- Launch SMS app
- Verify conversations list appears
- Verify lack of massive stream of debug output indicating lots of messages for the wrong conversation are being received
- Verify that opening a particular conversation shows the messages after a short delay while the backend fetches the content from the phone
- Verify that receiving a new message into an existing conversation updates the conversation list
Reviewers: #kde_connect, nicolasfella
Reviewed By: #kde_connect, nicolasfella
Subscribers: nicolasfella, apol, kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D15608
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
Summary:
Update sms app model to use new conversationUpdated signal
Filter incoming messages which belong to a different conversation than the one currently being viewed
See Android-side diff D15360 which adds support for sending live updates when a new message is sent or received
Test Plan:
This patch relies on D15360 for Android-side support
- Positive case:
- Open a conversation in the SMS app
- Receive a new message into that conversation (text yourself?)
- Verify that the new message appears at the bottom of the appropriate conversation
- Negative case:
- Open a conversation in the SMS app
- Receive a new message into a different conversation (text yourself?)
- Verify that the new message does *not* appear in the open conversation
Reviewers: #kde_connect, nicolasfella
Reviewed By: #kde_connect, nicolasfella
Subscribers: nicolasfella, kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D15409
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
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
Summary: Previously, incoming messages were appened to a QList. This list was accidentally sorted because that's how Android returned them, but new messages were appended to the wrong end of the list. This patch specifically and intentionally sorts messages so new ones become visible
Test Plan:
- Open SMS GUI, verify that the most-recent messages are shown
- Either send or recieve an SMS
- Wait about 5s (I do not know why this is necessary. Probably some Android weirdness)
- De-select the current conversation, then re-select it
- TODO: Make the app automatically respond to new messages
- The newly sent or recieved message should be shown in the most-recent position
Reviewers: apol
Reviewed By: apol
Subscribers: apol, nicolasfella, kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D15108
Summary:
Show the plugin's icons in the list
Depends on D14567
{F6172885}
Reviewers: #kde_connect, apol
Reviewed By: #kde_connect, apol
Subscribers: kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D14571
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
Summary: This plugin allows controlling the system value from a remote device.
Test Plan: Apply Android patch, open up MPRIS Activity and play with the slider
Reviewers: #kde_connect, mtijink, albertvaka
Reviewed By: #kde_connect, albertvaka
Subscribers: kdeconnect, apol, zhigalin, albertvaka, davidedmundson, mtijink, #kde_connect
Tags: #kde_connect
Maniphest Tasks: T4659
Differential Revision: https://phabricator.kde.org/D7992
Summary:
When running the test m_impl will be nullptr leading to a crash. This is because when running as a test no platform is loaded.
The fancy way to solve this would be to have a TestImpl, but I think this is enough.
Test Plan: Test passes now
Reviewers: #kde_connect, apol
Reviewed By: #kde_connect, apol
Subscribers: kdeconnect, #kde_connect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D13629
Summary:
The RemotecommandsPlugin lacks a graphical frontend.
Inlcudes a Dbus Interface for fetching the commands and a Model exposing them to QML. For this I oriented on the NotificatonsPlugin.
Test Plan:
Open command list in app, check available commands, trigger some. Do same for CLI.
Activate edit action, check KCM opening on remote device, add command, check for new command in list
Reviewers: #kde_connect, apol
Reviewed By: #kde_connect, apol
Subscribers: apol, kdeconnect, #kde_connect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D13503
Summary: This seems to fix the issue I mentioned on Telegram/Mail
Test Plan:
Before: Use Mprisremote plugin with App. View did not update when e.g. next is pressed.
Now: View correctly represents the DBus data
Reviewers: #kde_connect
Subscribers: #kde_connect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D12528
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
Summary:
Added the following example commands for the Run Command plugin:
- Lock Screen
- Unlock Screen
- Close All Vaults
- Forcefully Close All Vaults
Reviewers: #plasma, ngraham, albertvaka, nicolasfella, #kde_connect
Reviewed By: nicolasfella, #kde_connect
Subscribers: ngraham, kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D13136
Summary:
Allows other devices to make this device discoverable via a
kdeconnect.findmyphone.request command, if running.
Currently supports playing a sound.
Counterpart to FindMyPhone plugin
Test Plan:
Connect with other device running KDE Connect (with Plasmoid).
Select a working play sound in the Find My Device plugin settings.
On other device trigger Find My Phone button for this device in KDE Connect
Plasmoid and notice this device playing the configured sound.
Reviewers: #kde_connect, nicolasfella
Reviewed By: #kde_connect, nicolasfella
Subscribers: kdeconnect, sredman, mtijink, apol, nicolasfella
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D11773
Summary:
Allows other devices to make this device discoverable via a
kdeconnect.findmyphone.request command, if running.
Currently supports playing a sound.
Counterpart to FindMyPhone plugin
Test Plan:
Connect with other device running KDE Connect (with Plasmoid).
Select a working play sound in the Find My Device plugin settings.
On other device trigger Find My Phone button for this device in KDE Connect
Plasmoid and notice this device playing the configured sound.
Reviewers: #kde_connect, nicolasfella
Reviewed By: #kde_connect, nicolasfella
Subscribers: kdeconnect, sredman, mtijink, apol, nicolasfella
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D11773
Summary:
Fixes T6701
The reason it did not work before is that the "Keyboard" did not report itself as available.
Test Plan:
Type in plasmoid on one Desktop, see text on another.
Note that no ack packets are sent, so the text does not appear in the original input text field. I want to await the discussion in D12670 before doing that
Reviewers: apol
Reviewed By: apol
Subscribers: mtijink, kdeconnect
Tags: #kde_connect
Maniphest Tasks: T6701
Differential Revision: https://phabricator.kde.org/D12812
Summary: Ifdef for old KF5 as discussed in D11684.
Test Plan: Can still use feature when above 5.45
Reviewers: apol
Reviewed By: apol
Subscribers: kdeconnect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D12810
Summary:
Send requestNowPlaying packet when a player is discovered
Depends on D12546
Test Plan: Restart daemon, open app. Status is now displayed correctly, previously it was not until the first update
Reviewers: #kde_connect, apol
Reviewed By: #kde_connect, apol
Subscribers: #kde_connect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D12550
Summary: Current code only supports one player
Test Plan: Run two media sessions. Dbus inspection works fine, UI has some issues with values not updated, but out of scope for this diff
Reviewers: #kde_connect, apol
Reviewed By: #kde_connect, apol
Subscribers: apol, #kde_connect
Tags: #kde_connect
Differential Revision: https://phabricator.kde.org/D12546
Summary:
Add a plugin to KDE Connect which supports exporting the Android contacts databases to vcards on the desktop
When the devices are connected, the plugin sends a request for all timestamps and IDs
When a packet with timestamps and IDs is received, it verifies it has vcards for each ID and that the timestamps match and deletes any vcards for IDs which were not reported. It then sends a request for all vcards which were missing or need updating
When a packet with vcards is received they are unconditionally written to disk, possibly overwriting existing vcards
Provides one dbus method: contacts/synchronizeRemoteWithLocal which triggers the request for all timestamps and IDs
BUG: 367999
Test Plan:
Connect the device to the desktop and verify that vcards are created in QStandardPaths::GenericDataLocation / kpeoplevcard". On my system this is ~/.local/share/kpeoplevcard
Create a dummy contact on the device and verify it is synchronized (Currently not automatic, have to disconnect and reconnect or use dbus)
Modify the dummy contact and verify the modifications are synchronized (Currently not automatic, have to disconnect and reconnect or use dbus)
Delete the dummy contact and verify the deletion is synchronized (Currently not automatic, have to disconnect and reconnect or use dbus)
Reviewers: #kde_connect, apol
Reviewed By: #kde_connect, apol
Subscribers: mtijink, #kde_connect, apol
Tags: #kde_connect
Maniphest Tasks: T8283
Differential Revision: https://phabricator.kde.org/D9691