This project is a part of a trio of projects:
This is a cross-platform server written in Kotlin and compatible with Windows, Linux and MacOS X. It is made up of a VirtualNumpad class which execute the inputs, and a set of IConnectionInterface implementations which receive the inputs to be executed.
The only three connection interfaces supported so far are Wi-Fi and classic Bluetooth (RFCOMM) and the Bluetooth HID profile but BLE and Wifi-Direct are probably going to be implemented in the future.
Bluecove is used for the Bluetooth implementation, but in the case of MacOS X, the APIs that Bluecove uses have been obsoleted, so a native library has been written using the JNI (see the project Cocoa Native Server).
The project is a Gradle project, so it can be compiled using Gradle or imported by any Gradle-capable and Android-capable IDE (e.g.: Android Studio, IntelliJ, Eclipse) and then compiled.
Bluecove is included in the repo, the other dependencies will be downloaded through Gradle at build-time.
The file src/main/resources/libNativeServer.dylib is obtained by compiling the Cocoa Native Server project and is only required to run the server on MacOS X.
This is not a main project for me so help will be very appreciated. Anyone is welcome to contribute to this project (issues, requests, pull requests).