summaryrefslogtreecommitdiffstats
path: root/src/js/bluetooth.js
diff options
context:
space:
mode:
authorHumberto Alfonso Díaz <humberto.alfonso@asvito.es>2019-10-23 09:44:29 +0200
committerLorenzo Tilve <ltilve@igalia.com>2020-02-04 19:20:13 +0100
commit33702aea7ce42c8240e4bed7b424cc8ac4a33826 (patch)
tree6bba05249b6830fa6cdaea1bbd88971e8e027634 /src/js/bluetooth.js
parent00b8929291665238cbcd88676fe65f67900be1c3 (diff)
FUNCT Implement bluetooth screen
Diffstat (limited to 'src/js/bluetooth.js')
-rw-r--r--src/js/bluetooth.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/js/bluetooth.js b/src/js/bluetooth.js
new file mode 100644
index 0000000..679ef0b
--- /dev/null
+++ b/src/js/bluetooth.js
@@ -0,0 +1,50 @@
+import { bluetooth } from 'agl-js-api';
+import Mustache from 'mustache';
+
+var isPowered = false;
+var template;
+
+function update_state(state) {
+ var control = document.getElementById('BluetoothControl');
+ if( state.powered ) {
+ control.classList.add('enabled');
+ } else {
+ control.classList.remove('enabled');
+ }
+}
+
+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);
+ });
+}
+
+export function toggle() {
+ bluetooth.adapter_state().then(function(result) {
+ bluetooth.adapter_state({
+ powered: !result.powered
+ }).then(update_state);
+ });
+}
+
+export function init() {
+ template = document.getElementById('bluetooth-device-template').innerHTML;
+ Mustache.parse(template);
+ bluetooth.adapter_state().then(update_state);
+
+ bluetooth.managed_objects().then(function(result){
+ update_devices(result.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');
+ });
+} \ No newline at end of file