1 // set javascript objects for Web APIs of Tizen appwidget
2 if (typeof window.tizen == 'undefined') {
3 console.log("window.tizen object not exists");
4 window.tizen = new Object();
7 window.tizen.appwidget = new Object();
9 // these are functions for overriding standard javascript functions regarding event
10 var original_addEventListener = window.addEventListener;
11 var original_removeEventListener = window.removeEventListener;
13 // this variable is responsible to keep information of appwidget evetns
14 var appWidgetEvents = {};
16 // define event structure for appwidget
17 window.AppWidgetEventInfo = function(event, callback) {
19 this.callback = callback;
22 window.addEventListener = function(event, callback, capture) {
23 var e = event.toLowerCase();
24 if (typeof appWidgetEvents[e] != 'undefined') {
25 appWidgetEvents[e].callback = callback;
27 original_addEventListener.call(window, event, callback, capture);
31 window.removeEventListener = function(event, callback, capture) {
32 var e = event.toLowerCase();
33 if (typeof appWidgetEvents[e] != "undefined") {
34 appWidgetEvents[e].callback = "null";
36 original_removeEventListener.call(window, event, callback, capture);
40 // Define tizen appwidget APIs
41 window.tizen.appwidget.reload = function() {
42 window.location.href = "box://reload";
45 window.tizen.appwidget.changePeriod = function(period) {
46 switch (arguments.length) {
48 window.location.href = "box://change-period";
51 window.location.href = "box://change-period?period=" + period;
54 window.location.href = "box://change-period";
59 window.tizen.appwidget.launchBrowser = function(url) {
60 window.location.href = "box://launch-browser?url=" + url;
63 window.tizen.appwidget.scrollStart = function() {
64 window.location.href = "box://scroll-start";
67 window.tizen.appwidget.scrollStop = function() {
68 window.location.href = "box://scroll-stop";
71 window.tizen.appwidget.sendMessageToBox = function(message) {
72 window.location.href = "box://send-message-to-box?message=" + message;
75 window.tizen.appwidget.sendMessageToPd = function(message) {
76 window.location.href = "box://send-message-to-pd?message=" + message;
80 // define specific function for registering appwidget event
81 registerAppWidgetEvent: function(event) {
82 return (appWidgetEvents[event] = new AppWidgetEventInfo(event, "null"));
85 // define specific function for firing registered appwidget event
86 fireAppWidgetEvent: function(event, data) {
87 // this is called by web-provider, which is native code
88 if (typeof appWidgetEvents[event] != 'undefined') {
89 setTimeout(function() {
90 appWidgetEvents[event].callback(data);
92 console.log("fire appwidget event: " + event);
94 console.log("unknown appwidget event: " + event);
99 // register custom events for appwidget
100 webprovider.registerAppWidgetEvent("pdmessage");
101 webprovider.registerAppWidgetEvent("boxmessage");