CI / Core C++ Tests (push) Has been cancelled
CI / Android Build (push) Has been cancelled
CI / NDK ABI Build (arm64-v8a) (push) Has been cancelled
CI / NDK ABI Build (armeabi-v7a) (push) Has been cancelled
CI / NDK ABI Build (x86_64) (push) Has been cancelled
Complete swipe typing engine with: - swipetype-core: C++17 gesture recognition (DTW, adaptive scoring) - swipetype-android: JNI bridge + Android AAR packaging - sample-app: Functional IME demo with space bar zone detection - 48 unit tests (GTest), CI/CD workflows (GitHub Actions) - Full documentation suite (architecture, API, contributing, security) Co-authored-by: inventory69 <inventory69@users.noreply.github.com> Co-authored-by: Hyphonical <Hyphonical@users.noreply.github.com>
HeliBoard Adapter
Reference adapter for integrating the libswipetype with HeliBoard.
Integration Approaches
Approach 1: Java-Level Integration (Recommended for MVP)
Add this adapter as a Gradle dependency in your HeliBoard fork:
-
Add to HeliBoard's
settings.gradle:include ':swipetype-android', ':adapters:heliboard' -
Add dependency in HeliBoard's
app/build.gradle:implementation project(':adapters:heliboard') -
In HeliBoard's
LatinIME.java, initialize the adapter:HeliboardSwipeTypeAdapter glideAdapter = new HeliboardSwipeTypeAdapter( new HeliboardSwipeTypeAdapter.CandidateCallback() { @Override public void onCandidates(String[] words, int[] scores, int count) { // Convert to SuggestedWordInfo and show in suggestion bar } @Override public void onError(String message) { Log.e("LatinIME", "Glide error: " + message); } } ); glideAdapter.initialize(this, openDictionaryStream()); -
In HeliBoard's gesture input handler, route to the adapter:
if (isGestureInput) { glideAdapter.onGestureInput( inputPointers.getXCoordinates(), inputPointers.getYCoordinates(), inputPointers.getTimes(), inputPointers.getPointerSize() ); }
Approach 2: Drop-in .so Replacement (Future)
Build the library as libjni_latinime.so and place it in HeliBoard's files directory.
This requires the HeliboardJNIBridge.cpp to be completed with full JNI registration.
HeliBoard Version Compatibility
This adapter is designed against HeliBoard's main branch as of 2026-02-18. Key interfaces observed:
BinaryDictionary.getSuggestionsNative()— gesture/typing suggestion entry pointProximityInfo.setProximityInfoNative()— keyboard layout setupNativeSuggestOptions— gesture mode flag (index 0)InputPointers— touch coordinate container
If HeliBoard changes these interfaces, the adapter may need updating. See the version compatibility section in the main README.