Commit Graph

1107 Commits

Author SHA1 Message Date
d1aa59768d Create layout arabic-hamvaj-tly (#542) 2024-02-04 23:18:33 +01:00
2c52e94e0b Workaround cursor slider bug in Acode
Moving the cursor with setSelection has no effect on Acode, for which
the fallback must be used.
2024-02-04 00:29:07 +01:00
3adf95a4c9 Add language support for Talysh New Latin (#534) 2024-01-31 01:06:47 +01:00
44f39059e4 Add layout QWERTY (Talysh New Latin) (#529) 2024-01-28 23:49:27 +01:00
bbc6226839 Redefined the key margin options in percent
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-28 19:38:29 +01:00
c5f2c0b727 Send down event for modifiers on time
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-26 00:17:51 +01:00
fb27f8d36f check_layout: Warn against whitespaces and "loc" 2024-01-22 20:55:36 +01:00
5beacf32b7 Add Russian vowels combined with the acute accent 2024-01-21 19:47:03 +01:00
ad7314a016 Move layout definitions into srcs/layouts
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-21 16:34:49 +01:00
bef29da3de Update pt-br translation (#527)
Update translation pt-br
2024-01-21 16:10:26 +01:00
a55506e607 Light and dark themes for the launcher and settings 2024-01-20 22:37:51 +01:00
b3dcd61c28 Add <queries> element for detecting IMEs (#526)
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-18 23:42:29 +01:00
9257bf7392 Add Ukrainian translation (#525) 2024-01-18 22:44:22 +01:00
95bd9312a7 Allow hidding the keyboard switching key
The keyboard switching key is now selected by default in the Extra Keys
option and can be deselected.
2024-01-15 23:26:40 +01:00
0a86f9ab01 Always show the keyboard switching key
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-15 23:15:16 +01:00
70d777253c Use switchToNextInputMethod instead of switchToPreviousInputMethod
This is warranted by the API.
2024-01-15 22:10:11 +01:00
d7fa5ffa9a Refactor: Clearer names for CHANGE_METHOD* events
The keys are not renamed to retain compatibility.
2024-01-15 22:09:15 +01:00
b114c78bf1 Refactor: Keyboard2View: Take layout id attr
Removes EmojiBottomRow.
2024-01-13 23:22:26 +01:00
eddf9c6c11 Refactor: New namespace for preference classes 2024-01-13 20:59:05 +01:00
148f3dfc05 prefs: Show custom layout names if provided
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-10 23:39:19 +01:00
6725d3057b check_layout: Stronger bottom row key check 2024-01-10 23:00:40 +01:00
cf9fd3a0db CI: Fix debug build due to missing release keystore 2024-01-10 00:34:19 +01:00
329a35e7d3 Fix layouts containing empty keys
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-10 00:28:21 +01:00
b319356a08 Fix crash on shift with empty keys
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-10 00:17:09 +01:00
73267d68fb Revert "Remove the vibration settings"
This reverts commits ef03dfed5c and
ff01678ba6.

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-09 00:43:28 +01:00
3f2f3177da gradle: Enforce release build is signed 2024-01-08 22:49:59 +01:00
e26e1d112c gradle: Name outputs after the application ID 2024-01-08 22:47:21 +01:00
0005eb2dd5 Update Spanish translations (#517) 2024-01-07 02:18:40 +01:00
8b2c7d9337 Release 1.25.0 (37) 1.25.0 2024-01-03 01:07:22 +01:00
409362ddb4 launcher: Remove intro video when not supported
Previously, this would trigger an error popup and make the activity
unresponsive.
2024-01-03 00:48:26 +01:00
c524caa6f1 Remove unsupported API readAllBytes 2024-01-01 21:04:54 +01:00
7caf60c93b README: Display the intro video 2023-12-31 20:19:58 +01:00
49a6a30773 Add an introduction video in the launcher activity
A video is more intuitive than a written description and doesn't need
translations.
2023-12-31 13:18:15 +01:00
4a5a125aea Bring the voice IME chooser with a long press 2023-12-30 01:24:21 +01:00
51a41ec90a Voice IME chooser popup
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-30 00:56:55 +01:00
7e7a5e4425 Separate arabic layouts with hindu or arabic numerals
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-26 17:16:29 +01:00
9ff8179d49 Add layout attribute 'numpad_script'
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-26 17:05:51 +01:00
1af4e45117 Add Tunisian layout
It is a copy of the 'arab_pc' layout with arabic digits.
Also, fix the default layout for arabic.
2023-12-21 21:45:56 +01:00
2db4ae3730 Fix the number row showing up on top of pinentry
This wasn't intended and was caused by the "current_layout_unmodified"
optimisation.
2023-12-21 20:59:30 +01:00
2aecbca9ac Update strings.xml (#505) 2023-12-20 21:27:19 +01:00
dce7e2b9d9 Update strings.xml (cz_CS) (#506) 2023-12-20 21:26:46 +01:00
1
7c12aa610c Update Turkish translations (#501)
Turkish translate update
2023-12-18 19:38:06 +01:00
294ebee6f1 Update Polish translations (#502) 2023-12-18 19:35:56 +01:00
bd1afd2c3c Update Latvian translations (#503) 2023-12-18 19:34:15 +01:00
44f6908411 Update French translation 2023-12-17 20:25:43 +01:00
df04eae85f Launcher activity: Add "Select keyboard" button 2023-12-17 20:10:39 +01:00
d7c230e173 prefs: Use QWERTY (US) as the default custom layout
This layout definition contains some documentation and is a better
default than no text.
2023-12-17 12:41:19 +01:00
478d8082f4 Improve layout parsing errors
Add location information to all error and improve "expected tag" errors.
2023-12-17 12:12:23 +01:00
7af6adcf11 prefs: Report errors while editing custom layouts
Errors are obtained by running the parser, validation is throttle to
when the user stops editing for a second.
2023-12-17 11:58:41 +01:00
dd327cc812 prefs: Render line numbers in custom layout input box
Line numbers will help reporting errors. Also, disable line breaking to
improve readability.
2023-12-10 19:44:50 +01:00