diff options
| author | Jules Aguillon | 2026-02-02 00:20:00 +0100 |
|---|---|---|
| committer | GitHub | 2026-02-02 00:20:00 +0100 |
| commit | 77c4a27c4c37b3620defcab94ffd1b2f536c88cb (patch) | |
| tree | 1bf2c5b723e1f86b0904257e7e57f4fda15378e9 /res/layout | |
| parent | 2ecf93d9904544ee73159e9f0ee74b49057bca6c (diff) | |
| download | unexpected-keyboard-77c4a27c4c37b3620defcab94ffd1b2f536c88cb.tar.gz unexpected-keyboard-77c4a27c4c37b3620defcab94ffd1b2f536c88cb.zip | |
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.
Diffstat (limited to 'res/layout')
| -rw-r--r-- | res/layout/candidates_status_no_dict.xml | 2 | ||||
| -rw-r--r-- | res/layout/dictionaries_activity.xml | 7 | ||||
| -rw-r--r-- | res/layout/dictionary_download_item.xml | 6 | ||||
| -rw-r--r-- | res/layout/launcher_activity.xml | 1 |
4 files changed, 15 insertions, 1 deletions
diff --git a/res/layout/candidates_status_no_dict.xml b/res/layout/candidates_status_no_dict.xml index 6ba20b9..8bd1e37 100644 --- a/res/layout/candidates_status_no_dict.xml +++ b/res/layout/candidates_status_no_dict.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/candidates_status"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/candidates_status_no_dict"/> - <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/candidates_status_install"/> + <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/candidates_status_install" android:onClick="launch_dictionaries_activity"/> </LinearLayout> diff --git a/res/layout/dictionaries_activity.xml b/res/layout/dictionaries_activity.xml new file mode 100644 index 0000000..96b1bcb --- /dev/null +++ b/res/layout/dictionaries_activity.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:fitsSystemWindows="true"> + <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> + <TextView style="@style/paragraph" android:text="@string/dictionaries_from_internet"/> + <juloo.keyboard2.dict.DictionaryListView style="@style/dictionary_list_view"/> + </LinearLayout> +</ScrollView> diff --git a/res/layout/dictionary_download_item.xml b/res/layout/dictionary_download_item.xml new file mode 100644 index 0000000..e6dd3c6 --- /dev/null +++ b/res/layout/dictionary_download_item.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/dictionary_download_item"> + <TextView android:id="@+id/dictionary_download_locale" style="@style/dictionary_download_locale"/> + <TextView android:id="@+id/dictionary_download_size" style="@style/dictionary_download_size"/> + <View android:id="@+id/dictionary_download_button" style="@style/dictionary_download_button" android:background="@drawable/ic_download"/> +</LinearLayout> diff --git a/res/layout/launcher_activity.xml b/res/layout/launcher_activity.xml index 20df09a..b4c23ab 100644 --- a/res/layout/launcher_activity.xml +++ b/res/layout/launcher_activity.xml @@ -4,6 +4,7 @@ <TextView style="@style/paragraph" android:text="@string/launcher_description"/> <Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/> <Button style="@style/paragraph" android:text="@string/launcher_button_imepicker" android:onClick="launch_imepicker" android:layout_width="wrap_content"/> + <Button style="@style/paragraph" android:text="@string/launcher_button_dictionaries" android:onClick="launch_dictionaries_activity" android:layout_width="wrap_content"/> <LinearLayout style="@style/anim_box"> <ImageView style="@style/anim" android:id="@+id/launcher_anim_swipe" android:background="@drawable/doc_key_u" android:src="@drawable/doc_anim_swipe"/> <TextView style="@style/anim_text" android:text="@string/launcher_anim_7"/> |
