From 33702aea7ce42c8240e4bed7b424cc8ac4a33826 Mon Sep 17 00:00:00 2001 From: Humberto Alfonso Díaz Date: Wed, 23 Oct 2019 09:44:29 +0200 Subject: FUNCT Implement bluetooth screen --- src/js/bluetooth.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/js/bluetooth.js (limited to 'src/js/bluetooth.js') 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 -- cgit 1.2.3-korg