From 91877b288b0bd4a70774633abd9fa8024aedae6b Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 18 Apr 2026 10:51:43 -0600 Subject: [PATCH 01/11] Intitial checkin --- srcs/layouts/latin_dvorak.xml | 48 +++++++++++++++++++ srcs/layouts/latin_dvorak_landscape.xml | 64 +++++++++++++++++++++++++ srcs/layouts/latin_dvorak_left.xml | 40 ++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 srcs/layouts/latin_dvorak.xml create mode 100644 srcs/layouts/latin_dvorak_landscape.xml create mode 100644 srcs/layouts/latin_dvorak_left.xml diff --git a/srcs/layouts/latin_dvorak.xml b/srcs/layouts/latin_dvorak.xml new file mode 100644 index 000000000..d79645732 --- /dev/null +++ b/srcs/layouts/latin_dvorak.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/srcs/layouts/latin_dvorak_landscape.xml b/srcs/layouts/latin_dvorak_landscape.xml new file mode 100644 index 000000000..d4a0027a7 --- /dev/null +++ b/srcs/layouts/latin_dvorak_landscape.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/srcs/layouts/latin_dvorak_left.xml b/srcs/layouts/latin_dvorak_left.xml new file mode 100644 index 000000000..ca882359f --- /dev/null +++ b/srcs/layouts/latin_dvorak_left.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From a11533123313faac7166d2f3bf1327005936173d Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 18 Apr 2026 11:58:18 -0600 Subject: [PATCH 02/11] add modmap to add shift to ',. left layout add language key. --- srcs/layouts/latin_dvorak.xml | 5 +++++ srcs/layouts/latin_dvorak_landscape.xml | 6 ++++++ srcs/layouts/latin_dvorak_left.xml | 1 + 3 files changed, 12 insertions(+) diff --git a/srcs/layouts/latin_dvorak.xml b/srcs/layouts/latin_dvorak.xml index d79645732..83eb63681 100644 --- a/srcs/layouts/latin_dvorak.xml +++ b/srcs/layouts/latin_dvorak.xml @@ -45,4 +45,9 @@ + + + + + \ No newline at end of file diff --git a/srcs/layouts/latin_dvorak_landscape.xml b/srcs/layouts/latin_dvorak_landscape.xml index d4a0027a7..5c692280a 100644 --- a/srcs/layouts/latin_dvorak_landscape.xml +++ b/srcs/layouts/latin_dvorak_landscape.xml @@ -61,4 +61,10 @@ + + + + + + \ No newline at end of file diff --git a/srcs/layouts/latin_dvorak_left.xml b/srcs/layouts/latin_dvorak_left.xml index ca882359f..252c81300 100644 --- a/srcs/layouts/latin_dvorak_left.xml +++ b/srcs/layouts/latin_dvorak_left.xml @@ -6,6 +6,7 @@ + From ef2e23777c4ae671febb9d8ec6560cab6a6ac103 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 18 Apr 2026 14:15:04 -0600 Subject: [PATCH 03/11] Fix names --- res/values/layouts.xml | 6 ++ srcs/layouts/latin_dvorak.xml | 53 ------------ srcs/layouts/latn_dvorak.xml | 82 +++++++++++-------- ...andscape.xml => latn_dvorak_landscape.xml} | 0 ...n_dvorak_left.xml => latn_dvorak_left.xml} | 2 +- 5 files changed, 56 insertions(+), 87 deletions(-) delete mode 100644 srcs/layouts/latin_dvorak.xml rename srcs/layouts/{latin_dvorak_landscape.xml => latn_dvorak_landscape.xml} (100%) rename srcs/layouts/{latin_dvorak_left.xml => latn_dvorak_left.xml} (94%) diff --git a/res/values/layouts.xml b/res/values/layouts.xml index 11ac6375e..91d23d96d 100644 --- a/res/values/layouts.xml +++ b/res/values/layouts.xml @@ -47,6 +47,8 @@ latn_azerty_fr latn_bepo_fr latn_bone + latn_dvorak_landscape + latn_dvorak_left latn_neo2 latn_qwerty_apl latn_qwerty_az @@ -141,6 +143,8 @@ AZERTY (Français) BEPO (Français) Bone + Dvorak-Landscape + Dvorak-Left Neo 2 QWERTY (APL) QWERTY (Azərbaycanca) @@ -235,6 +239,8 @@ @xml/latn_azerty_fr @xml/latn_bepo_fr @xml/latn_bone + @xml/latn_dvorak_landscape + @xml/latn_dvorak_left @xml/latn_neo2 @xml/latn_qwerty_apl @xml/latn_qwerty_az diff --git a/srcs/layouts/latin_dvorak.xml b/srcs/layouts/latin_dvorak.xml deleted file mode 100644 index 83eb63681..000000000 --- a/srcs/layouts/latin_dvorak.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/srcs/layouts/latn_dvorak.xml b/srcs/layouts/latn_dvorak.xml index 656320097..83eb63681 100644 --- a/srcs/layouts/latn_dvorak.xml +++ b/srcs/layouts/latn_dvorak.xml @@ -1,37 +1,53 @@ - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/srcs/layouts/latin_dvorak_landscape.xml b/srcs/layouts/latn_dvorak_landscape.xml similarity index 100% rename from srcs/layouts/latin_dvorak_landscape.xml rename to srcs/layouts/latn_dvorak_landscape.xml diff --git a/srcs/layouts/latin_dvorak_left.xml b/srcs/layouts/latn_dvorak_left.xml similarity index 94% rename from srcs/layouts/latin_dvorak_left.xml rename to srcs/layouts/latn_dvorak_left.xml index 252c81300..b31c5dfb7 100644 --- a/srcs/layouts/latin_dvorak_left.xml +++ b/srcs/layouts/latn_dvorak_left.xml @@ -3,7 +3,7 @@ - + From b23998e1c146c213b68cf9ffdf5ec48a171964fe Mon Sep 17 00:00:00 2001 From: Nathan Date: Wed, 27 May 2026 07:55:18 -0600 Subject: [PATCH 04/11] 1. All-language dictionary list DictionaryListView.java now shows all 56 supported languages instead of only those matching your device locale. Any language can be downloaded and installed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2. Quick dictionary switcher in Settings DictionaryPickerPreference.java — a new ListPreference under Settings → Suggestions → "Active dictionary". Options: Auto (based on language) + any installed dictionary by display name. Stored as pref key selected_dictionary. 3. Personal dictionary PersonalDictionary.java — singleton that stores word/replacement pairs in SharedPreferences. Each entry is either: A plain word (recognized for completions) A trigger → replacement pair (autocorrect) Personal dictionary suggestions appear before main-dictionary suggestions. 4. Personal dictionary manager PersonalDictionaryActivity.java — accessible from Settings → Suggestions → "Personal dictionary". Shows all entries; tap any to edit (word field + replacement field + Delete button). 5. "+" button while typing A + button appears in the suggestions bar while you're typing a word. Tapping it opens the personal dictionary manager with the current word pre-filled in the add-word dialog. You can then modify both the word (trigger) and the replacement before saving. The button is wired via CandidatesView.java → set_current_word() which is called by Suggestions.java on every keystroke. --- AndroidManifest.xml | 6 + res/layout/keyboard.xml | 1 + res/layout/personal_dict_activity.xml | 47 +++++ res/layout/personal_dict_entry.xml | 31 +++ res/values/strings.xml | 18 ++ res/xml/settings.xml | 7 + srcs/juloo.keyboard2/Config.java | 5 + srcs/juloo.keyboard2/Keyboard2.java | 35 +++- .../dict/DictionaryListView.java | 18 +- .../dict/PersonalDictionary.java | 128 +++++++++++++ .../dict/PersonalDictionaryActivity.java | 177 ++++++++++++++++++ .../prefs/DictionaryPickerPreference.java | 55 ++++++ .../suggestions/CandidatesView.java | 40 ++++ .../suggestions/Suggestions.java | 50 +++-- 14 files changed, 585 insertions(+), 33 deletions(-) create mode 100644 res/layout/personal_dict_activity.xml create mode 100644 res/layout/personal_dict_entry.xml create mode 100644 srcs/juloo.keyboard2/dict/PersonalDictionary.java create mode 100644 srcs/juloo.keyboard2/dict/PersonalDictionaryActivity.java create mode 100644 srcs/juloo.keyboard2/prefs/DictionaryPickerPreference.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 95d80b9bd..77d4f7513 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -31,6 +31,12 @@ + + + + + + diff --git a/res/layout/keyboard.xml b/res/layout/keyboard.xml index f51297956..f1d5f7850 100644 --- a/res/layout/keyboard.xml +++ b/res/layout/keyboard.xml @@ -4,6 +4,7 @@ + diff --git a/res/layout/personal_dict_activity.xml b/res/layout/personal_dict_activity.xml new file mode 100644 index 000000000..e1d6143d1 --- /dev/null +++ b/res/layout/personal_dict_activity.xml @@ -0,0 +1,47 @@ + + + + + + + +