Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
99
assets/webapps/uitest.gaiamobile.org/js/HW/bluetooth.js
Normal file
99
assets/webapps/uitest.gaiamobile.org/js/HW/bluetooth.js
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
'use strict';
|
||||
|
||||
function bluetoothTest() {
|
||||
var bluetooth = window.navigator.mozBluetooth;
|
||||
var settings = window.navigator.mozSettings;
|
||||
var switchButton = document.getElementById('switch');
|
||||
var state = document.getElementById('state');
|
||||
var address = document.getElementById('address');
|
||||
var version = document.getElementById('version');
|
||||
var btHelper = new BluetoothHelper();
|
||||
|
||||
function update() {
|
||||
var req = settings.createLock().get('bluetooth.enabled');
|
||||
req.onsuccess = function() {
|
||||
var isBluetoothEnabled = req.result['bluetooth.enabled'];
|
||||
switchButton.checked = isBluetoothEnabled;
|
||||
if (!isBluetoothEnabled) {
|
||||
state.innerHTML = 'Off';
|
||||
address.innerHTML = 'unknown';
|
||||
}
|
||||
else {
|
||||
state.innerHTML = 'On';
|
||||
if (!btHelper.v2) {
|
||||
btHelper.getAddress(function bt_gotAddress(addr) {
|
||||
if (isBluetoothEnabled) {
|
||||
address.innerHTML = addr;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Click on switch will only update settings and
|
||||
// it takes some time for bluetooth hardware to turns on.
|
||||
// That's why we should listen to 'enabled' event of bluetooth
|
||||
function bluetoothSwitch() {
|
||||
settings.createLock().set({'bluetooth.enabled': switchButton.checked});
|
||||
// set enabled stat for BT APIv2
|
||||
if (switchButton.checked) {
|
||||
btHelper.enable();
|
||||
} else {
|
||||
btHelper.disable();
|
||||
}
|
||||
}
|
||||
|
||||
if (btHelper.v2) {
|
||||
version.textContent = "v2";
|
||||
bluetooth.addEventListener('attributechanged', (evt) => {
|
||||
for (var i in evt.attrs) {
|
||||
switch (evt.attrs[i]) {
|
||||
case 'defaultAdapter':
|
||||
var adapter = bluetooth.defaultAdapter;
|
||||
if (adapter.address) { // for default On case
|
||||
address.innerHTML = adapter.address;
|
||||
}
|
||||
adapter.addEventListener('attributechanged', (evt) => {
|
||||
for (var i in evt.attrs) {
|
||||
switch (evt.attrs[i]) {
|
||||
case 'state':
|
||||
if (adapter.state === 'enabled') {
|
||||
switchButton.checked = true;
|
||||
state.innerHTML = 'On';
|
||||
} else if (adapter.state === 'disabled') {
|
||||
switchButton.checked = false;
|
||||
state.innerHTML = 'Off';
|
||||
address.innerHTML = 'unknown';
|
||||
}
|
||||
break;
|
||||
case 'address':
|
||||
address.innerHTML = adapter.address;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
version.textContent = "v1";
|
||||
bluetooth.addEventListener('adapteradded', update);
|
||||
bluetooth.addEventListener('enabled', update);
|
||||
bluetooth.addEventListener('disabled', update);
|
||||
}
|
||||
|
||||
// init
|
||||
switchButton.addEventListener('click', bluetoothSwitch);
|
||||
|
||||
// Update bluetooth information in the first load
|
||||
update();
|
||||
}
|
||||
|
||||
window.addEventListener('load', bluetoothTest);
|
||||
|
||||
Loading…
Reference in a new issue