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
Julian Winkler
48ef2fffdf
implement GLES20 java bindings
...
These are just one to one bindings for the native OpenGL 2.0 APIs
2023-06-18 11:28:40 +02:00