2 /*global $, tizen, nfcAdapter: true, appStarted: true, timeOutHandler, nfcTarget: true, nfcStateMemory: true, convertNDEF2phoneNumber, loadStartPage, resolveContact, displayContact: true */
4 var fillRecordInfo = function (record) {
7 var contactsData = resolveContact(convertNDEF2phoneNumber(record.payload));
8 displayContact(contactsData);
14 var readMessage = function (message) {
17 fillRecordInfo(message.records[0]);
19 console.log(e.message);
23 var contact2NDEF = function (contact) {
25 var t, a = [], i, newMessage = new tizen.NDEFMessage();
26 if (typeof contact === 'string') {
29 t = contact.convertToString("VCARD_30");
32 for (i = 0; i < a.length; i += 1) {
33 a[i] = t.charCodeAt(i);
35 newMessage.records[0] = new tizen.NDEFRecordMedia('text/x-vcard', a);
39 var phoneNumber2NDEF = function (contact) {
41 var phoneNumberArray = [], i, length = contact.length, newMessage = new tizen.NDEFMessage();
42 for (i = 0; i < length; i += 1) {
43 phoneNumberArray.push(contact.charCodeAt(i));
45 newMessage.records[0] = new tizen.NDEFRecordMedia('text/x-vcard', phoneNumberArray);
49 var convertNDEF2phoneNumber = function (contact) {
51 var i, length = contact.length, phoneNumber = '';
52 for (i = 0; i < length; i += 1) {
53 phoneNumber += String.fromCharCode(contact[i]);
58 var startNFC = function () {
60 var onPowerOn, onPowerOnFails;
62 onPowerOn = function () {
66 onPowerOnFails = function (err) {
67 console.log('Power On error: ' + err.message);
71 nfcAdapter = tizen.nfc.getDefaultAdapter();
73 if (nfcAdapter.powered) {
74 nfcStateMemory = true;
77 nfcStateMemory = false;
78 nfcAdapter.setPowered(true, onPowerOn, onPowerOnFails);
81 console.log('setPowered(true) problem: ' + err);
84 console.log('getDefaultAdapter() method problem: ' + e);
88 var stopNFC = function () {
90 var onPowerOff, onPowerOffFails;
92 onPowerOff = function () {
93 tizen.application.getCurrentApplication().exit();
96 onPowerOffFails = function (err) {
97 console.log('Power Off error: ' + err.message);
98 tizen.application.getCurrentApplication().exit();
102 if (nfcStateMemory) {
105 nfcAdapter.setPowered(false, onPowerOff, onPowerOffFails);
108 console.log('setPowered(false) problem: ' + err);
112 var unsetTargetDetect = function () {
115 nfcTarget.unsetReceiveNDEFListener();
118 console.log('error: ' + error.message);
121 nfcAdapter.unsetPeerListener();
123 console.log('error: ' + e.message);
127 var unsetTagDetect = function () {
130 nfcAdapter.unsetTagListener();
132 console.log('error: ' + error.message);
136 var moveToStartPage = function (monit) {
138 $('#start').data('monit', monit || '');
139 $.mobile.changePage('#start');
142 var moveToContactPage = function (obj) {
144 $('#start').data('monit', '');
145 $('#contact').data('contactsData', obj);
146 $.mobile.changePage('#contact');
149 var timeExpired = function (monit) {
151 clearTimeout(timeOutHandler);
157 moveToStartPage(monit);
160 var displayContact = function (obj) {
162 clearTimeout(timeOutHandler);
168 moveToContactPage(obj);
171 var sucDetach = function () {
173 console.log('sucDetach');