abouttreesummaryrefslogcommitdiff
path: root/res/layout
AgeCommit message (Collapse)AuthorFilesLines
7 daysEmoji suggestion (#1235)Jules Aguillon1-3/+4
Suggest an emoji in addition to the 3 suggested words when the current word matches an alias in the emoji dictionary, if available.
8 daysReduce the size of suggestions to fit (#1248)Jules Aguillon1-4/+4
The font size of the suggested words is reduced if the word would otherwise split on two lines.
2026-04-10Dictionary activity: Status message when the keyboard is not enabled (#1228)Jules Aguillon1-0/+2
This shows a reason why the list is empty and removes confusion.
2026-02-02Spell checking (#1137)Jules Aguillon4-1/+15
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.
2026-02-01Candidates view improvements (#1168)Jules Aguillon2-2/+7
* 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.
2025-12-28Candidates viewJules Aguillon1-1/+8
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.
2025-12-22Fix various linting issues (#1146)Jules Aguillon2-5/+5
2024-12-26Proper support for Android 15 edge-to-edge (#848)Jules Aguillon1-1/+1
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.
2024-12-15launcher: Show output of animated gestureJules Aguillon1-3/+12
2024-12-15launcher: Circle gesture animationJules Aguillon1-0/+1
2024-12-14launcher: Round-trip gesture animationJules Aguillon1-0/+1
2024-11-18launcher: Animated vector describing swipe gestureJules Aguillon1-1/+1
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.
2024-07-06Clipboard pane (#681)Jules Aguillon3-0/+28
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.
2024-06-16Refactor: Remove unecessary view in emoji paneJules Aguillon1-3/+1
2024-02-10Fix various linter warningsJules Aguillon2-3/+3
Among others: - Use `apply` instead of `commit` when saving shared preferences. - Avoid inlined Api - Remove unused resources
2024-01-13Refactor: Keyboard2View: Take layout id attrJules Aguillon1-1/+1
Removes EmojiBottomRow.
2023-12-31Add an introduction video in the launcher activityJules Aguillon1-9/+12
A video is more intuitive than a written description and doesn't need translations.
2023-12-17Launcher activity: Add "Select keyboard" buttonRetrogisusDEV1-0/+1
2023-10-28Add left/right slider to the emoji paneJules Aguillon1-4/+1
This entirely changes the implementation of the bottom row in the emoji pane.
2023-08-16CustomExtraKeysPreference: Reusable edit text layoutJules Aguillon1-1/+1
This layout is generically used by CustomExtraKeysPreference and LayoutsPreference.
2023-08-04LauncherActivity: Visible, clickable and untranslatable linkJules Aguillon1-1/+2
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.
2023-07-30Allow more than 2 layoutsJules Aguillon1-0/+4
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.
2023-07-29Refactor: Split out ListGroupPreferenceJules Aguillon4-4/+7
Split out the implementation of a string-list preference from CustomExtraKeysPreference. Allows to share the implementation with future preferences.
2023-07-19Add custom extra keys preferenceJules Aguillon3-0/+12
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.
2023-07-19Refactor: Use a PreferenceCategory for extra keysJules Aguillon1-5/+0
This removes the need for a layout definition and adds a title before the prefs. It's a prerequise for the custom keys preference.
2023-07-09Refactor: Don't define extra keys in xmlJules Aguillon1-0/+5
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.
2023-04-02Launcher activity: Input boxJules Aguillon1-4/+6
For trying the keyboard without having to mess with an other app.
2023-03-28Add a launchable explanatory activityJules Aguillon1-0/+6
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.
2022-12-11Improve emoji pane layoutJules Aguillon1-1/+1
The measurement function was wrong in some situations. Set a width for columns and properly configure the GridView.
2021-12-30Add themesJules Aguillon2-2/+2
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
2021-12-28Use the themes abstractionJules Aguillon2-3/+3
Themes replace 'colors.xml' and soon will replace 'dimens.xml'.
2021-12-19Auto-format Java and XML filesJules Aguillon2-40/+10
Use xmllint. Re-indent Java files using spaces.
2021-01-17Update the list of emojisJules Aguillon1-44/+2
Take the list from https://unicode.org/Public/emoji/13.1/emoji-test.txt Also change the list of groups, from the same source.
2015-10-28Fix some bugs + Try to show a preview popupjaguillo1-1/+0
2015-10-27Improve init of emoji panejaguillo1-37/+4
2015-10-27Fix crash + Fix emoji type buttonsjaguillo1-40/+11
2015-10-26More emoji category + Fix last emoji used savingjaguillo1-13/+39
2015-10-26Last used emojijaguillo1-0/+9
2015-10-24Emoji panejaguillo1-2/+103
2015-10-23Start with emojisjaguillo2-0/+7
2015-08-04logcat.pyjuloo1-0/+1
2015-08-02Nothingjuloo1-4/+0
2015-07-30Initial commitjuloo1-0/+8