22 Commits
Author SHA1 Message Date
Jure Varlec 13f1996af9 Fix building on NixOS (#1219)
* shell.nix: bump platform version to match target

* shell.nix: make gradlew work on NixOS

This removes the wrapper provided by `shell.nix`. Folks expect the
`./gradlew` wrapper to work, so this approach is more straightforward.
2026-04-08 17:38:45 +02:00
Jules Aguillon 77c4a27c4c Spell checking (#1137)
This adds dictionary-based spell checking to the keyboard. The keyboard looks at the word being typed and matches it against a dictionary to either complete the rest of the word or find alternative spellings.

The core of this feature is implemented in cdict, which is included as a
submodule in vendor/cidct.

Cdict is developped at https://github.com/Julow/cdict
The dictionaries are hosted at https://github.com/Julow/Unexpected-Keyboard-dictionaries/
The wordlists used to build the dictionaries are the same ones used by
HeliBoard from https://codeberg.org/Helium314/aosp-dictionaries

- Add an activity accessible from the launcher app that lists available
  dictionaries with a download button.
  The DictionaryListView view shows the list of available dictionaries and
  handles downloading and installing them.

- The Dictionaries class manages installed dictionaries. Dictionaries are
  installed as individual files into the app's private directory.

- Available dictionaries are listed in dictionaries.xml, which is generated
  when building Unexpected-Keyboard-dictionaries.
  method.xml mentions the dictionary name for each locales.
2026-02-02 00:20:00 +01:00
J. Fronny 7fdf63b930 Upgrade Gradle (#1097)
* Enable configuration cache and up-to-date checking
2025-09-29 00:37:26 +02:00
Jules Aguillon ab85fb717d shell.nix: Remove repoJson
nixpkgs-unstable is now uptodate.
2025-09-04 00:25:56 +02:00
Matej Drobnič 97355881a8 Better support for foldable devices (#982)
* Add AndroidX WindowManager

unfortunately, this seems to be the only way to get fold state, native Android APIs are internal. To add this, we need to update some dependencies, raise java version and raise compile SDK.

* adds separate layouts and separate layout settings for folded and unfolded state of the device.

The affected settings are:
+ the margin bottom settings
+ the horizontal margin settings
+ the keyboard height settings

* Update shell.nix
2025-05-22 23:54:13 +02:00
Jules Aguillon a9b78923c0 Drop support for Android 3 and 4
Support for Android 4 was broken for several releases and no one
noticed. The lowest supported version is now Android 5.
2024-12-29 00:27:44 +01:00
Jules Aguillon 57dbf3292f shell.nix: Emulator for Android 15 2024-12-26 13:43:24 +01:00
Zitrone b21bf3fffd Improve bone layout (#748)
* shell.nix: fix gradle error

error was:
> \> Task :compileDebugJavaWithJavac FAILED
> error: Source option 7 is no longer supported. Use 8 or later.
> error: Target option 7 is no longer supported. Use 8 or later.

fixed by overriding the jdk version for gradle to openjdk17

* layouts/latn_bone: fix layout

- fix alignment with tabs mess
- make like actual bone layout, instead of trying to fit it into a 10 key
  wide keyboard
  - fixes missing üäö
  - fix missing $
  - moves q and ß where they belong
  - remove all of the diacritic keys (they can be added through the
    settings as extra keys)
  - kept the number row extra keys integration into top row
  - kept the idea of compressing , and . into the swipe actions of the
    bottom row
  - kept the number keys as key4 in the layer4 positions (instead of
    moving them to a number row, which i also considered)
2024-09-19 23:57:26 +02:00
Jules Aguillon 5d2eb35574 Increase target SDK to 34 2024-05-29 14:04:14 +02:00
Jules Aguillon d073523125 shell.nix: Update dependencies and add Gradle
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-25 20:13:24 +01:00
Jules Aguillon 0fb7150a06 Revert to the previous CI
The new CI script doesn't work on forks.

This reverts commit f3aa218de4.
This reverts commit 3373c59b90.
2022-03-24 18:43:09 +01:00
Jules Aguillon 3373c59b90 CI: Use nixbuild.net
The build takes place on the remote, which takes advantage of Nix's
caching.
The previous workflow used a remote cache but in order to build locally,
all the dependencies needed to be downloaded from the cache everytime.
The dependencies are 462M, downloading took most of the time.
2022-03-23 13:02:38 +01:00
Jules Aguillon e63ff8f837 Stateless build of the special font file
Keep the glyphs in SVG format and build the font using a FontForge
script.
A part of the previous font is kept because the sources is lost.

This adds a new dependency to the build system, fontforge.
2022-03-17 20:23:28 +01:00
Jules Aguillon e86173b895 Use apksigner from the build tools for release builds too 2022-02-05 20:22:40 +01:00
Jules Aguillon 988d8db7e8 Use apksigner for signing the apk
The Play Store now requires the "Signing Scheme V2", which is
implemented by apksigner.
2021-12-14 00:13:34 +01:00
Jules Aguillon e5fa23e1f7 Upgrade to Android SDK version 30 2021-12-12 23:48:05 +01:00
Jules Aguillon d606a7924d Build requires Android Build Tools <= 30.0.3
'dx' is missing in 31.0.0.
2021-09-21 00:42:26 +02:00
Jules Aguillon 5f5efe3157 Change build system to make
The ant scripts included in the android SDK were removed recently. The
alternative is Gradle.
Gradle doesn't work well in this app because it's not possible to use
Nix to pull dependencies. Gradle will try to patch the SDK.
Also, it's very slow.

It turns out the required build script is quite simple.
2021-04-13 00:29:26 +02:00
Jules Aguillon 5fa7187d16 Use openjdk8 2021-01-16 22:01:26 +01:00
Jules Aguillon 21b5838a1d Use more recent Java 2021-01-05 00:39:49 +01:00
Jules Aguillon 1cda23ad2c Upgrade the platform version to 29 2021-01-04 23:50:51 +01:00
Jules Aguillon 539c7fcd74 Add 'shell.nix' and build the project
Add a working environment and specify Java version
2021-01-04 23:31:04 +01:00