@Override public void setOnInfoWindowCloseListener(OnInfoWindowCloseListener listener) { map.setOnInfoWindowCloseListener(listener); }
@Override public void call() { googleMap.setOnInfoWindowCloseListener(null); } }));
@Override public void onMapReady(GoogleMap map) { mMap = map; // Hide the zoom controls as the button panel will cover it. mMap.getUiSettings().setZoomControlsEnabled(false); // Add lots of markers to the map. addMarkersToMap(); // Setting an info window adapter allows us to change the both the contents and look of the // info window. mMap.setInfoWindowAdapter(new CustomInfoWindowAdapter()); // Set listeners for marker events. See the bottom of this class for their behavior. mMap.setOnMarkerClickListener(this); mMap.setOnInfoWindowClickListener(this); mMap.setOnMarkerDragListener(this); mMap.setOnInfoWindowCloseListener(this); mMap.setOnInfoWindowLongClickListener(this); // Override the default content description on the view, for accessibility mode. // Ideally this string would be localised. mMap.setContentDescription("Map with lots of markers."); LatLngBounds bounds = new LatLngBounds.Builder() .include(PERTH) .include(SYDNEY) .include(ADELAIDE) .include(BRISBANE) .include(MELBOURNE) .include(DARWIN) .build(); mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50)); }
@Override public void call(final Subscriber<? super Marker> subscriber) { GoogleMap.OnInfoWindowCloseListener listener = new GoogleMap.OnInfoWindowCloseListener() { @Override public void onInfoWindowClose(Marker marker) { if (!subscriber.isUnsubscribed()) { subscriber.onNext(marker); } } }; googleMap.setOnInfoWindowCloseListener(listener); subscriber.add(Subscriptions.create(new Action0() { @Override public void call() { googleMap.setOnInfoWindowCloseListener(null); } })); } }
@Test public void shouldEmmitMarker() throws Exception { TestSubscriber<Marker> testSubscriber = new TestSubscriber<>(); new InfoWindowCloseFunc().call(googleMap) .subscribe(testSubscriber); verify(googleMap).setOnInfoWindowCloseListener(argumentCaptor.capture()); argumentCaptor.getValue().onInfoWindowClose(null); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(1); argumentCaptor.getValue().onInfoWindowClose(null); testSubscriber.assertValueCount(2); }