f2d7b165001861c662246b52f2b2c6a42592701d
[platform/framework/web/web-provider.git] / src / Core / View / injection.js
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();
5 }
6
7 window.tizen.appwidget = new Object();
8
9 // these are functions for overriding standard javascript functions regarding event
10 var original_addEventListener = window.addEventListener;
11 var original_removeEventListener = window.removeEventListener;
12
13 // this variable is responsible to keep information of appwidget evetns
14 var appWidgetEvents = {};
15
16 // define event structure for appwidget
17 window.AppWidgetEventInfo = function(event, callback) {
18     this.event = event;
19     this.callback = callback;
20 };
21
22 window.addEventListener = function(event, callback, capture) {
23     var e = event.toLowerCase();
24     if (typeof appWidgetEvents[e] != 'undefined') {
25         appWidgetEvents[e].callback = callback;
26     } else {
27         original_addEventListener.call(window, event, callback, capture);
28     }
29 };
30
31 window.removeEventListener = function(event, callback, capture) {
32     var e = event.toLowerCase();
33     if (typeof appWidgetEvents[e] != "undefined") {
34         appWidgetEvents[e].callback = "null";
35     } else {
36         original_removeEventListener.call(window, event, callback, capture);
37     }
38 };
39
40 // Define tizen appwidget APIs
41 window.tizen.appwidget.reload = function() {
42     window.location.href = "box://reload";
43 }
44
45 window.tizen.appwidget.changePeriod = function(period) {
46     switch (arguments.length) {
47     case 0:
48         window.location.href = "box://change-period";
49         break;
50     case 1:
51         window.location.href = "box://change-period?period=" + period;
52         break;
53     default:
54         window.location.href = "box://change-period";
55         break;
56     }
57 }
58
59 window.tizen.appwidget.launchBrowser = function(url) {
60     window.location.href = "box://launch-browser?url=" + url;
61 }
62
63 window.tizen.appwidget.scrollStart = function() {
64     window.location.href = "box://scroll-start";
65 }
66
67 window.tizen.appwidget.scrollStop = function() {
68     window.location.href = "box://scroll-stop";
69 }
70
71 window.tizen.appwidget.sendMessageToBox = function(message) {
72     window.location.href = "box://send-message-to-box?message=" + message;
73 }
74
75 window.tizen.appwidget.sendMessageToPd = function(message) {
76     window.location.href = "box://send-message-to-pd?message=" + message;
77 }
78
79 var webprovider = {
80     // define specific function for registering appwidget event
81     registerAppWidgetEvent: function(event) {
82         return (appWidgetEvents[event] = new AppWidgetEventInfo(event, "null"));
83     },
84
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);
91             }, 0);
92             console.log("fire appwidget event: " + event);
93         } else {
94             console.log("unknown appwidget event: " + event);
95         }
96     },
97 }
98
99 // register custom events for appwidget
100 webprovider.registerAppWidgetEvent("pdmessage");
101 webprovider.registerAppWidgetEvent("boxmessage");