Features
Multi-touch Support
Doodle now supports multiple pointers (i.e. touches) by default. So there is no additional work needed to enable this in apps.
PointerInputManagernow tracks a collection of pointers and dispatches events to Views on a per-pointer basis.PointerEventnow has information about the list of pointers (for the View and overall). This lets handlers support multi-touch.Resizernow works better with multi-touch.- Added ability to suppress OS handling of PointerEvent. This is like consume, except it does not affect other app listeners.
Accessibility Support
This release stabilizes accessibility and brings a lot of new support to items in the Controls library.
- View now supports
accessibilityLabel,accessibilityLabelProvider,accessibilityDescriptionProvider, andnextInAccessibleReadOrder. - View's
visibleandenabledproperties are now accessible. - The following widgets now have accessibility support
ToggleButtonSwitchCheckBoxRadioButtonHyperLinkValueSlider(includingSliderorientation)ProgressIndicatorTextInputListTreeTabbedPanelviaBasicTabbedPanelBehavior
BasicSpinnerBehavior,BasicMutableSpinnerBehaviornow supports up/down arrows.
Kotlin IR compiler Support
Apps can now choose to use either the IR or Legacy artifacts.
APIs
- View now has a
firstRender
event and arenderedproperty. - View now has an
opacityproperty (and change event). - Display now exposes
childrenChangedevent. ListObserverandSetObservernow have to specify their source. This adds more semantics for observers, since they no longer only get the data structure that changed. An observer of Tree selection for example, will now know which Tree fired the change instead of the Tree's internal set.Spinner'sitemVisualizernow has access to it.- Removed
pointerLocationfrom PointerInputService.
Fixes | Improvements
TableBehavior/TreeTableBehaviorno longer uses callbacks to trigger rendering of specific parts of a Table. This approach was invalid since it imposed a 1-1 relationship between the behavior and Table. Instead, there are now APIs on Table that are visible within TableBehavior for doing this.- A View's children are now disabled if it is.
Buttonnow disarms/resets model when it is disabled.- Fixed bug in z-order updating.
- Fixed minor render bug in
BasicSpinnerBehaviorbuttons. - Fixed View's children clip poly bug.
- Bug fixes for Basic Spinner behaviors.
- Work-around for iOS keyboard display with text-fields on single click.
- Moved mockk dependency to jvmTest for now since mockk doesn't have JS (IR) support yet.
Dependencies
- Kotlin -> 1.4.31
- Coroutines -> 1.4.2
- Kodein -> 7.5.0
- Mockk -> 1.11.0
- Log4J -> 1.7.30