abouttreesummaryrefslogcommitdiff
path: root/srcs
AgeCommit message (Collapse)AuthorFilesLines
2024-01-20Light and dark themes for the launcher and settingsRetrogisusDEV2-13/+1
2024-01-15Allow hidding the keyboard switching keyJules Aguillon1-0/+3
The keyboard switching key is now selected by default in the Extra Keys option and can be deselected.
2024-01-15Always show the keyboard switching keyJules Aguillon2-10/+0
Android's shouldOfferSwitchingToNextInputMethod() method might return false when an other IME is installed, perhaps when the other IME doesn't specify android:supportsSwitchingToNextInputMethod="true".
2024-01-15Use switchToNextInputMethod instead of switchToPreviousInputMethodJules Aguillon1-1/+1
This is warranted by the API.
2024-01-15Refactor: Clearer names for CHANGE_METHOD* eventsJules Aguillon4-8/+8
The keys are not renamed to retain compatibility.
2024-01-13Refactor: Keyboard2View: Take layout id attrJules Aguillon2-15/+6
Removes EmojiBottomRow.
2024-01-13Refactor: New namespace for preference classesJules Aguillon15-19/+27
2024-01-10prefs: Show custom layout names if providedJules Aguillon3-9/+32
Show the name of custom layouts in the list if it's provided using the `name` attribute. This should make managing several custom layouts easier.
2024-01-10Fix crash on shift with empty keysJules Aguillon1-0/+2
Tapping shift might call `Utils.capitalize_string` on some symbols (notably custom keys), which crashes on empty string. This also happens on builtin layouts with `key1="\"`.
2024-01-09Revert "Remove the vibration settings"Jules Aguillon3-48/+18
This reverts commits ef03dfed5c802a855c4655204eee39a8769cfed7 and ff01678ba688778d67f824a0be56634974c1b0e8. The "vibration duration" slider is bought back. The "vibration enabled" option is replaced by "custom vibration", which switch between the system haptic feedback or the custom vibration. The slider is greyed when "custom vibration" is unchecked and is allowed to have a value of 0 to disable vibrations within the app. The intermediate values "light", "medium" and "strong" are removed and no migration of the setting is made.
2024-01-03launcher: Remove intro video when not supportedJules Aguillon1-2/+13
Previously, this would trigger an error popup and make the activity unresponsive.
2024-01-01Remove unsupported API readAllBytesJules Aguillon2-2/+15
2023-12-31Add an introduction video in the launcher activityJules Aguillon1-0/+23
A video is more intuitive than a written description and doesn't need translations.
2023-12-30Bring the voice IME chooser with a long pressJules Aguillon5-0/+20
2023-12-30Voice IME chooser popupJules Aguillon5-35/+182
Bring a popup for choosing the voice IME when the voice key is pressed for the first time or the list of voice IMEs installed on the device change. A preference stores the last selected IME and the last seen list of IMEs.
2023-12-26Separate arabic layouts with hindu or arabic numeralsJules Aguillon1-2/+2
This reverts the Tusinian layout (1af4e45) and instead introduce a new arabic PC layout with arabic numbers. Layouts are renamed: - arab_pc => arab_pc_hindu - arab_pc_tn => arab_pc
2023-12-26Add layout attribute 'numpad_script'Jules Aguillon4-18/+27
This new attribute is now used instead of 'script' for modifying the numpad according to the selected layout's script. If not provided, it defaults to the value of 'script'.
2023-12-21Fix the number row showing up on top of pinentryJules Aguillon1-0/+2
This wasn't intended and was caused by the "current_layout_unmodified" optimisation.
2023-12-17Launcher activity: Add "Select keyboard" buttonRetrogisusDEV1-0/+8
2023-12-17prefs: Use QWERTY (US) as the default custom layoutJules Aguillon1-1/+17
This layout definition contains some documentation and is a better default than no text.
2023-12-17Improve layout parsing errorsJules Aguillon1-4/+11
Add location information to all error and improve "expected tag" errors.
2023-12-17prefs: Report errors while editing custom layoutsJules Aguillon3-3/+71
Errors are obtained by running the parser, validation is throttle to when the user stops editing for a second.
2023-12-10prefs: Render line numbers in custom layout input boxJules Aguillon2-21/+101
Line numbers will help reporting errors. Also, disable line breaking to improve readability.
2023-11-25Use Gradle (#452)deftkHD2-1/+0
2023-11-19Separately persisted current layout in landscape modeJules Aguillon2-8/+20
Remember the selected layout in portrait and landscape mode independently. This allows to define a layout specific to landscape without having to switch manually.
2023-11-19Persist current selected layoutJules Aguillon2-11/+20
2023-11-19Add Desert and Jungle themesRetrogisusDEV1-0/+2
2023-10-28Add left/right slider to the emoji paneJules Aguillon2-29/+14
This entirely changes the implementation of the bottom row in the emoji pane.
2023-10-28Make special font glyphs pass lintingdeftk29-29/+35
2023-10-21Add '₽' to Russian layout and to the Fn layerJules Aguillon1-2/+3
Other currencies are moved on the Fn layer for consistency with the compose key.
2023-10-20Add page_up, page_down, home, end to extra keysJules Aguillon2-0/+12
The new keys are placed on the corner of the arrow keys. Key descriptions are added. They are removed from the Fn layer to avoid showing up twice.
2023-09-24Preferred position for locale `extra_keys`Jules Aguillon2-13/+54
`method.xml` is now able to specify a preferred position for each extra keys in term of an other key to which it should be placed nearby. It's implemented for French as an example.
2023-09-15Refactor: Preferred positions for extra keysJules Aguillon5-48/+120
The new PreferredPos class represents where an extra key should be placed Currently used to place keys at the same positions they were placed before.
2023-09-10Refactor: Compute key positions in layoutsJules Aguillon3-22/+51
`KeyboardData.getKeys()` now returns a map of the keys present on the layout to their position. Positions are the row, column and swipe direction. The computed map is cached in the KeyboardData object as it might be accessed later by `findKeyWithValue`, which now do less work.
2023-09-09Capitalize the first letter of custom keysJules Aguillon2-1/+14
This is more useful than turning the entire string full caps.
2023-09-09Update auto-capitalisation state when input startsJules Aguillon1-3/+37
The initial capitalisation state given by the editor (`info.initialCapsMode`) is always 0 in many editors. For some text input types, update the state when typing starts, disregarding the value given by `info.initialCapsMode`.
2023-09-03Per-script numpadJules Aguillon3-11/+127
The numeric layout and the optional right hand side numpad are modified to show the digits belonging to the script used in the current layout. The numpads are still defined as it was before. The digits are changed in `modify_numpad` if needed.
2023-09-03Consistent layout for optional numpadJules Aguillon2-2/+2
Modify the optional right hand numpad the same way as the numeric layout.
2023-09-03Remove unused editing keys from the settingsJules Aguillon2-7/+3
These keys don't seem to have a purpose, which is confusing.
2023-08-26Fix regression on Ctrl on space bar sliderJules Aguillon1-2/+8
This makes Ctrl+move_cursor the same as before 5123ce5.
2023-08-26Disable automatically Shift when pressing CtrlJules Aguillon5-7/+40
Automatic capitalisation might interferes with keyboard shortcuts.
2023-08-20Add missing combining accentsJules Aguillon1-27/+34
Implement the combinations that were previously not possible and were commented out. Also remove `apply_dead_char` and `apply_combining` and make all dead-keys definitions uniform.
2023-08-20Refactor: Allow combining diacritics modifiersJules Aguillon2-328/+327
Change the API of `KeyModifier.Map_char` to allow returning a string instead of a single 16 bits char. This allows to return combining diacritics. This also gets rid of `apply_map_or_dead_char`, maps can have their own fallback.
2023-08-18Add Bitcoin symbol to Fn+b (#434)Eluc1-0/+1
2023-08-17Fix slider movements changing input focusJules Aguillon2-32/+104
The slider was repeatedly sending arrow keys, which change the focused input when the end of a text box is hit. A new key is added that implements cursor movements using the `InputConnection` API. The new keys are defined as `KeyValue.Editing`, which are no longer only context menu actions. The behavior when a selection has started is changed. The selection is modified instead of cleared even when shift isn't pressed or the selection would become empty. Fallbacks to sending arrow keys for editors that do not support the API, like Termux.
2023-08-16Fix inconsistent initial spacing between keysJules Aguillon1-1/+1
Settings defined with `get_dip_pref` had a wrong default value on first launch. The "right" default value was used after the shared preferences are populated.
2023-08-16Migrate layouts preferencesJules Aguillon6-3/+82
The new `layouts` preference replaces three previous preferences: layout second_layout custom_layout Add a preference migration function, which first migration is to migrate layouts into the new preference. The migration must also be called from the SettingsActivity as it might use a different preference store due to the boot-aware preference copy.
2023-08-16LayoutsPreference: Remove cross button for custom layoutsJules Aguillon2-12/+30
Remove the cross button on the right of custom layouts to reduce accidental removal. A remove button is added in the dialog for modifying the layout.
2023-08-16LayoutsPreference: Modify custom layoutJules Aguillon2-7/+25
Clicking on a custom layout opens a dialog for modifying the layout description instead of the dialog for selecting a layout.
2023-08-16Remove unused class LayoutListPreferenceJules Aguillon1-25/+0
This class is not used since the introduction of [LayoutsPreference].