Advertisement
FrayxRulez

Untitled

Dec 7th, 2014
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5.     <script type="text/javascript">
  6.         function isFunction(functionToCheck) {
  7.             if ((functionToCheck == null) || (functionToCheck == undefined)) {
  8.                 return false;
  9.             }
  10.             var getType = {};
  11.             return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
  12.         }
  13.  
  14.  
  15.  
  16.         var PebbleEventListener = {
  17.             events: [],
  18.  
  19.             addEventListener: function (type, callback) {
  20.  
  21.                 if (!this.events[type]) {
  22.                     this.events[type] = [];
  23.  
  24.                     // call the event initializer, if this is the first time we
  25.                     // bind to this event.
  26.                     if (typeof (this._eventInitializers[type]) == 'function') {
  27.                         this._eventInitializers[type]();
  28.                     }
  29.                 }
  30.  
  31.                 if (isFunction(callback)) {
  32.                     this.events[type].push(callback);
  33.                 }
  34.             },
  35.  
  36.             removeEventListener: function (type, callback) {
  37.                 var listeners = this.events[type];
  38.                 if (!listeners) { return; }
  39.  
  40.                 for (var i = listeners.length; i--;) {
  41.                     if (listeners[i] === callback) {
  42.                         listeners.splice(i, 1);
  43.                     }
  44.                 }
  45.             },
  46.  
  47.             _eventInitializers: {},
  48.             dispatchEvent: function (event) {
  49.  
  50.                 var listeners = this.events[event.type];
  51.                 if (!listeners) { return false; }
  52.                 var removeList = [];
  53.                 var returnVal = true;
  54.                 for (var i = 0; i < listeners.length; i++) {
  55.                     try {
  56.                         var removeListener = listeners[i](event);
  57.                         if (removeListener === true) {
  58.                             removeList.push(i);
  59.                         }
  60.                     }
  61.                     catch (e) {
  62.                         //guard against bad external code calls
  63.                         console.log('jskit_system :: PebbleEventListener : bad dispatch on event ' + event.type);
  64.                         returnVal = false;
  65.                     }
  66.                 }
  67.                 for (var i = (removeList.length) - 1; i >= 0; i--) {
  68.                     try {
  69.                         listeners.splice(removeList[i], 1);
  70.                         console.log('jskit_system :: PebbleEventListener : post-dispatch removed listener ' + removeList[i]
  71.                                 + ' on event ' + event.type);
  72.                     }
  73.                     catch (e) {
  74.                         console.log('jskit_system :: PebbleEventListener : post-dispatch failed to remove listener '
  75.                                 + removeList[i]
  76.                                 + ' on event ' + event.type);
  77.                     }
  78.                 }
  79.                 return returnVal;
  80.             }
  81.         }
  82.  
  83.         var PebbleCallbackListener = {
  84.             events: [],
  85.  
  86.             addEventListener: function (type, callback) {
  87.  
  88.                 if (!this.events[type]) {
  89.                     this.events[type] = [];
  90.                 }
  91.  
  92.                 if (isFunction(callback)) {
  93.                     this.events[type].push(callback);
  94.                 }
  95.             },
  96.  
  97.             removeEventListener: function (type, callback) {
  98.                 var listeners = this.events[type];
  99.                 if (!listeners) { return; }
  100.  
  101.                 for (var i = listeners.length; i--;) {
  102.                     if (listeners[i] === callback) {
  103.                         listeners.splice(i, 1);
  104.                     }
  105.                 }
  106.             },
  107.  
  108.             _eventInitializers: {},
  109.             dispatchEvent: function (event) {
  110.  
  111.                 var listeners = this.events[event.type];
  112.                 if (!listeners) { return false; }
  113.                 var removeList = [];
  114.                 var returnVal = true;
  115.                 for (var i = 0; i < listeners.length; i++) {
  116.                     try {
  117.                         var removeListener = listeners[i]();
  118.                         if (removeListener === true) {
  119.                             removeList.push(i);
  120.                         }
  121.                     }
  122.                     catch (e) {
  123.                         //guard against bad external code calls
  124.                         console.log('jskit_system :: PebbleEventListener : bad dispatch on event ' + event.type);
  125.                         returnVal = false;
  126.                     }
  127.                 }
  128.                 for (var i = (removeList.length) - 1; i >= 0; i--) {
  129.                     try {
  130.                         listeners.splice(removeList[i], 1);
  131.                         console.log('jskit_system :: PebbleEventListener : post-dispatch removed listener ' + removeList[i]
  132.                                 + ' on event ' + event.type);
  133.                     }
  134.                     catch (e) {
  135.                         console.log('jskit_system :: PebbleEventListener : post-dispatch failed to remove listener '
  136.                                 + removeList[i]
  137.                                 + ' on event ' + event.type);
  138.                     }
  139.                 }
  140.                 return returnVal;
  141.             }
  142.         }
  143.  
  144.         var guid = (function () {
  145.             function s4() {
  146.                 return Math.floor((1 + Math.random()) * 0x10000)
  147.                            .toString(16)
  148.                            .substring(1);
  149.             }
  150.             return function () {
  151.                 return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
  152.                        s4() + '-' + s4() + s4() + s4();
  153.             };
  154.         })();
  155.  
  156.         function Pebble(key) {
  157.             window.external.notify("ah");
  158.         }
  159.  
  160.         Pebble.addEventListener = function (type, callback) {
  161.             PebbleEventListener.addEventListener(type, callback);
  162.         };
  163.  
  164.         Pebble.removeEventListener = function (type, callback) {
  165.             PebbleEventListener.removeEventListener(type, callback);
  166.         };
  167.  
  168.         Pebble.sendAppMessage = function (data, success, failure) {
  169.             var callbackUuid = guid();
  170.  
  171.             window.external.notify(JSON.stringify({ "method": "sendAppMessage", "data": data, "callback": callbackUuid}));
  172.  
  173.             if (isFunction(success)) {
  174.                 PebbleCallbackListener.addEventListener('sendMessageCallbackSuccess' + callbackUuid, success);
  175.                 //success();
  176.             }
  177.  
  178.             if (isFunction(failure)) {
  179.                 Pebble.addEventListener('sendMessageCallbackFailure' + callbackUuid, failure);
  180.             }
  181.         };
  182.  
  183.         Pebble.openURL = function (url) {
  184.             window.external.notify(JSON.stringify({ "method": "openURL", "data": url }));
  185.         };
  186.  
  187.         Pebble.getAccountToken = function () {
  188.             return '';
  189.         };
  190.  
  191.         Pebble.getWatchToken = function () {
  192.             return '';
  193.         };
  194.  
  195.         Pebble.showSimpleNotificationOnPebble = function (title, text) {
  196.             window.external.notify(JSON.stringify({ "method": "showSimpleNotificationOnPebble", "title": title, "text": text }));
  197.         };
  198.  
  199.         console.log = function (data) {
  200.             window.external.notify(JSON.stringify({ "method": "log", "data": data }));
  201.         }
  202.  
  203.         internalOpenURLCallback = function (content) {
  204.             var event = document.createEvent('Event');
  205.             event.initEvent('webviewclosed', true, true);
  206.             event.type = 'webviewclosed';
  207.             event.data = content;
  208.             event.response = content;
  209.             //event.data = data;
  210.             //event.ready = data;
  211.             var success = PebbleEventListener.dispatchEvent(event);
  212.         };
  213.  
  214.         internalAppMessageCallback = function (content) {
  215.             var event = document.createEvent('Event');
  216.             event.initEvent('appmessage', true, true);
  217.             event.type = 'appmessage';
  218.             event.data = content;
  219.             event.payload = JSON.parse(content);
  220.             //event.data = data;
  221.             //event.ready = data;
  222.  
  223.             console.log(content);
  224.  
  225.             var success = PebbleEventListener.dispatchEvent(event);
  226.         };
  227.  
  228.         function signalTest(eventType) {
  229.             var event = document.createEvent('Event');
  230.             event.initEvent(eventType, true, true);
  231.             event.type = eventType;
  232.             //event.data = data;
  233.             //event.ready = data;
  234.             var success = PebbleEventListener.dispatchEvent(event);
  235.         }
  236.  
  237.         function signalTest2(eventType) {
  238.             var event = document.createEvent('Event');
  239.             event.initEvent(eventType, true, true);
  240.             event.type = eventType;
  241.             //event.data = data;
  242.             //event.ready = data;
  243.             var success = PebbleCallbackListener.dispatchEvent(event);
  244.         }
  245.     </script>
  246. </body>
  247. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement