diff --git a/index.js b/index.js index 886b433..27eb749 100644 --- a/index.js +++ b/index.js @@ -13,31 +13,41 @@ export const NdefRecordType = { MIME : "MIME" }; - +const NFC_DISCOVERED = '__NFC_DISCOVERED'; let _registeredToEvents = false; -const _listeners = []; +let _listeners = {}; let _registerToEvents = () => { if(!_registeredToEvents){ NativeModules.ReactNativeNFC.getStartUpNfcData(_notifyListeners); - DeviceEventEmitter.addListener('__NFC_DISCOVERED', _notifyListeners); + DeviceEventEmitter.addListener(NFC_DISCOVERED, _notifyListeners); _registeredToEvents = true; } }; let _notifyListeners = (data) => { if(data){ - for(let i in _listeners){ - _listeners[i](data); + for(let _listener in _listeners){ + _listeners[_listener](data); } } }; const NFC = {}; -NFC.addListener = (callback) => { - _listeners.push(callback); +NFC.addListener = (name, callback) => { + _listeners[name] = callback; _registerToEvents(); }; +NFC.removeListener = (name) => { + delete _listeners[name]; +}; + +NFC.removeAllListeners = () => { + DeviceEventEmitter.removeAllListeners(NFC_DISCOVERED); + _listeners = {}; + _registeredToEvents = false; +}; + export default NFC; \ No newline at end of file