betaflight-configurator/background.js

49 lines
1.7 KiB
JavaScript

function start_app() {
chrome.app.window.create('main.html', {
id: 'main-window',
frame: 'none',
resizable: false
}, function(window_child) {
window_child.onClosed.addListener(function() {
// connectionId is passed from the script side through the chrome.runtime.getBackgroundPage refference
// allowing us to automatically close the port when application shut down
// save connectionId in separate variable before app_window is destroyed
var connectionId = app_window.serial.connectionId;
if (connectionId > 0) {
chrome.serial.disconnect(connectionId, function(result) {
console.log('SERIAL: Connection closed - ' + result);
});
}
});
});
}
chrome.app.runtime.onLaunched.addListener(function() {
start_app();
});
chrome.runtime.onInstalled.addListener(function(details) {
if (details.reason == 'update') {
var manifest = chrome.runtime.getManifest();
var options = {
priority: 0,
type: 'basic',
title: 'Baseflight Configurator Update',
message: 'Application just updated to version: ' + manifest.version,
iconUrl: '/images/icon_128.png',
buttons: [{'title': 'Click this button to start the application'}]
};
chrome.notifications.create('baseflight_update', options, function(notificationId) {
// empty
});
}
});
chrome.notifications.onButtonClicked.addListener(function(notificationId, buttonIndex) {
if (notificationId == 'baseflight_update') {
start_app();
}
});