Commit graph

43 commits

Author SHA1 Message Date
Tobias Hunger
8a19e13dec android: Support Android 12
Make the code by @matthewjrichey found in issue #5031 into a PR:

> [...] discovered that `AMotionEvent_getActionButton` is only available on
> Android NDK 33 (Android 13) or higher. I came up with a working fix for the
> problem, which is tested and working on Android 12.

Done-by: @matthewjrichey
2024-04-12 14:46:50 +02:00
Simon Hausmann
68083243b2
Add an in-out boolean color-scheme property to Palette (#4701)
This allows applications to force dark/light mode, as well as determine
which mode is active.
2024-03-26 15:44:22 +01:00
Olivier Goffart
1f961a997b android: add the menu with cut/copy/paste when there is a selection
Also implement clipboard in the backend (Fixes #4865)
2024-03-26 14:50:55 +01:00
Olivier Goffart
8c2a798630 Android: long press select word 2024-03-26 14:50:55 +01:00
Olivier Goffart
2b7834e7c9 android: attempt to fix build if the locale is not UTF-8
Reported in https://fosstodon.org/@Karcsesz@equestria.social/112141146083141613

The build would fail with
```
error: unmappable character (0xC2) for encoding US-ASCII
```
Because of the © in the comment
2024-03-24 10:12:08 +01:00
Olivier Goffart
a61cf5239d Android: support for Java8
Older version of java used stderr for the version.
(As seen in https://github.com/slint-ui/slint/issues/4904#issuecomment-2014798778)
2024-03-22 14:23:10 +01:00
Olivier Goffart
fb0046c231 android: show a proper error when the version is java is too old
Also support Java 8 that did not support the --release argument yet.

Fix #4904
2024-03-22 09:20:13 +01:00
Olivier Goffart
b46effe65c Android: selection handle
Have two selection handle when there is selected text
2024-03-22 09:19:53 +01:00
Olivier Goffart
9f6b837f7d android: fix cursor and handle color
On android, the handle is the same as the cursor color and the cursor
color is usually the "accent" color.
We can't know the accent color from the native code, but we know the
selection color which is the accent color with a lesser opacity.
2024-03-20 15:06:34 +01:00
Olivier Goffart
504fbed476 android: only show cursor handle when we click 2024-03-20 12:46:10 +01:00
Olivier Goffart
528f85509b android: Moving cursor handle 2024-03-20 12:46:10 +01:00
Olivier Goffart
291a0bdc66 WIP: android cursor handle 2024-03-20 12:46:10 +01:00
Olivier Goffart
a77c8d4397 Update internal documentation of the android backend
The backend is now exposed through the Slint crate. No need to document
how to use the private API anymore
2024-03-18 13:44:14 +01:00
Olivier Goffart
3969e09d5b Remove debug output 2024-02-29 11:11:59 +01:00
Olivier Goffart
c4e0f4a265 Android: support for preedit
(Tested with the typewise keyboard)
2024-02-27 18:29:36 +01:00
Olivier Goffart
1fb162936e Android: simplify the text input with SpannableStringBuilder
Also needed some change on the Text item to avoid sending ime callback
for intermediate states
2024-02-27 18:29:36 +01:00
Olivier Goffart
b8f302464c Android: fix first frame not being translated after a rotation 2024-02-26 15:51:23 +01:00
Ralph Minderhoud
9cb1a4a4e0
Add API for minimize/maximize on Window component (#4581)
Closes #4400
2024-02-22 10:40:36 +01:00
Olivier Goffart
0db6e96f67 Update version number in android docs 2024-02-04 13:03:37 +01:00
Simon Hausmann
858ed639ec
Fix Android build on Windows (#4530)
- Use Path/OsStr to avoid directory separator mismatches
- Call d8.bat

Fixes #4524
2024-02-02 14:56:00 +01:00
Olivier Goffart
fadcbdf726 Android: send the input type to the input method
Also avoid flickering of the input method when inserting text by
preventing sending an imput method event right after deleting the
selection
2024-02-02 11:54:47 +01:00
Olivier Goffart
46dd8b1060 Android: refactor the JavaHelper to avoid that each function has unsafe 2024-01-31 14:56:42 +01:00
Olivier Goffart
d76631431e Android: Split the backend into modules
lib.rs started to be a bit big
2024-01-31 14:56:42 +01:00
Olivier Goffart
fb78bbd702 Android: Don't draw the UI under the system bars or the keyboard 2024-01-31 09:20:19 +01:00
Olivier Goffart
0f14b24cc6 janitor: android: fix warnings and group args together 2024-01-30 18:08:06 +01:00
Olivier Goffart
a9641a2d11 Update version number in the android readme 2024-01-30 15:26:02 +01:00
Olivier Goffart
25925b55fd android: detect dark or light style 2024-01-26 15:26:21 +01:00
Olivier Goffart
168654fa29 Android: Implement InputConnection
So that we can use text prediction and other input method features
2024-01-21 09:21:41 +01:00
Olivier Goffart
daa40f43cd Android: Use java code to show or hide the keyboard
instead of coding it all in JNI

This uses build.rs to compile the java code into bytecode that is then
embedded in the binary and loaded at runtime
2024-01-21 09:21:41 +01:00
Olivier Goffart
926c313493
Android docs: Fix warning in the documentation 2024-01-10 10:45:28 +01:00
Olivier Goffart
0725bb1b61
Android docs: mention the todo example 2024-01-10 10:06:15 +01:00
Olivier Goffart
b90047599e Android: Fix delete and backspace being inverted 2024-01-05 17:35:49 +01:00
Olivier Goffart
950ffb0041 Android: make the show/hide keyboard work with native-activity 2024-01-05 16:11:28 +01:00
Olivier Goffart
f495235b74 Android todo example: cleanup console output and remove warning 2024-01-05 16:11:28 +01:00
Simon Hausmann
f5bf6e5dc0 Skia: Clean up pre present notify callback API
Move this back out of render() again and make it stateful in the renderer. Reduces the amount of book-keeping required and it's always the same callback anyway.
2024-01-04 10:35:09 +01:00
Simon Hausmann
3069e8e503 Add support for frame throttling on Wayland
Use winit's pre_present_notify() API to allow for the compositor to throttle rendering.

Fixes #4200
cc #1695
2024-01-04 09:21:53 +01:00
Olivier Goffart
c4a91982db Janitor: fix docs links 2024-01-03 16:29:03 +01:00
Jocelyn Turcotte
82916bc2ec Implement KeyEvent.repeat
Now that winit was upgraded do 0.29 we can use its KeyEvent::repeat field.
Also feed Qt's QKeyEvent::isAutoRepeat() in the Qt backend.
2023-11-29 09:31:31 +01:00
Olivier Goffart
f03507ee6a Fix CI build: intra links don't work on non-android in the android backend 2023-11-02 17:53:57 +01:00
Olivier Goffart
45d6cd1f7f
Android: add readme for the backend (#3836)
To serve as docs while the backend is still internal

Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
2023-11-02 17:17:06 +01:00
Olivier Goffart
5f36eaca9a Android: handle InputEvent::TextEvent 2023-11-02 12:16:40 +01:00
Olivier Goffart
51dbd441b0 android-activity backend: Don't use the public slint crate 2023-10-31 16:22:11 +01:00
Olivier Goffart
d63ff9c4c6 WIP: introduce an android-activity backend 2023-10-31 16:22:11 +01:00