fix: improve MarkerState API
This is a non-breaking change following suggestions from @arriolac for addressing #149: https://github.com/googlemaps/android-maps-compose/pull/150#discussion_r1016963262
This PR does not add an onDrag callback parameter to Marker(), which would be a somewhat breaking change; this functionality is not strictly necessary and I see alternatives that may be preferable.
Summary of changes:
- Deprecate MarkerState.dragState and DragState enum. These were carried over from GoogleMap SDK; they are events that were mischaracterized as states.
- Replace with MarkerState.isDragging boolean.
- Clarify KDoc in several places.
- Add several examples providing patterns for common use cases.
- Organize Marker-related examples into their own folder.
Fixes #149
To be clear: replacing MarkerState.dragState (START/DRAG/END) with MarkerState.isDragging does not lose information, because the information was not valid in the first place, due to the State vs. Event mismatch in dragState.
The MarkerDragEventsActivity example doubles as a proof of concept demonstrating how to recreate DragState events from MarkerState.isDragging plus MarkerState.position. It is equally lossy about DragState events as MarkerState.dragState, short of relying on data race details.
@wangela can I get a review for this PR, please? I'd really like to use these improvements. Thanks.
:tada: This PR is included in version 5.0.3 :tada:
The release is available on:
v5.0.3- GitHub release
Your semantic-release bot :package::rocket: