Commit Graph

886 Commits

Author SHA1 Message Date
Validbit
e053d4b20c
Update Czech strings.xml (#693) 2024-07-07 14:20:13 +02:00
polyctena
c1e19a21d0
Update values-de/strings.xml (#694) 2024-07-07 14:19:33 +02:00
Jules Aguillon
3164215879 Add locale_extra_keys keyboard attribute
This attribute can be used to disable adding the extra keys from
method.xml.
2024-07-06 23:09:51 +02:00
Jules Aguillon
99367a9ec6 Update French translations 2024-07-06 22:42:56 +02:00
TadaCZE
cd0f61da74
Add support for Android 12+ dynamic colors (#647) 2024-07-06 22:32:01 +02:00
Jules Aguillon
ce57b5a4a2 Make the emoji and clipboard bottom rows consistent 2024-07-06 22:19:34 +02:00
Jules Aguillon
bf3b9c374e
Clipboard pane (#681)
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-07-06 22:16:37 +02:00
Jules Aguillon
6021a0b83c Fix crash with narrow layouts
The PreferredPos mechanism cause an out of bound access since 773147a.
2024-07-06 13:34:08 +02:00
solokot
89d0e6c063
Update Russian translation (#689) 2024-07-06 11:15:49 +02:00
Jules Aguillon
a2eea76e70 doc: Clarify the possible key values 2024-07-03 00:35:25 +02:00
Sergiy Stupar
2cb5e67d1f
Update Ukrainian translation (#682) 2024-06-30 14:02:56 +02:00
Jules Aguillon
3a371c354b doc: Correct mentions of gestures 2024-06-30 00:46:25 +02:00
Jules Aguillon
bdb080657d Option to disable key repeat
Internally "key repeat" is reword into "long press" when the same
mechanism was used for both features.

The constraint that 'timeoutWhat' must be set to '-1' when no message is
expected has been lifted to simplify the code.
2024-06-30 00:24:39 +02:00
Jules Aguillon
bf33230c26 settings: Reword "Key repeat" into "Long press"
The long press timeout is used for long press on keys that do not
repeat, for example the keyboard switching key.

This must be detached from the key repeat as it might be disableable in
the future and more keys might be longpressable.
2024-06-30 00:06:17 +02:00
Jules Aguillon
45fc18576e Validate more fields in custom layouts
This adds some errors:

- 'script' or 'numpad_script' is set an empty string.
- Multiple '<modmap>' elements.
- 'shift', 'width' and 'height' on every nodes that support them are
  clamped to a valid value.
2024-06-29 22:48:47 +02:00
Jules Aguillon
b432f1d773 Set preferred position for Norwegian extra keys
This should make the QWERTY (US) layout look the same to Norwegian users
as the current latn_qwerty_no layout, allowing it to be changed.
2024-06-24 00:14:26 +02:00
Jules Aguillon
66cf643574 Remove 'loc' keys from latn_qwerty_us
Use the "preferred position" feature to place the removed keys
approximately where they were.
2024-06-24 00:07:56 +02:00
Spike
ada3b5f3b7
doc: Where to put <modmap> (#666)
* Modmap: Where to put it; cancelling built-in mods (#665)

* Correct per Julow: not only Euro layouts

* Post-edit: Doesn't depend on "built-in" layout

* P-vs-L: Change "That is to say", sentence is not a restatement

* Discussion with Julow: Swipe graphic to HTML; at most one modmap

* Swipes: Center tables
2024-06-22 23:27:29 +02:00
Jules Aguillon
6405e5e8be Don't stop keyrepeat after a circle gesture
This was inconsistent with the anticircle and roundtrip gestures.
2024-06-22 23:10:43 +02:00
Sergiy Stupar
460f25317f
Update Ukrainian translation (#670) 2024-06-16 22:39:44 +02:00
alotbsol555
81d1a1a831
Update German translations (#667) 2024-06-16 22:39:26 +02:00
Jules Aguillon
c01b289eaf Don't change input view when configuration changes
This doesn't seem necessary and won't play well with eventual keys that
change the configuration.
2024-06-16 22:20:14 +02:00
Jules Aguillon
a7b79022e5 Launcher activity: Don't consume events in text field
Allow the keybindings to have an effect in the "Try here" text field.
2024-06-16 22:19:27 +02:00
Jules Aguillon
bad2e8c237 Refactor: Remove unecessary view in emoji pane 2024-06-16 22:19:20 +02:00
solokot
b7be19dc1f
Update Russian translation (#656) 2024-06-11 00:54:19 +02:00
Jules Aguillon
b5a96dc4dc Option to tweak or disable the circle gesture 2024-06-09 14:25:19 +02:00
Jules Aguillon
944ed32a37 Use preferred dir when placing a key next to an other 2024-06-09 14:03:02 +02:00
Jules Aguillon
773147ab9c Automatic placement of f11/f12 placeholders 2024-06-09 13:55:27 +02:00
Jules Aguillon
52805d9745 Allow to remove keys Tab and Esc 2024-06-09 13:18:25 +02:00
Jules Aguillon
8d793da6b6 Refactor: Remove the KeyModifier cache 2024-06-09 12:49:23 +02:00
Jules Aguillon
91ace060bc Move diacritics mapping to the compose state machine
This replaces the switch cases in KeyModifier.java with JSON files, one
for each diacritic.

The number of states increases from 6727 to 7377. The apk size slightly
decreases (around 3kb).
2024-06-09 11:53:17 +02:00
Jules Aguillon
ecac6a77f8 compose: Compile several starting states
Sequences from several files are no longer merged but compiled to
separate starting states.

The plan is to use that to represent the diacritics.
2024-06-09 11:52:17 +02:00
Jules Aguillon
a886f6eede compose: Fix misbehaving due to encoding errors
Encoding errors in the compose data compiler due to:
- 'UTF-16' adds a BOM, use 'UTF-16-LE' instead
- 'str.encode' returns a byte array, use 'array' to have a 16-bit char
  array.
2024-06-09 10:35:38 +02:00
Jules Aguillon
1197ce36b4 Update check_layout.output 2024-06-08 22:47:55 +02:00
Spike
8b99c04a21
Flesh out custom layout doc (#651) 2024-06-08 22:22:46 +02:00
Jules Aguillon
6ac973cfda Don't cap indication length
This was inadvertently changed when the anti-circle gesture was
introduced, which use the same rendering logic.
2024-06-06 00:30:22 +02:00
Jules Aguillon
c5e9e3ff5c latn_qwerty_pl: Consistent placement for ó
Co-authored-by: @ZX-Commodore-ST
2024-06-05 23:45:03 +02:00
Jules Aguillon
cf1aaa3bdf Add compose sequences for Greek, Cyrillic, Hebrew and more
Parse key names from keysymdef.h, which is distributed with Xorg. The
Greek, Cyrillic and Hebrew sequences referenced these keysyms.

This increases the number of sequences from 2043 to 2668.
2024-05-29 15:56:08 +02:00
Jules Aguillon
39b3f50aa3 Allow compose sequence ending with more symbols
Change the compose state machine definition to allow final states that
are wider than 16-bits.

This increases the number of sequences that can be used from
en_US_UTF_8_Compose.pre from 2013 to 2043 (of 3201).
2024-05-29 15:02:08 +02:00
Jules Aguillon
f7f1d85f80 Release 1.28.0 2024-05-29 14:08:27 +02:00
Jules Aguillon
5d2eb35574 Increase target SDK to 34 2024-05-29 14:04:14 +02:00
Jules Aguillon
93d58571cc
Fix overflow due to navigation on the right and cutouts (#641)
Take display cutouts and navigation bars when computing the keyboard
width on SDK >= 30.
2024-05-29 12:00:41 +02:00
Jules Aguillon
1a290f96f2
Configure anticircle gesture per-key (#644)
This adds the new 'anticircle' attribute to layouts '<key>' elements
that configure the key to send when doing a anti-clockwise circle
gesture on it.

Labels are drawn the same way as indication.

Updated docs.
2024-05-29 11:59:54 +02:00
Jules Aguillon
304375268d Fix uninitialized bottom_row when editing custom layout
This happen when opening the settings from the launcher activity without
ever opening the keyboard.

To remove this bug entirely, the KeyboardData.init method is removed,
the pieces needing initialization are now cached in Config.
2024-05-29 11:56:26 +02:00
Jules Aguillon
9d89297c15 Fix off-by-one error in 1-row layouts 2024-05-27 23:59:09 +02:00
Jules Aguillon
46f3b41393 Support the nnbsp character 2024-05-26 00:49:15 +02:00
Jules Aguillon
bea2e6cd1f Update check_layout.output
Was outdated since previous commit
2024-05-26 00:20:36 +02:00
Jules Aguillon
abf36e5d56 Add missing characters to hang_dubeolsik_kr 2024-05-25 23:56:35 +02:00
JapanYoshi
c9b6380ed0
Add custom layout documentation in doc/ (#643) 2024-05-25 22:22:42 +02:00
Jules Aguillon
4906f8105f
Circle and round trip gestures (#640)
This implements clockwise/anticlockwise circle and round trip gestures
inspired by Messagease.

The circle gestures start after a small threshold to avoid making the
regular swipe too hard to aim.

The gestures do:

- circle: The center symbol with Shift applied, with a fallback on Fn
- round trip: Same as the circle gesture but applied to a side symbol
- anticlockwise circle: Nothing currently. It is intended to be made
  configurable per-layout in the future.

The new Gesture class keeps track of what the pointer is doing while it moves
on a key. It replaces the 'selected_direction' integer.
2024-05-25 21:19:44 +02:00