/* globals NfcUtils, BaseModule, Service */
'use strict';
(function() {
var NfcHandler = function (core) {
this.nfc = core.nfc;
};
/**
* @class NfcCore
*/
BaseModule.create(NfcHandler, {
name: 'NfcHandler',
_start: function nh_start() {
this.nfc.addEventListener('peerready', this);
},
handleEvent: function nh_handleEvent(evt) {
var nfcUtils = new NfcUtils();
if (evt.type !== 'peerready') {
return;
}
var currentApp = Service.query('getTopMostWindow');
if (currentApp && currentApp.isBrowser() && currentApp.config.url) {
var ndefUri = nfcUtils.parseURIString(currentApp.config.url);
this.sendNDEFMessageToNFCPeer(ndefUri, evt);
}
},
/**
* Send NDEF message to NFC peer.
* @param {MozNDEFRecord} message non-null Array of NDEF records.
* @param {Events} nfcEvent an event from mozNfc.onpeerready.
*/
sendNDEFMessageToNFCPeer:
function nh_sendNDEFMessageToNFCPeer(message, nfcEvent) {
if (!message) {
return;
}
var nfcPeer = nfcEvent.peer;
if (!nfcPeer) {
return null;
}
nfcPeer.sendNDEF(message);
}
});
}());