Commit graph

103 commits

Author SHA1 Message Date
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
e652089252 map Android UnifiedPush to DBus UnifiedPush 2025-04-21 07:31:06 +02:00
Mis012
272c554262 register path overrides with libc_bio, install fonts.xml 2025-04-11 22:22:54 +02:00
Nikita Travkin
882cd1b471 ATLKeyboard: Integrate with phosh and wayland IME 2025-04-02 16:58:17 +02:00
Mis012
74f2e9f308 MediaPlayer: implement using GtkMediaStream 2025-03-04 18:10:32 +01:00
Julian Winkler
f20bb6cb1c ContentResolver: implement query() support for file:// URIs
This is needed for the subscription import feature in NewPipe.
2025-02-22 23:49:43 +01:00
Julian Winkler
5375f4b5fd implement android.text.Layout using PangoLayout
This is needed to have proper line wrapping in composeUI apps.

In the CTS, android.text.cts.StaticLayoutTest passes all checks now.
2025-02-13 07:01:17 +01:00
Mis012
2271ae9c06 main: ensure bionic-linked libraries get a non-changning stack guard value 2025-01-17 19:54:36 +01:00
Pierre-Hugues Husson
c81442321e api-impl: stubs and fixes for latest WhatsApp version 2025-01-01 11:33:16 +01:00
Julian Winkler
0dfcb9324f drop GTK < 4.14 ifdefs 2024-12-22 23:40:11 +01:00
Julian Winkler
7695aadf91 implement Paint as combination of GDK, GSK and Pango attributes 2024-12-22 23:40:11 +01:00
Julian Winkler
f3bc468a1c drop Skia dependency
Everything is implementede using GTK Scene Graph now. Skia is no longer
needed.
2024-12-22 12:30:29 +01:00
Julian Winkler
cd2c69cf73 reimplement Bitmap and Path using GdkTexture and GskPath
This allows us to use GskCanvas for Bitmap rendering

This increases the required GTK version to >= 4.14.
2024-12-22 12:30:29 +01:00
Julian Winkler
47fc749018 implement WindowManager for composeUI popups
currently everything is created as GtkPopover which is not ideal for
toplevel windows, so print a warning in that case.
2024-12-17 22:38:09 +01:00
Julian Winkler
b087b82616 implement WallpaperManager.setBitmap() using XDG Portal 2024-12-13 22:32:04 +01:00
Julian Winkler
db1e9458de meson.build run dx with --incremental
This enables incremental dexing which speeds up incremental builds
2024-12-13 21:43:50 +01:00
Julian Winkler
a1c29c012e meson.build: don't build test_runner.jar by default 2024-12-13 09:29:54 +01:00
Julian Winkler
60095ea795 ListView: copy from AOSP
copied from tag android-6.0.1_r81
2024-11-30 18:56:17 +00:00
Mis012
d5bc4ea9a6 implement instrumentation 2024-11-30 18:57:03 +01:00
Daniel Panero
be93b4c396 JavaWidget: add css classes and default_stylesheet.css 2024-11-26 16:33:38 +01:00
Julian Winkler
332d3d1137 copy AdapterView, AbsSpinner and Gallery from AOSP
copied from tag android-6.0.1_r81

existing GTK based implementation was moved from AbsSpinner to Spinner
2024-11-24 22:11:40 +00:00
Daniel Panero
5f6943fd81 Add backbutton 2024-11-17 23:37:10 +00:00
Julian Winkler
58f29b7ba2 implement minimal Wayland server to import EGL surfaces into GtkGraphicsOffload
This allows us to use the translucent cutout feature of
GtkGraphicsOffload, which can not be implemented with our custom
subsurface implementation.
2024-11-17 16:50:45 +01:00
Julian Winkler
9b6c8db5ed enable lazy linking for libandroid so that it can launch with missing symbols
Outdated Nvidia driver version 340 doesn't implement EGL and causes
following error:
symbol lookup error: /app/lib/libandroid.so.0: undefined symbol: eglGetPlatformDisplay

The crash can be avoided by lazy linking as long as the application doesn't
use EGL directly.
2024-10-29 19:59:35 +00:00
Mis012
3d02598b75 meson.build: add install_rpath for libtranslation_layer_main.so 2024-10-29 14:12:39 +01:00
Julian Winkler
21a75d7ff0 WebView: use Asset_read() instead of Asset_openFileDescriptor()
openFileDescriptor doesn't work for assets which are compressed inside
the APK.
2024-10-05 10:26:50 +02:00
Julian Winkler
f3092fd4bd implement file sharing by file descriptor
Using custom gdbus code, as libportal doesn't expose the raw
org.freedesktop.portal.OpenURI.OpenFile method.
2024-10-03 15:57:44 +02:00
Julian Winkler
c492e1f03f add Java APIs needed for WhatsApp MainActivity and ConversationActivity 2024-10-03 15:57:44 +02:00
Mis012
e761bb6a6d api-impl: implement WebView using webkitgtk 2024-09-13 20:29:56 +02:00
Julian Winkler
b54bed4784 implementing MediaSession using MPRIS
NotificationManager will now ignore MediaStyle notifications
2024-07-17 22:35:55 +02:00
Julian Winkler
f249e1c487 MediaCodec: implement software decoding
The decoding is done by libavcodec, libswscale converts YUV to RGB data, which is
then put into a GtkPicture as GdkMemoryTexture.
2024-06-02 18:12:59 +02:00
Julian Winkler
e8eabb2027 GskCanvas.drawBitmap(): reuse GdkTexture objects 2024-05-27 16:37:49 +00:00
Mis012
4374ac01ad AssetManager: use libandroidfw to read assets straight from the apk file
they can still be put on the filesystem and will be read from there
preferentially, though overriding assets in this way can confuse
some creatively written apps and cause them to crash.
2024-05-26 00:10:16 +02:00
Julian Winkler
d4086fdb90 meson.build: run dx on the whole jar
This is now possible without ARSCLib

Also remove --verbose flag
2024-05-23 23:32:19 +02:00
Julian Winkler
b25545c3c0 remove ARSCLib from the source tree
Also remove references to ARSCLib from doc/Architecture.md
2024-05-23 23:32:19 +02:00
Julian Winkler
cc5d4a3cb3 use libandroidfw for resource XML parsing
androidfw is implemented in native code and has much better performance
than ARSClib
2024-05-12 16:49:14 +00:00
Mis012
5a8dba4064 meson.build: specify dependency on openxr headers 2024-05-09 21:27:19 +02:00
Julian Winkler
5e674e1410 add option to install desktop entry with dynamic launcher portal
A desktop entry is needed to have window icons on Wayland.
2024-04-13 19:20:38 +02:00
Mis012
26a6b90b1c meson.build: remove javac version warning
whatever the issue was it's probably long gone
2024-03-24 22:54:58 +01:00
Julian Winkler
ad266c7821 add support for custom Java Drawables
This is made possible, by adding a second Canvas implementation which
can be used to render directly to GdkSnapshot objects

For now the only implemented method is drawBitmap(), this is already
enough to make VectorDrawableCompat functional
2024-03-24 22:13:28 +01:00
Julian Winkler
3d9468aa9f implement android.graphics.Path using skia 2024-03-24 22:13:28 +01:00
Julian Winkler
7ee4effb86 implement android.widget.Spinner using GtkDropDown
Helper classes from ListView implementation are reused. The declarations
have been moved to a new header file AdaperView.h
2024-03-22 21:02:22 +01:00
Mis012
d122b2a528 api-impl: implement vibrator using evdev
we use the first vibrator that is marked for use with feedbackd in udev
2024-03-22 13:17:29 +01:00
Julian Winkler
45de09a191 notification support using libportal 2024-03-18 07:26:25 +01:00
Julian Winkler
b14549e639 implement ConnectivityManager using GNetworkMonitor 2024-03-17 22:39:13 +01:00
Julian Winkler
14217e8724 simple implementation of PopupMenu using GtkPopoverMenu 2024-03-17 22:39:13 +01:00
Julian Winkler
276b5ca7ef add more APIs needed for NewPipe 2024-03-17 20:02:50 +01:00
Mis012
20b179387b api-impl: implement accelerometer support, no backend yet
currently x,y,z values are hardcoded and can only be changed with gdb
2024-03-16 15:06:06 +01:00
Mis012
2e864adc0f implement drawing into Bitmaps with Canvas, make BitmapDrawable use use paintable, misc Bitmap improvements 2024-03-16 15:00:22 +01:00
Mis012
fa1aa36f6b api-impl: add stubs, put Vibrator.java in meson.build (oops), sort sources with LC_ALL=C sort -h 2024-03-16 10:13:55 +01:00