| Age | Commit message (Collapse) | Author | Files | Lines |
|
Suggest an emoji in addition to the 3 suggested words when the
current word matches an alias in the emoji dictionary, if
available.
|
|
The font size of the suggested words is reduced if the word would
otherwise split on two lines.
|
|
* Fix the spacebar in Hangul combining
The encoding for the spacebar changed and the Hangul combining code was
not updated.
* Change the default layout for Korean
|
|
* Add more symbols to accent_syperscript
* Add all uppercase and lowercase variants to accent_small_caps
* Use ʁ instead of ᴚ in accent_small_caps
|
|
* Fix crash when typing space in the middle of a word
* Don't trigger autocorrect when the cursor is not at the end of a word
This prevented from editing a word that was already typed.
* Don't undo autocorrect at the wrong time
Backspace was trying to undo autocorrect even after some other action
were done after the last autocorrect. This ensures that the keyboard
remembers accurately the last action.
|
|
Crash added in https://github.com/Julow/Unexpected-Keyboard/pull/1233
|
|
* Better spell check with cursor in the middle of a word
Suggestions are based on the entire word and no longer the part of the
word just before the cursor. Also, tapping a suggestion or the space bar
autocorrect replaces the entire word.
* Reduce the number of calls to refresh_current_word
While the cursor moves, calls to refresh_current_word are now only done
when the cursor exits the current word.
|
|
This prevents the same suggestions to be presented again and autocorrect
to be activated again when pressing space.
This extra space is wanted because pressing the spacebar triggered
autocorrect in the first place.
|
|
* Update cdict
* scripts/subst_of_compose.py: Compute substitutions
from compose mappings. They are used when building dictionaries.
* Add substitutions compose data
* Better suggestion with diacritics
This improves the suggestions for words that contain diacritics and
uppercase letters.
This works by stripping diacritics both when building the dictionaries
(using word aliases added in cdict: https://github.com/Julow/cdict/pull/3)
and during lookup. Cdict then takes care of resolving the correct word.
The substitutions are generated using mappings from `fn`, `shift` and
all the `accent_*` modifiers into srcs/compose/substitutions.json
This can be updated easily when more mappings are added.
|
|
The Google Keep text area sends contradictory flags to keyboards,
resulting in the suggestions to be disabled.
This seems to be a bug in Google Keep.
|
|
* Switch dictionary when language changes
The dictionary was otherwise updated by closing and opening the keyboard
again.
* Refresh suggestions immediately after language switch
|
|
This shows a reason why the list is empty and removes confusion.
|
|
The spacebar autocomplete option was still working even when the
suggestions strip was correctly hidden in applications like Termux.
|
|
For example, typing "dictionarirs" suggests "dictionaries" but moving
the cursor away and back results in no suggestion. Because the lookback
was 10 characters long, the keyboard was seeing "ctionarirs".
|
|
|
|
|
|
|
|
* Helper for whether a slider is vertical
* Only accumulate delta for the current slider's direction
* Slow down horizontal cursor movement while ctrl is held
|
|
|
|
|
|
* Fix keyboard not showing on Android 16
* Update target SDK version to 36
|
|
|
|
|
|
Suggestions were previously case-sensitive, which gave very bad results
for the first word of a sentence.
This makes sure that the suggestions for capitalized words are as good
as for all lower-case words and that the suggestion doesn't turn the
uppercase letter into lower case.
|
|
|
|
* Refactor: Implement the space key as an editing action
The space key is no longer a CHAR key but now an EDITING key. This
allows changing the behavior of the space bar while allowing custom
layout users to define a key outputing a space as before.
KeyModifier and ComposeKey are updated to treat the space key as before.
* Enter the best suggestion when the space bar is pressed
* Refactor: Implement backspace as an editing action
* Undo suggestion when delete is pressed
The delete key (backspace internally) undoes the suggestion if the last
action done was entering the suggestion with either the space bar or the
candidates view.
* Add an option to enable space bar autocomplete
This option is off by default. Undoing a completion with backspace works
in any case.
* Refactor: Track selection emptyness in CurrentlyTypedWord
This removes an expensive RPC call.
|
|
* Refactor: KeyValue constants
Add constants for keys that are accessed from the app's code. This
simplifies the fake pointer handling in Keyboard2View.
* Refactor: Pre-compute action key replacement
The action key and the enter swap are pre-computed in EditorConfig. This
simplifies the code.
|
|
The color of labels on a pressed key that were not the label being
activated (eg. the labels on the corners when activating the label in
the centre) was not correct.
|
|
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.
|
|
* Refactor: Create subpackage 'suggestions'
* Candidates view: Status message when no dictionary installed
Show a message on the candidates view instead of leaving it empty. A
button points to the dictionary installation activity.
* Add an option to disable the suggestions
* Refactor: Remove Config.should_show_candidates_view
This was moved to EditorConfig.
* Don't disable text suggestions in some text boxes
* Suggestion text size matching settings
The candidates view height is based on the height of keyboard rows and
the suggestion text size is based on the size of labels on the keys.
This is influenced by symbol size and keyboard height options.
|
|
It was possible to define a loop that would crash the app with the
following modmap:
<ctrl a="left" b="left:ctrl,left"/>
With this change, modmap are not taken into account while evaluating
macros. The modmap above modifies ctrl+left into ctrl+left.
|
|
The "Switch to the last used keyboard" is renamed to "Switching between
input methods" and allows to select "Switch to last used", which was the
default in older releases.
|
|
* Add the small capital letters dead key
It can be added to the keyboard from the settings or into custom layouts
as `accent_small_caps`.
Add all the symbols listed on https://en.wikipedia.org/wiki/Small_caps
|
|
* Refactor: Split DeviceLocales out of Keyboard2
This moves the code from Keyboard2 that handles the active IME subtypes
and the current one.
The goal is to access this information from the dictionary activity
while simplifying the code of Keyboard2.
* Refresh the candidates view when subtype changes
This fixes the status message being inconsistently shown.
* Refactor: Load DeviceLocales less often
Previously, [DeviceLocales.load()] was called everytime the keyboard was
shown on the screen. This operation is moderately costly and only need
to be done when the IME subtype changes.
* EditorConfig: Fix crash on Android 9
|
|
|
|
Currently, refreshing the current word on each key event.
Refreshing is done after a short delay, to ensure the editor has handled
the event.
|
|
When selection is entered, the current word is cleared.
|
|
The current word is replaced by the pressed suggestion.
|
|
The `CurrentlyTypedWord` class tracks the word that is being typed. It's
implemented on the same model as Autocapitalisation and avoid expensive
IPC calls when possible.
The `Suggestions` class is where the suggestion lookup should go. It
currently just echoes the current word.
|
|
The `CandidatesView` is implemented as a `LinearLayout` that is divided
horizontally with up to 3 `TextView`. It might in the future contain
buttons on the sides.
The candidate view is nested into the input view rather than using
Android's `setCandidatesView` and callbacks as the API is unreliable and
complicated.
The first suggestion goes in the middle to be more accessible. The
second suggestion goes on the right to be more accessible to the
right-handed, because it must go somewhere.
|
|
* Fix background crash in clipboard history service
The clipboard history service might crash when the connection between
the keyboard and the system is in a bad state.
* Fix race condition in clipboard history service
The clipboard history service callback appears to be called concurrently
leading to concurrent accesses to data and to concurrent calls to
'on_clipboard_history_change'. Access are now synchronized.
* Fix clipboard manager crash when device is locked
|
|
|
|
* Disable selection mode in text editors
Selection mode removes the space bar key (which is replaced by the Esc
key) and can be annoying in Emacs for example.
Text editor users probably have the `esc` key available.
* Refactor: Move EditorInfo related code to EditorConfig
Add the new EditorConfig class that handles configuration extracted from
the EditorInfo. It is accessible from the Config class for convenience.
This aims at reducing the length of already large classes and group the
code that was spread over several classes.
|
|
* Delete srcs/layouts/armenian_ph_am.xml
There is a phonetic layout which is used in old typewriters
* Amendments according to GOST 6431-90
* Russian traditional layout cyrl_jiuken.xml
* Create cyrl_yawerty.xml
Added ЯВЕРТЫ layout
* Update cyrl_jcuken_ru.xml
Typo fixed
* Added QZERTY layout for Italian and Latin
|
|
This function was used to migrate the representation of the emoji
history and needed a very large table.
This reduces the app size by 22KB.
|
|
Remove the `loc` prefix for important accent dead keys and add ê.
|
|
* refactor: Better printing for KeyValue in tests
* Fix parsing of escaped characters in macros
The parsing code was bugged with custom macros like `symbol:\abc` and
`symbol:\\abc`.
|
|
|
|
|
|
Missing from previous commit.
|