<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unexpected-keyboard/srcs/juloo.keyboard2/Utils.java, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/'/>
<entry>
<title>Spell checking (#1137)</title>
<updated>2026-02-01T23:20:00+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2026-02-01T23:20:00+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=77c4a27c4c37b3620defcab94ffd1b2f536c88cb'/>
<id>77c4a27c4c37b3620defcab94ffd1b2f536c88cb</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix extra bottom margin when navbar buttons absent (#1024)</title>
<updated>2025-07-01T21:27:24+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-07-01T21:27:24+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=a08db256611a66ca14e085fbd62a8fe352847e89'/>
<id>a08db256611a66ca14e085fbd62a8fe352847e89</id>
<content type='text'>
* Fix extra bottom margin when navbar buttons absent

Fix the extra space that was appearing when the gesture-navigation bar
didn't contain the "switch IME" or "close IME" buttons.
This was found on OneUI 7 with the two "keyboard key" related options
turned off.

* Remove unneeded nav bar detection and width computation</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix extra bottom margin when navbar buttons absent

Fix the extra space that was appearing when the gesture-navigation bar
didn't contain the "switch IME" or "close IME" buttons.
This was found on OneUI 7 with the two "keyboard key" related options
turned off.

* Remove unneeded nav bar detection and width computation</pre>
</div>
</content>
</entry>
<entry>
<title>Proper support for Android 15 edge-to-edge (#848)</title>
<updated>2024-12-26T17:29:19+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-12-26T17:29:19+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=370f921bc367613164d93dc1ddbd28c57042e0a7'/>
<id>370f921bc367613164d93dc1ddbd28c57042e0a7</id>
<content type='text'>
The keyboard background now extends under the system bars and display
cutout on Android 15 but the keys do not.

The back and IME switching buttons that appear in the navigation bar require
special care to not overlap with the keyboard.

The launcher and settings activity are also fixed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The keyboard background now extends under the system bars and display
cutout on Android 15 but the keys do not.

The back and IME switching buttons that appear in the navigation bar require
special care to not overlap with the keyboard.

The launcher and settings activity are also fixed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix various linter warnings</title>
<updated>2024-02-10T17:10:49+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-02-10T17:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=f4d88cc0876ec29ff46dbda0159168ebee637afb'/>
<id>f4d88cc0876ec29ff46dbda0159168ebee637afb</id>
<content type='text'>
Among others:
- Use `apply` instead of `commit` when saving shared preferences.
- Avoid inlined Api
- Remove unused resources
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Among others:
- Use `apply` instead of `commit` when saving shared preferences.
- Avoid inlined Api
- Remove unused resources
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor: New namespace for preference classes</title>
<updated>2024-01-13T19:59:05+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-01-13T19:59:05+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=eddf9c6c117449012e2aece5776694467e3483f0'/>
<id>eddf9c6c117449012e2aece5776694467e3483f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash on shift with empty keys</title>
<updated>2024-01-09T23:17:09+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-01-09T23:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=b319356a08ee059fd4c3fbcc7242b2d8712fa420'/>
<id>b319356a08ee059fd4c3fbcc7242b2d8712fa420</id>
<content type='text'>
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="\"`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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="\"`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unsupported API readAllBytes</title>
<updated>2024-01-01T20:04:54+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-01-01T20:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=c524caa6f1d13e6bfb5f88d8a8c8512d23dd5294'/>
<id>c524caa6f1d13e6bfb5f88d8a8c8512d23dd5294</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Voice IME chooser popup</title>
<updated>2023-12-29T23:56:55+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2023-12-29T23:56:55+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=51a41ec90af505b153cc7a016de3c1e8a18dc427'/>
<id>51a41ec90af505b153cc7a016de3c1e8a18dc427</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
</feed>
