summaryrefslogtreecommitdiffstats
path: root/src/js
diff options
context:
space:
mode:
authorHumberto Alfonso Díaz <humberto.alfonso@asvito.es>2019-11-27 14:00:37 +0100
committerLorenzo Tilve <ltilve@igalia.com>2020-02-04 19:20:13 +0100
commit56514d2337ab5b1d2d8f3666c211e2e04f73bd68 (patch)
tree918219a94418c50b9bcc74d038527ea9aa8ebdab /src/js
parentdb370a3eaac20d716ae1401dbf8383d7ece89a9f (diff)
FUNCT Added bluetooth screen
Diffstat (limited to 'src/js')
-rw-r--r--src/js/app.js6
-rw-r--r--src/js/bluetooth.js74
-rw-r--r--src/js/wifi.js34
3 files changed, 101 insertions, 13 deletions
diff --git a/src/js/app.js b/src/js/app.js
index 8e80039..ed7b028 100644
--- a/src/js/app.js
+++ b/src/js/app.js
@@ -1,8 +1,12 @@
import { init as init_bluetooth } from './bluetooth';
+import { init as init_wifi } from './wifi';
import { api } from 'agl-js-api';
export function init() {
api.init();
init_bluetooth();
-} \ No newline at end of file
+ // init_wifi();
+}
+
+window.api = api; \ No newline at end of file
diff --git a/src/js/bluetooth.js b/src/js/bluetooth.js
index 679ef0b..30c2d82 100644
--- a/src/js/bluetooth.js
+++ b/src/js/bluetooth.js
@@ -1,8 +1,10 @@
import { bluetooth } from 'agl-js-api';
import Mustache from 'mustache';
-var isPowered = false;
+window.bluetooth = bluetooth;
+
var template;
+var filterBy = 'available';
function update_state(state) {
var control = document.getElementById('BluetoothControl');
@@ -14,12 +16,27 @@ function update_state(state) {
}
function update_devices(devices) {
- console.log('update_devices', devices);
var deviceList = document.getElementById('BluetoothContainer');
deviceList.innerHTML = '';
devices.forEach(function(device) {
- deviceList.innerHTML += Mustache.render(template, device);
+ if ( filterBy === 'connected' && device.properties.connected ) {
+ deviceList.innerHTML += Mustache.render(template, device);
+ } else if ( filterBy === 'paired' &&
+ device.properties.paired &&
+ !device.properties.connected ) {
+ deviceList.innerHTML += Mustache.render(template, device);
+ } else if ( filterBy === 'available' &
+ !device.properties.connected &&
+ !device.properties.paired) {
+ deviceList.innerHTML += Mustache.render(template, device);
+ }
+ });
+}
+
+function refresh_devices() {
+ bluetooth.managed_objects().then(function(result){
+ update_devices(result.devices);
});
}
@@ -34,17 +51,50 @@ export function toggle() {
export function init() {
template = document.getElementById('bluetooth-device-template').innerHTML;
Mustache.parse(template);
- bluetooth.adapter_state().then(update_state);
+ bluetooth.adapter_state({
+ discovery: true
+ }).then(update_state);
+ refresh_devices();
- bluetooth.managed_objects().then(function(result){
- update_devices(result.devices);
+ // This code has been commented to improve performance
+ // bluetooth.on_device_changes(function(data) {
+ // bluetooth.managed_objects().then(function(result){
+ // update_devices(result.devices);
+ // });
+ // }).then(function(result) {
+ // console.log('SUBSCRIBED TO DEVICE CHANGES');
+ // });
+}
+
+export function filter(filter) {
+ filterBy = filter;
+ refresh_devices();
+}
+
+export function getFilter() {
+ return filterBy;
+}
+
+export function remove(deviceId) {
+ bluetooth.remove_device(deviceId).then(function() {
+ refresh_devices();
+ });
+}
+
+export function pair(deviceId) {
+ bluetooth.pair(deviceId).then(function() {
+ refresh_devices();
});
+}
+
+export function connect(deviceId) {
+ bluetooth.connect(deviceId).then(function() {
+ refresh_devices();
+ });
+}
- bluetooth.on_device_changes(function(data) {
- bluetooth.managed_objects().then(function(result){
- update_devices(result.devices);
- });
- }).then(function(result) {
- console.log('SUBSCRIBED TO DEVICE CHANGES');
+export function disconnect(deviceId) {
+ bluetooth.disconnect(deviceId).then(function() {
+ refresh_devices();
});
} \ No newline at end of file
diff --git a/src/js/wifi.js b/src/js/wifi.js
new file mode 100644
index 0000000..35e7235
--- /dev/null
+++ b/src/js/wifi.js
@@ -0,0 +1,34 @@
+import { network } from 'agl-js-api';
+import Mustache from 'mustache';
+
+var template;
+
+
+function update_devices(devices) {
+ console.log('update_devices', devices);
+ var deviceList = document.getElementById('WifiContainer');
+ deviceList.innerHTML = '';
+
+ devices.forEach(function(device) {
+ if( device.properties.type === 'wifi' ) {
+ deviceList.innerHTML += Mustache.render(template, device);
+ }
+ });
+}
+
+export function init() {
+ template = document.getElementById('wifi-device-template').innerHTML;
+ Mustache.parse(template);
+
+ setInterval(function() {
+ network.services().then(function(result) {
+ update_devices(result.values);
+ })
+ }, 10000);
+
+ network.on_global_state(function(result) {
+ console.log('on_global_state', result);
+ }).then(function(){
+ console.log('SUBSCRIBED', 'on_global_state');
+ });
+} \ No newline at end of file