UNPKG

theta-client-react-native

Version:

This library provides a way to control RICOH THETA using.

46 lines 1.48 kB
import { NativeEventEmitter } from 'react-native'; import ThetaClientReactNative from '../NativeThetaClientReactNative'; export class NotifyController { static _instance = new NotifyController(); static get instance() { return NotifyController._instance; } eventEmitter = undefined; eventListener = undefined; notifyList = new Map(); init() { this.notifyList.clear(); if (this.eventListener == null) { this.eventListener = this.addNotifyListener(notify => { var _this$notifyList$get; (_this$notifyList$get = this.notifyList.get(notify.name)) === null || _this$notifyList$get === void 0 || _this$notifyList$get(notify); }); } } isInit() { return this.eventListener != null; } release() { var _this$eventListener; (_this$eventListener = this.eventListener) === null || _this$eventListener === void 0 || _this$eventListener.remove(); this.eventListener = undefined; this.eventEmitter = undefined; this.notifyList.clear(); } addNotify(name, callback) { this.notifyList.set(name, callback); } removeNotify(name) { this.notifyList.delete(name); } existsNotify(name) { return this.notifyList.has(name); } addNotifyListener(callback) { if (this.eventEmitter == null) { this.eventEmitter = new NativeEventEmitter(ThetaClientReactNative); } return this.eventEmitter.addListener('ThetaNotify', callback); } } //# sourceMappingURL=notify-controller.js.map