abouttreesummaryrefslogcommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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.
2023-11-25shell.nix: Update dependencies and add GradleJules Aguillon2-10/+26
Update OpenJDK to version 17, Android build tools to 33.0.1 and platform to 33. These are required to build with Gradle. Add Gradle to the environment, which must be wrapped to fix a permissions issue. Setting `GRADLE_OPTS` has no effect as it seems not to be passed down to the daemon.
2023-11-25Use Gradle (#452)deftkHD31-228/+552
2023-11-25Make check_layout.py independent from dir structuredeftk2-51/+51
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-19Update translationsJules Aguillon15-0/+30
Was missing from the previous commit.
2023-11-19Add Desert and Jungle themesRetrogisusDEV4-0/+46
2023-11-13Update Spanish translations (#489)Diego Puma1-52/+52
2023-11-13method.xml: Add ArmenianJules Aguillon1-0/+1
2023-11-13Update check_layout.outputJules Aguillon1-11/+9
2023-11-13Add Armenian layout (#490)Rafael Grigorian2-0/+54