Skip to content

fix: improve MarkerState API - #515

Merged
dkhawk merged 6 commits into
googlemaps:mainfrom
bubenheimer:improve_markerstate
Jun 6, 2024
Merged

fix: improve MarkerState API#515
dkhawk merged 6 commits into
googlemaps:mainfrom
bubenheimer:improve_markerstate

Conversation

@bubenheimer

Copy link
Copy Markdown
Contributor

This is a non-breaking change following suggestions from @arriolac for addressing #149: #150 (comment)

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:

  1. Deprecate MarkerState.dragState and DragState enum. These were carried over from GoogleMap SDK; they are events that were mischaracterized as states.
  2. Replace with MarkerState.isDragging boolean.
  3. Clarify KDoc in several places.
  4. Add several examples providing patterns for common use cases.
  5. Organize Marker-related examples into their own folder.

Fixes #149

@bubenheimer

bubenheimer commented Jan 29, 2024

Copy link
Copy Markdown
Contributor Author

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.

@bubenheimer

Copy link
Copy Markdown
Contributor Author

@wangela can I get a review for this PR, please? I'd really like to use these improvements. Thanks.

This is a non-breaking change following suggestions from @arriolac for addressing googlemaps#149: googlemaps#150 (comment)

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:

1. Deprecate MarkerState.dragState and DragState enum. These were carried over from GoogleMap SDK; they are events that were mischaracterized as states.
2. Replace with MarkerState.isDragging boolean.
3. Clarify KDoc in several places.
4. Add several examples providing patterns for common use cases.
5. Organize Marker-related examples into their own folder.

Fixes googlemaps#149
…States from a changing model list of marker positions by collecting results from key() composable

Rename marker examples folder to markerexamples for clarity
@bubenheimer
bubenheimer force-pushed the improve_markerstate branch from c8d1f88 to 04342cf Compare May 27, 2024 13:49
@dkhawk
dkhawk merged commit 3b40b92 into googlemaps:main Jun 6, 2024
googlemaps-bot pushed a commit that referenced this pull request Jun 6, 2024
## [5.0.3](v5.0.2...v5.0.3) (2024-06-06)

### Bug Fixes

* improve MarkerState API ([#515](#515)) ([3b40b92](3b40b92)), closes [#149](#149) [/github.com//pull/150#discussion_r1016963262](https://github.com//github.com/googlemaps/android-maps-compose/pull/150/issues/discussion_r1016963262) [#149](#149)
@googlemaps-bot

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 5.0.3 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Marker dragging: fix loss of drag events and difficulty observing marker positions

4 participants