Commit Graph

582 Commits

Author SHA1 Message Date
Julian Winkler
654d551377 View.setTranslationY(): queue allocate when called on CoordinatorLayout
androidx adjusts the translation a little bit and immediately
reverts it to trigger a layout pass on the CoordinatorLayout.

Calling gtk_widget_queue_allocate here makes CoordinatorLayout behave
correctly, but it causes strange issues with other Views. Therefore, it is
done only for CoordinatorLayouts for now.
2024-03-28 20:50:05 +01:00
Julian Winkler
66e5d77959 View: clear canceled_event pointer
This is needed, as GdkEvent pointers are not guaranteed to be unique
2024-03-28 20:50:05 +01:00
Julian Winkler
9b9e046d68 implement View.getLocationInWindow() and MotionEvent.offsetLocation()
This is needed for NestedScrollViews to detect and correct parent scroll offset
2024-03-28 20:50:05 +01:00
Julian Winkler
8f770d38d1 implement ViewGroup.removeViewInLayout() 2024-03-28 20:50:05 +01:00
Julian Winkler
e477b56dec OnTouchListener: attach event controllers to WrapperWidget
otherwise, the touch event positions would depend on the scroll offset.
This fixes the glitchy vertical scrolling in ViewPager
2024-03-25 19:50:29 +01:00
Julian Winkler
2879e03120 hack: make GestureOverlayView measure 0 x 0
This restores the behavior before the "remove View.haveComplexMeasure"
commit. This hack is still needed as GTK doesn't allow unhandled events
to propagate to a sibling in the view hierarchy.

This fixes input events in Flappy Bird
2024-03-25 19:43:35 +01:00
Julian Winkler
c9ac8b162a increase java source level to 1.8
Java 8 is supported in art_standalone for quite some time now and recent
openJDK releases dropped Java 7 support
2024-03-24 23:41:06 +01: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
Mis012
df0b5bc1ca graphics: Path: implement (r)quadTo 2024-03-24 22:54:21 +01:00
Julian Winkler
8eb0c0a3c1 implement ColorFilter in GskCanvas
This is needed to make icons follow night mode setting
2024-03-24 22:13:28 +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
0b78cbcc55 some graphics API stubs 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
35f26faa90 ImageButton: implement setDrawable() 2024-03-24 22:13:28 +01:00
Julian Winkler
93b88ad0c3 implement more android.graphics.Matrix methods 2024-03-24 22:13:28 +01:00
Julian Winkler
f4a0191b1c implement VectorDrawable, by loading tmp SVG with gdkpixbuf
This won't work for Apps using VectorDrawableCompat
2024-03-24 21:26:38 +01:00
Julian Winkler
26b6da2c9c fix for atl_test_apks/views_widgets_samples_flower_finder.apk
This was broken since the automatic night mode commit. The sdkVersion
configuration for the AssetManager needs to be at least 24, as some
image resources of the APK are only in res/drawable-v24 subfolder
2024-03-24 15:11:38 +01:00
Julian Winkler
494605932c implement more APIs 2024-03-22 21:02:22 +01:00
Julian Winkler
e8dc6e2f0d implement Uri.Builder with hack for content:// URIs 2024-03-22 21:02:22 +01:00
Julian Winkler
e0b3975eb7 implement PackageManager.resolveContentProvider() 2024-03-22 21:02:22 +01:00
Julian Winkler
7d6eae5fa5 hack: call OnGlobalLayoutListener immediately
The NewPipe DownloadActivity waits for this callback
2024-03-22 21:02:22 +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
Julian Winkler
dda3063e79 PopupMenu: use AOSP MenuInflater and support item visibility 2024-03-22 21:02:22 +01:00
Mis012
0592b71489 View: basic implementation for performHapticFeedback
we currently ignore the feedbackConstant and simply vibrate for 10ms
2024-03-22 14:04:17 +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