diff --git a/src/@ionic-native/core/decorators.ts b/src/@ionic-native/core/decorators.ts index 7c668a940..797b9382d 100644 --- a/src/@ionic-native/core/decorators.ts +++ b/src/@ionic-native/core/decorators.ts @@ -119,7 +119,7 @@ export function InstanceCheck(opts: CordovaCheckOptions = {}) { return (pluginObj: Object, methodName: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor => { return { value: function(...args: any[]): any { - if (instanceAvailability(pluginObj)) { + if (instanceAvailability(this)) { return descriptor.value.apply(this, args); } else { diff --git a/src/@ionic-native/plugins/google-maps/index.ts b/src/@ionic-native/plugins/google-maps/index.ts index 172794334..c4ec9fab3 100644 --- a/src/@ionic-native/plugins/google-maps/index.ts +++ b/src/@ionic-native/plugins/google-maps/index.ts @@ -111,10 +111,7 @@ export class GoogleMap { */ @InstanceCheck({ observable: true }) on(eventName: string): Observable { - return new Observable((observer) => { - this._objectInstance.on(eventName, observer.next.bind(observer)); - return () => this._objectInstance.off(event); - }); + return Observable.fromEvent(this._objectInstance, eventName); } /**