Send setTime argument using epoch time
[profile/ivi/SettingsApp.git] / js / api-wifi.js
1 /*
2  * Copyright (c) 2013, Intel Corporation.
3  *
4  * This program is licensed under the terms and conditions of the
5  * Apache License, version 2.0.  The full text of the Apache License is at
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  */
9
10 /* Namespace */
11 var settings = settings || {};
12 settings.wifi = settings.wifi || {};
13
14 var WIFI_SECURITY_TYPE = {
15     NONE: 0,
16     WEP: 1,
17     WPA: 2,
18     WPA2: 3,
19     WPA_ENTERPRISE: 4,
20     WPA2_ENTERPRISE: 5
21 };
22
23 /* Module */
24 settings.wifi = (function() {
25
26     var default_adapter = null;
27
28     /* Adapter class */
29     var WiFiAdapter = function(adapter) {
30             this.wifi_adapter = adapter;
31             this.name = 'Connman-WiFi';
32             this.powered = false;
33         };
34
35     WiFiAdapter.prototype.setPowered = function(powered, success_cb, error_cb) {
36         if (wsAPI === undefined) return;
37         wsAPI.sendRequest(WS_REQUEST_TYPE.WIFI, 'enable', powered, success_cb, error_cb);
38     };
39
40     WiFiAdapter.prototype.getPowered = function(success_cb, error_cb) {
41         if (wsAPI === undefined) return;
42         var me = this;
43         wsAPI.sendRequest(WS_REQUEST_TYPE.WIFI, 'isEnabled', null, function(json_msg) {
44             var result = JSON.parse(json_msg);
45             if (result.isEnabled === undefined) {
46                 console.log('Badly form json message: ' + json_msg);
47             }
48             me.powered = result.isEnabled;
49             success_cb(me.powered);
50         }, error_cb);
51     };
52
53     WiFiAdapter.prototype.scan = function(success_cb, error_cb) {
54         if (wsAPI === undefined) return;
55         wsAPI.sendRequest(WS_REQUEST_TYPE.WIFI, 'scan', null, function(json_msg) {
56             var network_list = JSON.parse(json_msg);
57             if (network_list.access_points === undefined) {
58                 console.log('Badly form json message: ' + json_msg);
59             }
60
61             var results = [];
62             for (var i = 0; i < network_list.access_points.length; i++) {
63                 var network = new settings.wifi.WiFiNetwork(network_list.access_points[i].ssid);
64                 network.connected = network_list.access_points[i].connected;
65                 results.push(network);
66             }
67             success_cb(results);
68         }, error_cb);
69     };
70
71     WiFiAdapter.prototype.connectNetwork = function(network, security, passcode, success_cb, error_cb) {
72         if (wsAPI === undefined) return;
73         var connectionInfo = {
74             'ssid': network,
75             'security': security,
76             'passcode': passcode
77         };
78         wsAPI.sendRequest(WS_REQUEST_TYPE.WIFI, 'connect', connectionInfo, success_cb, error_cb);
79     };
80
81     WiFiAdapter.prototype.disconnectNetwork = function(network, success_cb, error_cb) {
82         if (wsAPI === undefined) return;
83         wsAPI.sendRequest(WS_REQUEST_TYPE.WIFI, 'disconnect', network, success_cb, error_cb);
84     };
85
86     /* Network class */
87     WiFiNetwork = function(ssid) {
88         this.ssid = ssid;
89         this.security = WIFI_SECURITY_TYPE.NONE;
90     };
91
92     WiFiNetwork.prototype.getSecurity = function() {
93         return this.security;
94     }
95
96     function subscribeEvents(callback) {
97         wsAPI.subscribeEvents(callback);
98     }
99
100     function unsubscribeEvents(callback) {
101         wsAPI.unsubscribeEvents(callback);
102     }
103
104     function getDefaultAdapter() {
105         if (default_adapter === null) {
106             default_adapter = new WiFiAdapter(wsAPI);
107         }
108
109         return default_adapter;
110     };
111
112     return {
113         WiFiAdapter: WiFiAdapter,
114         WiFiNetwork: WiFiNetwork,
115         subscribeEvents: subscribeEvents,
116         unsubscribeEvents: unsubscribeEvents,
117         getDefaultAdapter: getDefaultAdapter
118     };
119 })();