Commit Graph

435 Commits

Author SHA1 Message Date
Julian Winkler
0064677755 split handle_cache out of util.c 2025-07-08 23:19:17 +02:00
Julian Winkler
4ec150c802 separate Intent serialization and action handling out of the NotificationManager
This way, the mechanism can in the future also be used to send Intents
from one app to another.
2025-07-08 23:07:42 +02:00
Julian Winkler
3708cc990e NotificationManager: use GIO instead of libportal
GIO's notification implementation makes the code more readable and has
the advantage of supporting multiple notification specifications.

By default we will now use freedesktop notifications when running
without `.desktop` file and XDG-portal notifications when running
with `.desktop` file.

To prevent dynamic notification updates from arriving in wrong order at
the desktop environment, we need to manually queue them up and make sure
that there is at least 200ms delay between updates.
2025-07-07 22:38:10 +02:00
Mis012
2a0c6cd455 main-executable: handle drawable-based app icons by rendering them into SVG 2025-06-21 01:23:09 +02:00
Mis012
6031eecefc api-impl-jni: add workarounds for Gtk's non-graceful handling of layout changes during the snapshot phase 2025-06-20 22:36:09 +02:00
Mis012
3a3366abfa Paint: treat stroke width 0 as 1 until we implement special handling for it 2025-06-10 00:59:37 +02:00
Mis012
65a7e34871 Path: add arcTo and addArc, minor cleanup 2025-06-10 00:48:41 +02:00
Mis012
99d1a38918 EGLImpl: fix crash when eglDestroySurface is passed EGL_NO_SURFACE 2025-06-08 13:43:52 +02:00
Mis012
364070fa1f api-impl: misc stubs and formatting fixes 2025-06-08 13:42:42 +02:00
Julian Winkler
3d4f386db0 View.setFullscreen(): mock the window size while request is pending 2025-06-04 22:48:23 +02:00
Julian Winkler
542e6222b7 MediaCodec: add VP8 and VP9 codecs 2025-06-04 22:48:23 +02:00
Julian Winkler
12d25c162f onClickListener: stop event propagation if click was handled 2025-06-02 20:06:57 +02:00
Julian Winkler
7985381b60 implement MediaMetadataRetriever on top of MediaPlayer
also add MediaPlayer.getDuration() and MediaPlayer.getCurrentPosition()
2025-04-23 18:16:37 +02:00
Julian Winkler
49fa854c93 add a media ContentProvider
Every time the ContentProvider is accessed, a file chooser opens and the
selected file is then provided as media file.
2025-04-23 18:13:15 +02:00
Julian Winkler
68b8af1e1c Activity: fix crash when finish() is called from onResume() 2025-04-21 07:47:44 +02:00
Julian Winkler
e652089252 map Android UnifiedPush to DBus UnifiedPush 2025-04-21 07:31:06 +02:00
Julian Winkler
ec45faaf87 View.dispatchTouchEvent(): implement ACTION_CANCEL for sythetic events 2025-04-19 15:32:27 +02:00
Julian Winkler
bd83e211d0 handle onClickListener for synthesized MotionEvents
Since synthesized events can't be handled by GTK, we also need to handle
gestures by ourself in that case.
2025-04-18 07:21:21 +02:00
Julian Winkler
8e40c13480 api-impl: add APIs for libGDX games 2025-04-09 13:01:13 +02:00
Nikita Travkin
882cd1b471 ATLKeyboard: Integrate with phosh and wayland IME 2025-04-02 16:58:17 +02:00
Mis012
bce91cc527 api-impl: add ATLKeyboardViewer to support launching IMEs 2025-04-02 16:58:17 +02:00
Mis012
9f93f95f4d api-impl-jni: check in missed generated headers 2025-03-27 13:06:39 +01:00
Mis012
12121d2d48 LocationManager: expose more information from the backend to the apps
note: GnssStatus was accidentally bundled into ab5b600bf1
2025-03-27 13:06:39 +01:00
Mis012
340fae107e PopupWindow: implement more stuff, mainly offset 2025-03-26 20:18:16 +01:00
Mis012
4d12ad5c90 View: add basic implemntation of dispatchTouchEvent
Some Views block all events going to their descendants, and
then synthesize new events themselves. Gtk doesn't allow event
synthesization, which makes this quite annoying to deal with.
This initial implementation definiely has some problems,
for example it seems to cause infinite loops in some cases,
however it surprisingly works well enough.
2025-03-26 20:06:15 +01:00