| 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.
|
|
This shows a reason why the list is empty and removes confusion.
|
|
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.
|
|
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.
|
|
|
|
The keyboard background now extends under the system bars and display
cutout on Android 15 but the keys do not.
The back and IME switching buttons that appear in the navigation bar require
special care to not overlap with the keyboard.
The launcher and settings activity are also fixed.
|
|
|
|
|
|
|
|
Replace the short video with an animated vector image that shows the
swipe gesture.
This is much lighter and reliable than the mp4 video, which failed to
play on many devices.
Source for the image of the key is in inkscape SVG format in srcs/res
and is converted to an android drawable when needed. The swipe animation
is hand-written.
|
|
This adds the clipboard pane, which allows to save an arbitrary number of
clipboards and to paste them later. The key can be disabled in settings.
Checking the "Recently copied text" checkbox will cause the keyboard to keep a
temporary history of copied text. This history can only contain 3 elements
which expire after 5 minutes.
If this is unchecked, no history is collected.
History entries can be pinned into the persisted list of pins.
|
|
|
|
Among others:
- Use `apply` instead of `commit` when saving shared preferences.
- Avoid inlined Api
- Remove unused resources
|
|
Removes EmojiBottomRow.
|
|
A video is more intuitive than a written description and doesn't need
translations.
|
|
|
|
This entirely changes the implementation of the bottom row in the emoji
pane.
|
|
This layout is generically used by CustomExtraKeysPreference and
LayoutsPreference.
|
|
The link to Github was not clickable and couldn't easily be made so in
its current form.
Render the link in its own paragraph and do not hide the URL.
|
|
The two layout selection options are replaced by a ListGroupPreference
that allow to enter an arbitrary amount of layouts.
The "switch_second" and "switch_second_back" keys are replaced by
"switch_forward" and "switch_backward", which allow to cycle through the
selected layouts in two directions.
Layouts are changed to place these two key on the space bar.
The backward key is not shown if there's only two layouts.
|
|
Split out the implementation of a string-list preference from
CustomExtraKeysPreference.
Allows to share the implementation with future preferences.
|
|
This is a new section in the extra keys option that allows to enter
arbitrary strings which are then added to the keyboard.
A new string is needed for the title of the section, Android's icons and
strings are used as much as possible to avoid adding more strings.
Keys are stored in the preferences as a JSON array of strings.
|
|
This removes the need for a layout definition and adds a title before
the prefs.
It's a prerequise for the custom keys preference.
|
|
The current approach is hard to maintain, for example the last key
"autofill" was not displayed.
This implements a PreferenceGroup that contains the check boxes for
every extra keys without involving listing the preferences in
settings.xml.
A custom layout is used to remove the 'title' text view.
The list of extra keys is moved into the new class.
'ExtraKeyCheckBoxPreference' becomes a nested class.
|
|
For trying the keyboard without having to mess with an other app.
|
|
This activity points to the system settings page for enabling input
methods. This is purely a shortcut but is expected by many users.
It could be made more useful in the future or hidden whenever the
keyboard is enabled.
|
|
The measurement function was wrong in some situations. Set a width for
columns and properly configure the GridView.
|
|
Add a "Theme" option to choose between a dark and light theme.
The light theme uses the colors of the dark theme with the luminance
inversed.
The reloading after a configuration change is changed slightly:
- Special handling is needed when the Theme is changed (recreate the views)
- The default implementation of 'onConfigurationChanged' is used
Which triggers more refresh (but don't recreate the views)
- 'onCreateInputView' is no longer needed
|
|
Themes replace 'colors.xml' and soon will replace 'dimens.xml'.
|
|
Use xmllint.
Re-indent Java files using spaces.
|
|
Take the list from https://unicode.org/Public/emoji/13.1/emoji-test.txt
Also change the list of groups, from the same source.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|