Tizen 2.0 Release
[samples/web/ContactsExchanger.git] / js / app.nfc.peer.js
1 /*jslint devel: true*/
2 /*global $, tizen, App, app */
3
4 (function () { // strict mode wrapper
5         'use strict';
6
7         App.NFCPeer = function (nfcControl) {
8                 this.app = nfcControl.app;
9         };
10
11         App.NFCPeer.prototype = {
12
13                 sucSendToTarget: function sucSendToTarget() {
14                 },
15
16                 errSendToTarget: function errSendToTarget(e) {
17                         this.app.nfc.timeExpired('Send problem! ' + e.message);
18                 },
19
20                 errorMessage: function errorMessage(e) {
21                         console.error('Target Receiving Error: ' + e.message);
22                 },
23
24                 setReceiveFromTarget: function setReceiveFromTarget() {
25                         try {
26                                 if (this.app.nfc.nfcTarget) {
27                                         this.app.nfc.nfcTarget.setReceiveNDEFListener(this.app.nfc.readMessage.bind(this.app.nfc), this.errorMessage.bind(this));
28                                 } else {
29                                         console.warn("app.nfc.nfcTarget not set");
30                                 }
31                         } catch (error) {
32                                 console.error('setReceiveFromTarget error: ' + error.message);
33                         }
34                 },
35
36                 sucTargetAttach: function sucTargetAttach(target) {
37                         var newMessage = null,
38                                 separator = String.fromCharCode(30),
39                                 fullContact = localStorage.phoneNumber + separator + localStorage.firstName + separator + localStorage.lastName;
40                         this.app.nfc.nfcTarget = target;
41                         this.setReceiveFromTarget();
42
43                         try {
44                                 newMessage = this.app.nfc.phoneNumber2NDEF(fullContact);
45                         } catch (err) {
46                                 console.error("NDEFMessage problem: " + err.message);
47                         }
48
49                         try {
50                                 target.sendNDEF(newMessage, this.sucSendToTarget.bind(this), this.errSendToTarget.bind(this));
51                         } catch (e) {
52                                 console.error("NDEFMessage problem: " + e.message);
53                         }
54                 },
55
56                 setTargetDetect: function setTargetDetect() {
57                         var err = function (e) {
58                                 console.error('Target Listen Error: ' + e.message);
59                         },
60                                 suc = { onattach: this.sucTargetAttach.bind(this), ondetach: this.app.nfc.sucDetach.bind(this.app.nfc) };
61                         try {
62                                 app.nfc.nfcAdapter.setPeerListener(suc, err);
63                         } catch (error) {
64                                 console.error('error: ' + error.message);
65                         }
66                 }
67         };
68
69 }());