Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.04 KB | None | 0 0
  1. public static Observable<BoundingBox> observeMapBoundingBox(final MapController mapController) {
  2.   return Observable.create(new Observable.OnSubscribe<BoundingBox>() {
  3.     @Override
  4.     public void call(final Subscriber<? super BoundingBox> subscriber) {
  5.       final OnMapListener listener = new OnMapListener() {
  6.         @Override
  7.         public void onMapActionEvent(MapEvent mapEvent) {
  8.           switch (mapEvent.getMsg()) {
  9.             case MapEvent.MSG_SCALE_END:
  10.             case MapEvent.MSG_SCROLL_END:
  11.             case MapEvent.MSG_ZOOM_END:
  12.               if (!subscriber.isUnsubscribed()) {
  13.                 subscriber.onNext(getViewportBoundingBox(mapController));
  14.               }
  15.               break;
  16.           }
  17.         }
  18.       };
  19.       mapController.addMapListener(listener);
  20.       //если от последовательности отписались - удалить этого слушателя
  21.       subscriber.add(Subscriptions.create(() -> {
  22.         mapController.removeMapListener(listener);
  23.       }));
  24.     }
  25.   });
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement