Julian Winkler
3aed86b83a
implement ListView using GtkListView
...
There is not much difference between GTKs ListView and Androids
ListView. So, we use GTKs implementation instead of copying from AOSP
2024-02-16 15:28:04 +01:00
Julian Winkler
bc8443e542
Dialog: add dismiss(), hide() and onCreate() methods
2024-02-16 15:28:04 +01:00
Mis012
056b911637
handle 'SEND' intent by copying to clipboard, make Activity subclass ContextWrapper, code style fixes
2024-02-10 20:58:38 +01:00
Julian Winkler
88254d822f
replace LinearLayout with AOSPs implementation
...
Also update QuickHelp.md, as LinearLayout was the last custom
implemented ViewGroup
2024-02-10 10:28:48 +01:00
Julian Winkler
c1d8956309
AssetManager: use libandroidfw for everything except XML parsing
...
binary XML parsing still relies on ARSClib for now
2024-02-06 16:41:49 +01:00
Julian Winkler
8d4d0021b3
use libandroidfw also for themes
2024-02-06 16:41:49 +01:00
Julian Winkler
3284518418
AssetManager: use libandroidfw instead of ARSClib for resources.arsc parsing
...
This reduces startup time and RAM usage. Not yet feature complete with
the ARSClib based implementation, but Gravity Defied runs already
2024-02-06 16:41:48 +01:00
Julian Winkler
bf3f595a8c
LinearLayout: set GtkBox to homogeneous if all child weights are equal
...
Real weighted allocation is not supported by GtkBox
2024-01-01 12:11:31 +01:00
Julian Winkler
790255f9ca
ImageView: allow non bitmap Drawables
...
Also pass size of child paintable in DrawableContainer
2023-12-30 23:38:56 +01:00
Julian Winkler
ca3c17d773
implement DrawableContainer and copy StateListDrawable from AOSP
2023-12-30 23:38:56 +01:00
Julian Winkler
8c7dbf6ceb
start implementing Drawable using underlying GdkPaintable
2023-12-30 23:38:48 +01:00
Julian Winkler
1b03fa6e1a
merge View and ViewGroup constructor
...
Introduce empy JavaWidget to replace confusing usage of GtkBox and GtkDrawingArea.
gtk_widget_set_name() is called with the Java class name
2023-12-29 12:16:10 +01:00
Julian Winkler
0614e6c245
add some stubs needed since we now handle onMeasure() for more Views
2023-12-29 11:40:52 +01:00
Julian Winkler
b0fdf53f9b
implement android.widget.ProgressBar using GtkProgressBar
2023-11-12 12:16:23 +01:00
Julian Winkler
987058f55d
implement AudioTrack.pause()
2023-11-12 12:16:23 +01:00
Julian Winkler
bff62a6e77
View: implement visibility and alpha properly
2023-11-12 12:16:23 +01:00
Julian Winkler
36d7a1cc44
support layout margins
...
This makes the menu in Gravity Defied not get behind the keyboard.
Also makes the TabLayout in NewPipe not get behing the titlebar.
2023-11-12 12:16:23 +01:00
Julian Winkler
72a8b3a047
add more stubs
2023-11-12 12:16:23 +01:00
Julian Winkler
d025fd3ce3
FrameLayout: replace with AOSPs implementation
...
There are many Widgets extending FrameLayout and adding custom behaviour
on top. For example NavigationView. This didn't realy work with our
custom implementation
2023-11-08 22:44:39 +01:00
Julian Winkler
6ef1e523cc
View: relayout on visibility changes
2023-11-08 22:44:39 +01:00
Julian Winkler
bcfb384ba4
implement EditText.setOnEditorActionListener()
...
This makes the NewPipe search work again
2023-11-08 22:44:39 +01:00
Mis012
d483828236
android/view/View: naive implementation for setBackgroundColor
2023-10-30 17:28:38 +01:00
Mis012
0b0cfed345
misc: fix stuff up to make SDL example work again
...
it still behaves weirdly, should probably find some
other example since I don't trust my own code.
2023-10-29 22:48:02 +01:00
Mis012
9ef2151c5e
GLSurfaceView: remove old implementation, import the one from AOSP
...
Now that we have a reasonably well working SurfaceView implementation,
it is actually cleaner to just implement GLSurfaceView the way AOSP
does. In fact, their code doesn't have any weird dependencies, and
can mostly be used as-is.
The AOSP code is pure Java, which means we had to implement some
EGL wrappers.
This change fixes issues with Wayland (it only ever worked because
the pbuffers were allocated using an XWayland EGLDisplay), and
with resizing (which we simply didn't support), all while getting
rid of quite some (arguably not very readable) LoC.
2023-10-20 20:54:37 +02:00
Mis012
4a0755c6e0
api-impl{-jni}: make view.onTouchEvent work, misc stuff to make input work for Unity games
...
onTouchEvent was previously incorrectly handled in GLSurfaceView; move it
to View so that it works properly with any of it's descendants.
This is done by reusing the existing setOnTouchListener implementation
and changing it to use GtkEventControllerLegacy which provides motion
events.
Technically some of the code is in WrapperWidget.c since every widget
calls wrapper_widget_set_jobject and we already have related code
there.
2023-10-17 21:33:59 +02:00