diff --git a/src/org/kde/kdeconnect/Plugins/README.txt b/src/org/kde/kdeconnect/Plugins/README.txt new file mode 100644 index 00000000..dc37758e --- /dev/null +++ b/src/org/kde/kdeconnect/Plugins/README.txt @@ -0,0 +1,44 @@ +Writing a plugin for KDE Connect +================================= + +For Android (this project): +----------------------------------------- + +1. Change directory to src/org/kde/kdeconnect/Plugins. +2. Copy "PingPlugin" under a different name ("FindMyPhonePlugin" in this example). +1. Enter the new "FindMyPhonePlugin" directory. +4. Rename "PingPlugin.java" to "FindMyPhonePlugin.java" +5. Edit it. Replace (case sensitive) "Ping" with "FindMyPhone", "ping" with "findmyphone", "PING" with "FINDMYPHONE" + and "plugin_ping" with "plugin_findmyphone". +6. Open res/values/strings.xml. Find and copy the lines "pref_plugin_ping_desc" and "pref_plugin_ping" replacing "ping" + with "findmyphone" and edit the plugin name and description between ). +7. Open src/org/kde/kdeconnect/Plugins/PluginFactory.java. + A. Copy "import … PingPlugin" line with replacing "PingPlugin" with "FindMyPhonePlugin". + B. Copy "PluginFactory.registerPlugin(PingPlugin.class);" line with replacing "PingPlugin" with "FindMyPhonePlugin". +8. Open src/org/kde/kdeconnect/NetworkPacket.java. Copy a "public final static String PACKET_TYPE_PING = …" line + replacing "PING" with the packet type you will be using (should match the desktop client). +9. Now you have an empty skeleton to implement your new plugin logic. + +For the desktop client (project kdeconnect-kde): +-------------------------------------- + +1. Enter the "plugins" directory. +2. Copy the "ping" under a different name ("findmyphone" in this example). +3. Add "add_subdirectory(findmyphone)" to CMakeLists.txt after the others "add_subdirectory". +1. Enter the new "findmyphone" directory. +5. Edit CMakeLists.txt by replacing "ping" with "findmyphone". +6. Rename other files in this directory by replacing "ping" with "findmyphone" +7. Write a description of your plugin into "README" +8. Edit findmyphoneplugin.cpp and findmyphoneplugin.h. + A. Change license header. + B. Replace (case sensitive) "ping" with "findmyphone", "PingPlugin" with "FindMyPhonePlugin" and "PING" with "FINDMYPHONE". +9. Edit kdeconnect_findmyphone.desktop file: + A. Replace "ping" with "findmyphone". + B. Change name, description, icon, author, email, version, website, license info. + C. Remove all the translations + D. Set X-KDEConnect-SupportedPacketType and X-KDEConnect-OutgoingPacketType to the packet type your plugin will receive + and send, respectively. In this example this is "kdeconnect.findmyphone". Make sure that this matches what is defined in + the findmyplugin.h file (in the line "#define PACKET_TYPE_..."), and also in Android. +10. Now you have an empty skeleton to implement your new plugin logic. + +