From 77c4a27c4c37b3620defcab94ffd1b2f536c88cb Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Mon, 2 Feb 2026 00:20:00 +0100 Subject: Spell checking (#1137) This adds dictionary-based spell checking to the keyboard. The keyboard looks at the word being typed and matches it against a dictionary to either complete the rest of the word or find alternative spellings. The core of this feature is implemented in cdict, which is included as a submodule in vendor/cidct. Cdict is developped at https://github.com/Julow/cdict The dictionaries are hosted at https://github.com/Julow/Unexpected-Keyboard-dictionaries/ The wordlists used to build the dictionaries are the same ones used by HeliBoard from https://codeberg.org/Helium314/aosp-dictionaries - Add an activity accessible from the launcher app that lists available dictionaries with a download button. The DictionaryListView view shows the list of available dictionaries and handles downloading and installing them. - The Dictionaries class manages installed dictionaries. Dictionaries are installed as individual files into the app's private directory. - Available dictionaries are listed in dictionaries.xml, which is generated when building Unexpected-Keyboard-dictionaries. method.xml mentions the dictionary name for each locales. --- srcs/juloo.keyboard2/Utils.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'srcs/juloo.keyboard2/Utils.java') diff --git a/srcs/juloo.keyboard2/Utils.java b/srcs/juloo.keyboard2/Utils.java index 5cc1664..ae82474 100644 --- a/srcs/juloo.keyboard2/Utils.java +++ b/srcs/juloo.keyboard2/Utils.java @@ -9,6 +9,8 @@ import android.view.View; import android.view.Window; import android.view.WindowInsets; import android.view.WindowManager; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Locale; @@ -49,4 +51,14 @@ public final class Utils out.append(buff, 0, l); return out.toString(); } + + public static byte[] read_all_bytes(InputStream inp) throws IOException + { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + byte[] buff = new byte[128000]; + int l; + while ((l = inp.read(buff)) != -1) + out.write(buff, 0, l); + return out.toByteArray(); + } } -- cgit v1.2.3