UNPKG

theta-client-react-native

Version:

This library provides a way to control RICOH THETA using.

54 lines (53 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotifyController = void 0; var _reactNative = require("react-native"); var _NativeThetaClientReactNative = _interopRequireDefault(require("../NativeThetaClientReactNative")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } 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 _reactNative.NativeEventEmitter(_NativeThetaClientReactNative.default); } return this.eventEmitter.addListener('ThetaNotify', callback); } } exports.NotifyController = NotifyController; //# sourceMappingURL=notify-controller.js.map