abouttreesummaryrefslogcommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-02-04Create layout arabic-hamvaj-tly (#542)vedamanavi3-0/+49
2024-02-04Workaround cursor slider bug in AcodeJules Aguillon1-3/+15
Moving the cursor with setSelection has no effect on Acode, for which the fallback must be used.
2024-01-31Add language support for Talysh New Latin (#534)vedamanavi1-0/+1
2024-01-28Add layout QWERTY (Talysh New Latin) (#529)vedamanavi3-0/+51
2024-01-28Redefined the key margin options in percentJules Aguillon3-15/+16
Define the key margin options relative to the baseline dimensions of keys. This removes the doubling of the horizontal margin in landscape mode.
2024-01-26Send down event for modifiers on timeJules Aguillon4-42/+151
This allows to use modifiers in combination with other inputs like a mouse click, for example under termux-x11. The key down event and notification about modifiers changing are sent down to KeyEventHandler. A mutable state remember for which modifier down events have been sent. When pressing down a modifier with one finger and typing with the other, it might appear that the modifier is released after the first time an other key is pressed and then pressed and released for the following keys. This prevents unintentionally type two modified keys instead of one when the second key is pressed while the other is not yet released.
2024-01-22check_layout: Warn against whitespaces and "loc"Jules Aguillon2-2/+6
2024-01-21Add Russian vowels combined with the acute accentJules Aguillon1-0/+2
2024-01-21Move layout definitions into srcs/layoutsJules Aguillon49-27/+26
This separates the layout definitions from the special layouts (bottom_row, greekmath) and other unrelated files (method, settings). This is also a more intuitive location for layouts and make the resource directory easier to navigate. Under the hood, layouts are copied back into build/generated-resources/xml.
2024-01-21Update pt-br translation (#527)marciozomb131-10/+10
Update translation pt-br
2024-01-20Light and dark themes for the launcher and settingsRetrogisusDEV6-15/+12
2024-01-18Add <queries> element for detecting IMEs (#526)abb1281-0/+7
To detect voice IMEs, Unexpected Keyboard calls InputMethodManager.getEnabledInputMethodList Internally, this method eventually calls a method that returns a filtered list of packages that may not include the installed voice IME, and thus Unexpected Keyboard unexpectedly claims no voice input is installed because it can't see it. The fix is to explicitly state in the manifest that we want to query for other IMEs, based on https://developer.android.com/training/package-visibility/declaring This is not an issue with Google's voice input or other preinstalled voice inputs because they usually have android:forceQueryable=true, but this is an issue with third-party voice inputs such as FUTO Voice Input. Launching the voice input app after activating the keyboard also usually makes the package visible, so a consistent way to replicate this issue on modern Android is to reboot the device and try triggering voice input from the keyboard
2024-01-18Add Ukrainian translation (#525)Sergiy Stupar1-0/+104
2024-01-15Allow hidding the keyboard switching keyJules Aguillon20-3/+22
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 Aguillon3-16/+7
Removes EmojiBottomRow.
2024-01-13Refactor: New namespace for preference classesJules Aguillon16-38/+46
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-10check_layout: Stronger bottom row key checkJules Aguillon2-13/+23
2024-01-10CI: Fix debug build due to missing release keystoreJules Aguillon1-4/+6
2024-01-10Fix layouts containing empty keysJules Aguillon5-8/+8
This results in a key being the empty string and do not trigger an error: key1="\" Layouts are fixed and check_layout now checks for this case.
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 Aguillon21-175/+52
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-08gradle: Enforce release build is signedJules Aguillon1-11/+7
2024-01-08gradle: Name outputs after the application IDJules Aguillon1-0/+7
2024-01-07Update Spanish translations (#517)Diego Puma1-5/+5
2024-01-03Release 1.25.0 (37)Jules Aguillon4-3/+12
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-31README: Display the intro videoJules Aguillon1-3/+5
2023-12-31Add an introduction video in the launcher activityJules Aguillon3-9/+35
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 Aguillon8-27/+33
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-21Add Tunisian layoutJules Aguillon2-1/+46
It is a copy of the 'arab_pc' layout with arabic digits. Also, fix the default layout for arabic.
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-20Update strings.xml (#505)polyctena1-8/+8
2023-12-20Update strings.xml (cz_CS) (#506)Validbit1-11/+11
2023-12-18Update Turkish translations (#501)11-3/+3
Turkish translate update
2023-12-18Update Polish translations (#502)Chasm Solacer1-8/+8
2023-12-18Update Latvian translations (#503)Edgars1-10/+10
2023-12-17Update French translationJules Aguillon1-20/+20
2023-12-17Launcher activity: Add "Select keyboard" buttonRetrogisusDEV18-0/+25
2023-12-17prefs: Use QWERTY (US) as the default custom layoutJules Aguillon2-2/+28
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.