Commit Graph

669 Commits

Author SHA1 Message Date
Jules Aguillon
40498e7b4c Refactor: Allow combining diacritics modifiers
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-20 00:44:22 +02:00
Jules Aguillon
cd5ca56226 Release 1.24.0 (36) 2023-08-18 12:29:17 +02:00
Shareef101
491e72f247
Add urdu phonetic layout (#413) 2023-08-18 12:20:41 +02:00
Dimethylebutane
c3a5dc63f2
Added french bépo layout (adapted) (#402) 2023-08-18 12:15:43 +02:00
Eluc
6cb6f2541b
Add Bitcoin symbol to Fn+b (#434) 2023-08-18 12:14:20 +02:00
Jules Aguillon
5123ce5417 Fix slider movements changing input focus
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-17 12:47:44 +02:00
Jules Aguillon
2dc0ce066d Fix inconsistent initial spacing between keys
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-16 18:25:20 +02:00
Eluc
ab05d8314b
Create latn_qwertz_fr_CH.xml (#390)
Adapted from qwertz DE to match qwertz fr_CH layout.

Added all missing characters with accents needed in French while leaving the most common Swiss German characters as it is on the Swiss layout PC keyboard.
Re-organized some special characters to be in a similar position than the PC layout.

* Add locale fr-CH
2023-08-16 16:14:38 +02:00
Validbit
405e63d5c2
Move voice input key (#433)
Move the voice input key to the top-left corner of the return key to reduce accidentally entering voice input, which is disrupting.
2023-08-16 12:27:00 +02:00
Jules Aguillon
5822f98bbb Migrate layouts preferences
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-16 12:21:40 +02:00
Jules Aguillon
613aa283bd LayoutsPreference: Remove cross button for custom layouts
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-16 12:21:38 +02:00
Jules Aguillon
ddceb69d4e LayoutsPreference: Modify custom layout
Clicking on a custom layout opens a dialog for modifying the layout
description instead of the dialog for selecting a layout.
2023-08-16 12:21:25 +02:00
Jules Aguillon
4584e8289b Remove unused class LayoutListPreference
This class is not used since the introduction of [LayoutsPreference].
2023-08-16 12:21:25 +02:00
Jules Aguillon
febc23776f ListGroupPreference: Fix change items
[Preference.onClick] is apparently not called on [Item]s, though it is
on [AddButton].

Workaround this by listening on click events on the view.
2023-08-16 12:21:25 +02:00
Jules Aguillon
500f4e41d3 Allow multiple custom layouts
This merges the "Layouts" option with the "Custom layout" option.
A custom layout becomes an item in the "Layouts" list among the other
layouts. It's possible to add several custom layouts.

Selecting the "Custom layout" item in the list opens a second dialog for
entering the layout description.

Layouts are serialized as JSON object and are decoded solely in the
LayoutsPreference class.
2023-08-16 12:21:23 +02:00
Jules Aguillon
8611dbcfa0 CustomExtraKeysPreference: Reusable edit text layout
This layout is generically used by CustomExtraKeysPreference and
LayoutsPreference.
2023-08-16 12:20:40 +02:00
Jules Aguillon
03f2b8df70 ListGroupPreference.Serializer: Allow exceptions
(De)serializing might raise exceptions, which are handled by dropping
the failing item.
2023-08-16 12:20:40 +02:00
Jules Aguillon
0269cd65ea ListGroupPreference: Make items abstract
Allow items to be of any class instead of strings.

Item serialization and deserialization methods are in a separate class
because they are also used in a static context.
2023-08-16 12:20:40 +02:00
polyctena
20ab3915e8
Update German Strings (#430)
Co-authored-by: Benjamin <f.weiss@stud.uni-goettingen.de>
2023-08-15 20:18:35 +02:00
Edgars
39a751a497
Add missing Latvian translations (#425) 2023-08-08 16:38:34 +02:00
Chasm Solacer
1ad8f79b5c
Updated pl (Polish) translation (#424) 2023-08-07 20:48:13 +02:00
Validbit
12de2733a8
Updated Czech translation (#421) 2023-08-07 20:16:45 +02:00
sdrapha
78f521250f Update pt-Br translations 2023-08-07 18:38:53 +02:00
sdrapha
29106bc69a Add Superscript and Subscript letters 2023-08-07 18:38:53 +02:00
Rapha
f522a678f9 Add superscript, subscript, ª and º to optional extrakeys
And add description strings.
2023-08-07 18:38:53 +02:00
Rapha
c17dfdfe13 Add ordinals to ptbr extrakeys 2023-08-07 18:38:53 +02:00
Jules Aguillon
21316b77d7 Don't elide label of non-string keys
Several non-string keys can have a large label that shouldn't be elided,
for example ctrl, meta, send.

Also, change the cutoff to 3 characters as labels are easily colliding.
2023-08-07 13:11:21 +02:00
Jules Aguillon
eeae964ae6 check_layout: Warn about duplicate keys 2023-08-06 20:09:53 +02:00
Jules Aguillon
8d7b3efeb1 LayoutsPreference: Show layout display names
The internal name of layouts was rendered.
2023-08-06 19:54:38 +02:00
Jules Aguillon
ddc4ff1378 Describe editing keys
The new strings are used in the "Add keys to the keyboard" option.
2023-08-06 19:35:06 +02:00
Jules Aguillon
1c59347cca Add glyphs for editing keys
All from Material Design Icons.
2023-08-06 19:17:05 +02:00
Jules Aguillon
eb56c80ffb Elide custom keys labels
Make the font smaller for custom keys with a length above 1.
Draw up to 4 characters on keys.
2023-08-06 18:22:15 +02:00
Jules Aguillon
4d10556d49 Don't replace user selected dead keys
Don't replace dead-keys selected in the "Add keys to the keyboard"
option by an alternative.
2023-08-06 17:15:36 +02:00
Jules Aguillon
1eea9e25d2 Remove the Accents option
This option makes less sense since per-script extra keys. It's also
getting in the way of an eventual "dead-key or accented-letters" option.
2023-08-06 17:15:35 +02:00
Jules Aguillon
45905f5f3b Replace dead-keys when there's one alternative
The dead-key is replaced by its alternative if there's only one
specified.
Extra keys from every subtypes must be merged together to be able to
make this check.
2023-08-06 17:14:23 +02:00
Jules Aguillon
c26343cd42 method.xml: Specify extra keys alternatives 2023-08-06 17:14:23 +02:00
Jules Aguillon
cd95c589de Extra keys alternatives
For each extra key, a list of alternative can be specified. An extra key
won't be added to the keyboard if all its alternatives are already
present on it.

This is useful to avoid having the dead key for an accent and the
accented letters at the same time.
2023-08-06 17:14:23 +02:00
Rapha
0924df8d13
Update translations pt-br (#420) 2023-08-06 12:19:51 +02:00
Chasm Solacer
0fea071352
Updated pl (Polish) translation (#419) 2023-08-06 00:13:37 +02:00
Jules Aguillon
c46e5ec450 Add esc and tab to the Persian layout 2023-08-05 19:44:00 +02:00
Jules Aguillon
6054c2eec8 Add Persian to method.xml 2023-08-05 19:40:13 +02:00
Jules Aguillon
dcbb4c484c Modify arabic and persian numbers info function keys
And add function keys placeholders in the layouts.
2023-08-05 19:40:13 +02:00
Jules Aguillon
76f01122c2 Tweak check_layout.py
- Warn about missing esc, tab, f11_placeholder and f12_placeholder.
- Don't check non-layout files and special layouts.
2023-08-05 19:40:13 +02:00
Stephen Karl Larroque
94bd9c6bc8
docs: mention Calculator++ (#418)
* docs: mention Calculator++

Signed-off-by: Stephen L. <LRQ3000@gmail.com>
2023-08-05 17:37:27 +02:00
Jules Aguillon
7ce0c6e37a sync_translations.py: Report number of missing strings 2023-08-05 17:27:56 +02:00
Jules Aguillon
9ea06594d1 Update French translations 2023-08-05 16:52:26 +02:00
Jules Aguillon
ae791ab292 Translatable key descriptions
Key descriptions are shown in the "extra keys" option and can now be
translated.
2023-08-05 16:45:57 +02:00
Jules Aguillon
8b95053566 LauncherActivity: Visible, clickable and untranslatable link
The link to Github was not clickable and couldn't easily be made so in
its current form.

Render the link in its own paragraph and do not hide the URL.
2023-08-04 17:31:06 +02:00
Jules Aguillon
e0dd145bb4 Correct Farsi strings 2023-08-04 17:11:00 +02:00
Jules Aguillon
4abea0e878 Settings: Increase vibration values 2023-08-02 21:02:07 +02:00