Commit Graph

919 Commits

Author SHA1 Message Date
Benson Muite
b22b49d3e6
launcher: Grammar fixes (#599) 2024-03-24 21:36:18 +01:00
Lev Brekalov
7c3286078b
Add Shaw Imperial layout (#592) 2024-03-23 00:06:23 +01:00
Jules Aguillon
e604f6fd57 refactor: Implement Compose without global state
Thanks to the previous commit, a modifier key can now be more complex
than just a KeyValue.Modifier. This allows a more elegant implementation
of the compose key, that could be taken as a base for other features
(eg. unicode hex entry, hangul)

The COMPOSE_PENDING modifier is removed as keys of kind Compose_pending
can act as a modifier. This has the advantage of highlighting the key
that was last pressed in the sequence.

Rules are added to Pointers: Non-special but latchable keys must clear
latches and cannot be locked with a long press. These rules were not
needed before but were intended.
2024-03-18 01:00:22 +01:00
Jules Aguillon
dc3a303af1 refactor: Allow modifier of other key kinds
Allow keys of a kind other than Modifier to be a modifier.

This requires writing a compareTo function for KeyValue. Fields are
compared in this order: Kind, value, flags, symbol.
2024-03-18 00:40:15 +01:00
Jules Aguillon
ec8e78d5cc refactor: Use Pointers.Modifiers.has less
The performance characteristics of this function will change in future
plans.
2024-03-18 00:09:32 +01:00
Jules Aguillon
0549c6c8a1 Fix potential out of bounds access
The preferred pos mechanism could cause an out of bounds access on 1 row
layouts.
2024-03-16 23:42:37 +01:00
Jules Aguillon
e74b45c2d6 Move fastlane metadata into fastlane/metadata/android 2024-03-16 23:37:38 +01:00
solokot
1cbaa7106c
Update Russian translation (#588) 2024-03-14 00:37:37 +01:00
Jules Aguillon
fe0f82436a Improve the QWERTY (Slovak) layout
The grid layout was not likeable.
2024-03-11 20:21:26 +01:00
Jules Aguillon
5c19140609 refactor: Pointers: Flag for sliding state 2024-03-11 00:38:37 +01:00
Jules Aguillon
47e2009da4 refactor: Add latched flag to Pointers 2024-03-11 00:29:12 +01:00
Jules Aguillon
b33bcd8865 refactor: Use internal flags in Pointers
'FLAG_LOCKED' and 'FLAG_FAKE_PTR' are only used within Pointers.
Define new flags in Pointers and remove these from KeyValue. Also allows
to define new flags.
2024-03-11 00:24:25 +01:00
Spike
c41a098924
Update Spanish translations (#586) 2024-03-10 19:31:58 +01:00
Quinn Cypher
8cd868ba76
Update to Unicode Emoji v15.1 (#583) 2024-03-09 11:37:15 +01:00
Validbit
07f9c1ffaa
Update cs strings.xml (#582) 2024-03-07 19:36:48 +01:00
Edgars
9a07149efc
Update Latvian translations (#580) 2024-03-04 19:35:28 +01:00
Jules Aguillon
0594127575 metadata: Remove metedata without a short_description
It is mandatory for Google Play.
2024-03-04 00:57:23 +01:00
Jules Aguillon
a9f9bbec19 Revert renaming metadata locale directories
Metadata directories were renamed while adding store descriptions into
strings files for simplicity.

This interferes with releases so is released.
An hardcoded lookup table is used instead.
2024-03-04 00:57:23 +01:00
polyctena
35d1ebeab5
Update German strings.xml (#579) 2024-03-03 23:25:54 +01:00
Jules Aguillon
0739c6bd2c Release 1.27.0 (39) 2024-03-03 23:19:02 +01:00
Yogesh-B
a1de69bcc4
Gujarati phonetic layout (#562)
added shift modifier characters
Add support for gujarati numerals

Co-authored-by: yogesh-b <yogesh@improwised.com>
2024-03-03 23:12:52 +01:00
Jules Aguillon
5e5937b0f4 Fix auto-capitalisation disabling locked shift
Shift locked via the "caps lock" key use the "fake pointer" mechanism
that is also used by auto-capitalisation.

Make sure that unlatching a fake pointer do not disabled a locked
modifier.

The implementation is moved into the Pointers class for a safer API and
easier implementation.
2024-03-03 17:14:01 +01:00
Chasm Solacer
ce38a4f151
Update pl/strings.xml (#578) 2024-03-03 01:06:07 +01:00
Jules Aguillon
0e0c761a92 Add QWERTY (Slovak) layout
The original author is @sejkm in https://github.com/Julow/Unexpected-Keyboard/issues/573
2024-03-02 20:39:22 +01:00
Jules Aguillon
940cf0deb8 compose: Parse json files and fix edge cases
There's no json file yet, this was part of an experiment.

Add a missing escape rule and detect colliding sequences.
2024-03-02 19:12:37 +01:00
Jules Aguillon
c2d5b14261 compose: Add a README.md
Mention the source of the sequences files.
2024-03-02 19:11:41 +01:00
Jules Aguillon
ebda7b2c3e Improve the AZERTY layout
Add éèàç directly to the layout, which removes the corresponding dead
keys.

Remove the requirement for ù and ÿ from method.xml, which are extremely
rare and can be typed via the compose key.
2024-03-02 17:42:57 +01:00
Jules Aguillon
39f6d294fb translations: Remove outdated store descriptions 2024-03-02 17:22:22 +01:00
Jules Aguillon
8b5d971fb5 Modify the number row according to the numpad script
The same way as the numpad is modified.
2024-02-28 23:19:50 +01:00
Jules Aguillon
8c7559d8f6 Fix localized numpad outputing wester arabic numbers
The number keys were constructed in the wrong way: the rendered symbol
was correct but not the underlying character that is typed.
2024-02-28 20:42:52 +01:00
Jules Aguillon
d7e5040873 method.xml: Add en-CA and fr-CA
Without this, the system might choose en-GB and fr-CH.
This makes them more similar to en-US and fr-FR (without € in extra keys).
2024-02-24 11:54:46 +01:00
Jules Aguillon
b29a344cd0 Remove € from en-GB extra keys 2024-02-22 19:34:23 +01:00
Jules Aguillon
b8e673b614 Ensure the layout contain the config key
Without the config key, the user risk being locked in a custom layout
that lacks an escape key like 'switch_numpad', 'change_method', etc..
2024-02-22 19:10:31 +01:00
Jules Aguillon
bae82d6ed8 Add FUNDING.yml
Thanks to everyone considering funding the development of the app.
2024-02-21 19:07:34 +01:00
Jules Aguillon
f913051dca
Relicense layout definitions under CC0 (#528)
* Relicense layouts under CC0

Layout definitions are licensed differently from the rest of the
application source code to allow use in other projects related or
unrelated to Unexpected Keyboard.

Some layouts are not re-licensed and their original copyright continues
to apply. The copyright notice is added at the top of the files.

* Contributing: Mention layout licensing
2024-02-18 23:37:26 +01:00
Jules Aguillon
dac702ad0b
CI: Improve layout and store description checks (#565)
* CI: Run 'check_layout.py'

Ensures that 'check_layout.output' is not outdated.
Also, update it.

* CI: Check new store descriptions

When a store description is added, 'python3 sync_translations.py' leaves
an untracked file that is not checked.

This makes sure that untracked store descriptions are noticed in CI.
2024-02-18 17:55:41 +01:00
matthiakl
f2f6ef0627
neo2: Update bottom row (#560) 2024-02-18 17:10:46 +01:00
Sergiy Stupar
6389d58553
Update Ukrainian translation (#561) 2024-02-18 17:08:56 +01:00
Jules Aguillon
e40558677e Allow to remove the compose key in the settings 2024-02-17 23:28:31 +01:00
Jules Aguillon
ae270b36f4 Add the compose key on alternate layouts
Though it is not useful in the greek-math layout, it could give ideas
for new sequences.
2024-02-17 23:28:31 +01:00
Jules Aguillon
146d520325 compose: Grey out keys that are not in sequence
Keys that are not in the pending compose sequence are greyed out with
the new 'FLAG_GREYED' flag.
2024-02-17 23:28:31 +01:00
Jules Aguillon
065d9520e5 Dim secondary keys in every themes
Themes do not dim secondary keys the same way due to the "offset"
mechanism. Instead, use a ratio that is the same for every themes.

It's still possible to override this ratio per theme.
2024-02-17 23:28:31 +01:00
Jules Aguillon
bb60ed9b13 Fix KeyValue flags layout
The kind field wasn't large enough to hold the new Compose_pending kind.
The flags field is reduced in size by removing a free spot.

The FLAGS_BITS mask is defined in a safer way.
2024-02-17 23:28:31 +01:00
Jules Aguillon
d56e4d129e compose: Add glyph 2024-02-17 23:28:31 +01:00
Jules Aguillon
e9f734b6cc compose: Don't remove keys not in sequence
Keys that are not part of any possible sequences are now dimmed and
still usable instead of being removed, which felt weird.
2024-02-17 23:28:31 +01:00
Jules Aguillon
63e7ac2e94 compose: Add X11 compose sequences
compile.py implements a parser for X11's Compose.pre files. A lot of
code is necessary to interpret character names but thanksfully, the name
of most characters is contained in the file.

The state machine is compiled into two char arrays which unfortunately
requires an expensive initialisation and allocation.
2024-02-17 23:28:31 +01:00
Jules Aguillon
8c29073260 Compose key
The COMPOSE_PENDING modifier indicate whether a compose sequence is in
progress. The new key of kind Compose_pending sets the current state of
the sequence.

The compose sequences are compiled into a state machine by a python
script into a compact encoding.

The state of the pending compose is determined by the index of a state.
2024-02-17 23:28:31 +01:00
Ryan Gibb
38deb810f9
Add QWERTY GB layout (#557)
Adapted from latn_qwerty_us

* Make it the default layout for en-GB
2024-02-16 21:09:28 +01:00
vedamanavi
d8beda411d
Improve latn_qwerty_tly.xml (#549)
Removing "g" as it was used two times as a main key.
shift="0.5" added
2024-02-14 22:55:56 +01:00
Jules Aguillon
d96577963e Don't invert the pin entry layout
The pin entry layout shouldn't be inverted as the letter indications
would be meaningless and the order would be opposite to what the option
specifies.

The enter and action key are swapped as the automatic swapping is also
removed.
2024-02-14 22:52:25 +01:00