Commit Graph

148 Commits

Author SHA1 Message Date
Julian Winkler
36b6132324 fix reference counting for GtkWidgets created from java
GtkWidgets extend GInitiallyUnowned and are automatically freed when
removing from parent widget. We need to add an extra reference, to make
sure the object keeps alive as long as the java widget has a reference
to it
2023-08-23 11:47:05 +02:00
Julian Winkler
3399c84e84 fix multi Activity support
jobjects have to be compared with env->IsSameObject()
and each Activity needs its own Window instance.
The GtkWindow is still shared between all Activities
2023-08-22 22:29:20 +02:00
Julian Winkler
6547e66d4f implement android.app.AlertDialog using GtkDialog 2023-08-22 19:39:57 +02:00
Julian Winkler
4d90002ec6 Simplify native interface of widget implementations
Makes it easier to overwrite behavior in subclasses. Have a fallback
implementation for ViewGroup.
Save some _GET_LONG_FIELD / _SET_LONG_FIELD calls by directly passing
the native pointers to and from native methods.
2023-08-22 15:53:09 +02:00
Julian Winkler
82744e9e5e add bunch of new java APIs: mostly stubs or copied from AOSP
Many of these classes are only needed to be subclassed by androidx
support library, which is used in many android apps
2023-08-22 15:53:09 +02:00
Julian Winkler
a8e39cd613 get Application class from AndroidManifest.xml and call onCreate() 2023-08-22 15:53:09 +02:00
Julian Winkler
c60e97f13f implement obtainStyledAttributes() functions properly 2023-08-22 15:51:13 +02:00
Mis012
4a1159f5cb api-impl: add misc stubs 2023-08-12 13:09:33 +02:00
Julian Winkler
18ca242096 support multiple Activities 2023-08-11 18:15:19 +02:00
Julian Winkler
88c585d9dc LocationManager: disable location access by default
environment variable ATL_UGLY_ENABLE_LOCATION can be set to enable it
2023-08-09 12:35:26 +02:00
Julian Winkler
4491de7f63 MessageQueue: integrate with glib main loop
Adds a special treatment for the main Looper to not block in java code,
but instead return to glib managed thread loop. Timeouts in the mainloop
are now handled using g_timeout_add_full().

Also defer Activity construction, so that every thing is set up properly
when the constructor runs.
2023-08-08 14:18:20 +02:00
Julian Winkler
77459e34e0 add AssetManager.getArrayIntResource and Context.getString 2023-08-08 14:18:20 +02:00
Julian Winkler
696e0ce714 implement LocationManager and orientation sensor using libportal 2023-08-08 14:18:20 +02:00
Julian Winkler
c72f3ba7d2 Canvas: use correct destination width and height 2023-08-08 14:18:20 +02:00
Julian Winkler
def91a688d handle overwritten onDraw function in WrapperWidget
This makes it easy to support for example ImageView with custom
onDraw function
2023-08-08 14:18:20 +02:00
Julian Winkler
22dcaf45e8 View: use GTK_ALIGN_CENTER for Androids GRAVITY_CENTER 2023-08-08 13:35:47 +02:00
Julian Winkler
520569f7c7 implement View.invalidate() 2023-08-08 13:35:47 +02:00
Julian Winkler
8c1e98b09c GLSurfaceView: fix eglGetDisplay for Wayland only sessions
EGL_DEFAULT_DISPLAY always tries to use X11
2023-08-08 10:54:20 +02:00
Mis012
08998b0076 make Looper, Handler, and MessageQueue work properly
this for example makes Unity apps not steal the main thread,
hanging Gtk.
2023-07-25 14:27:21 +02:00
Mis012
a61e44aad8 api-impl-jni/audio/android_media_AudioTrack.c: make this stuff noop by default
this particular implementation never worked particularly great, and thanks
to hardcoding could cause more harm then good.

export `HAX_AUDIOTRACK_PCM_DEVICE=sysdefault:CARD=Generic_1` to restore
previous behavior

TODO: use libOpenSLES to implement this maybe? we have to have it anyway...
2023-06-23 17:27:48 +02:00
Julian Winkler
997642d93a auto find main activity using AndroidManifest.xml 2023-06-21 22:38:08 +02:00
Julian Winkler
12e9e9788a load assets and bitmaps directly from apk 2023-06-21 22:38:08 +02:00
Julian Winkler
1a8e198e05 make RelativeLayout vertical by default and vexpand GLSurfaceView 2023-06-18 11:31:03 +02:00
Julian Winkler
c70e333883 View: handle View.INVISIBLE the same way as View.GONE 2023-06-18 11:31:03 +02:00
Julian Winkler
9e706927de implement android.media.SoundPool using GtkMediaStream 2023-06-18 11:31:01 +02:00