Skip to content

Commit 6a80f82

Browse files
author
Finn Gutteridge
committed
feat(all): expose markerInfoWindowClosed event
1 parent 30c692e commit 6a80f82

File tree

5 files changed

+33
-5
lines changed

5 files changed

+33
-5
lines changed

demo/app/main-page.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
tilt="{{ tilt }}" i-padding="50,50,50,50" padding="{{ padding }}" mapReady="onMapReady"
66
markerSelect="onMarkerEvent" markerBeginDragging="onMarkerEvent"
77
markerEndDragging="onMarkerEvent" markerDrag="onMarkerEvent"
8-
markerInfoWindowTapped="onMarkerEvent" coordinateTapped="onCoordinateTapped"
8+
markerInfoWindowTapped="onMarkerEvent" markerInfoWindowClosed="onMarkerEvent"
9+
coordinateTapped="onCoordinateTapped"
910
cameraChanged="onCameraChanged"
1011
indoorBuildingFocused="onIndoorBuildingFocused"
1112
indoorLevelActivated="onIndoorLevelActivated"

src/map-view-common.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ export abstract class MapViewBase extends View implements MapView {
173173
public static mapReadyEvent: string = "mapReady";
174174
public static markerSelectEvent: string = "markerSelect";
175175
public static markerInfoWindowTappedEvent: string = "markerInfoWindowTapped";
176+
public static markerInfoWindowClosedEvent: string = "markerInfoWindowClosed";
176177
public static shapeSelectEvent: string = "shapeSelect";
177178
public static markerBeginDraggingEvent: string = "markerBeginDragging";
178179
public static markerEndDraggingEvent: string = "markerEndDragging";
@@ -321,15 +322,23 @@ export abstract class MapViewBase extends View implements MapView {
321322
let args: ShapeEventData = { eventName: eventName, object: this, shape: shape };
322323
this.notify(args);
323324
}
325+
324326
notifyMarkerTapped(marker: MarkerBase) {
325327
this.notifyMarkerEvent(MapViewBase.markerSelectEvent, marker);
326328
}
329+
327330
notifyMarkerInfoWindowTapped(marker: MarkerBase) {
328331
this.notifyMarkerEvent(MapViewBase.markerInfoWindowTappedEvent, marker);
329332
}
333+
334+
notifyMarkerInfoWindowClosed(marker: MarkerBase) {
335+
this.notifyMarkerEvent(MapViewBase.markerInfoWindowClosedEvent, marker);
336+
}
337+
330338
notifyShapeTapped(shape: ShapeBase) {
331339
this.notifyShapeEvent(MapViewBase.shapeSelectEvent, shape);
332340
}
341+
333342
notifyMarkerBeginDragging(marker: MarkerBase) {
334343
this.notifyMarkerEvent(MapViewBase.markerBeginDraggingEvent, marker);
335344
}

src/map-view.android.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@ export class MapView extends MapViewBase {
130130
}
131131
}));
132132

133+
gMap.setOnInfoWindowCloseListener(new com.google.android.gms.maps.GoogleMap.OnInfoWindowCloseListener({
134+
onInfoWindowClose: (gmsMarker) => {
135+
let marker = owner.findMarker((marker: Marker) => marker.android.getId() === gmsMarker.getId());
136+
owner.notifyMarkerInfoWindowClosed(marker);
137+
138+
return false;
139+
}
140+
}));
141+
133142
gMap.setOnMyLocationButtonClickListener(new com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener({
134143
onMyLocationButtonClick: () => {
135144
owner.notifyMyLocationTapped();

src/map-view.ios.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,21 @@ class MapViewDelegateImpl extends NSObject implements GMSMapViewDelegate {
197197
}
198198

199199
public mapViewDidTapInfoWindowOfMarker(mapView: GMSMapView, gmsMarker: GMSMarker): void {
200-
var owner = this._owner.get();
200+
let owner = this._owner.get();
201201
if (owner) {
202-
var marker = owner.findMarker(function (marker) { return marker.ios == gmsMarker; });
202+
let marker: Marker = owner.findMarker((marker: Marker) => marker.ios == gmsMarker);
203203
owner.notifyMarkerInfoWindowTapped(marker);
204204
}
205205
}
206206

207+
public mapViewDidCloseInfoWindowOfMarker(mapView: GMSMapView, gmsMarker: GMSMarker): void {
208+
let owner = this._owner.get();
209+
if (owner) {
210+
let marker: Marker = owner.findMarker((marker: Marker) => marker.ios == gmsMarker);
211+
owner.notifyMarkerInfoWindowClosed(marker);
212+
}
213+
}
214+
207215
public didTapMyLocationButtonForMapView(mapView: GMSMapView): boolean {
208216
const owner = this._owner.get();
209217
if (owner) {

src/package-lock.json

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)