From f525a25b49bf96d3af351cb8dba83e6a42a67329 Mon Sep 17 00:00:00 2001 From: Ibby Hadeed Date: Sat, 4 Feb 2017 04:32:41 -0500 Subject: [PATCH] refractor(google-maps): use Observable.fromEvent instead of addEventListener (#1032) --- src/plugins/googlemap.ts | 57 +++++++--------------------------------- 1 file changed, 9 insertions(+), 48 deletions(-) diff --git a/src/plugins/googlemap.ts b/src/plugins/googlemap.ts index 72220b7dc..d76e82162 100644 --- a/src/plugins/googlemap.ts +++ b/src/plugins/googlemap.ts @@ -1,5 +1,6 @@ import { Cordova, CordovaInstance, Plugin, InstanceProperty, getPlugin, pluginWarn } from './plugin'; import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/observable/fromEvent'; declare var plugin: any; @@ -139,12 +140,7 @@ export class GoogleMap { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -631,12 +627,7 @@ export class GoogleMapsMarker { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -911,12 +902,7 @@ export class GoogleMapsCircle { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -1055,12 +1041,7 @@ export class GoogleMapsPolyline { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -1200,12 +1181,7 @@ export class GoogleMapsPolygon { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -1347,12 +1323,7 @@ export class GoogleMapsTileOverlay { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -1481,12 +1452,7 @@ export class GoogleMapsGroundOverlay { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /** @@ -1606,12 +1572,7 @@ export class GoogleMapsKmlOverlay { * @returns {Observable} */ addEventListener(eventName: string): Observable { - return new Observable( - (observer) => { - this._objectInstance.addEventListener(eventName, observer.next.bind(observer)); - return () => this._objectInstance.removeEventListener(eventName, observer.next.bind(observer)); - } - ); + return Observable.fromEvent(this._objectInstance, eventName); } /**