wsAPI.subscribeEvents(connmanEventReceived);
console.log('Get all the available technologies');
- $('#connman_technologies').html('');
settings.connman.getTechnologies(function(technologies) {
for (var i = 0; i < technologies.length; i++) {
var technology = technologies[i];
(function(t) {
t.getPowered(function(is_powered) {
t.prop.Powered = is_powered;
- connmanConstructTechnologyElement(t);
+ if ($('#toggle_connman_' + t.prop.Type).length <= 0) {
+ /* element doesn't exist, create it */
+ connmanConstructTechnologyElement(t);
+ } else {
+ /* element already exist */
+ connmanToggleTechnology(t.prop.Type, is_powered);
+ }
}, function(e) {
t.prop.Powered = false;
connmanConstructTechnologyElement(t);
});
})(technology);
} else {
- connmanConstructTechnologyElement(technology);
+ if ($('#toggle_connman_' + technology.prop.Type).length <= 0) {
+ /* element doesn't exist, create it */
+ connmanConstructTechnologyElement(technology);
+ } else {
+ /* element already exist */
+ connmanToggleTechnology(technology.prop.Type, technology.prop.Powered);
+ }
}
}
}, function(e) {
var index = id.lastIndexOf('/');
var technology = id.substring(index + 1);
if (property[1] === true) {
- connmanToggleOn(technology);
+ connmanToggleTechnology(technology, true);
if (technology === 'wifi') {
setTimeout(function() {
/* add a 1 sec delay */
}, 1000);
}
} else {
- connmanToggleOff(technology);
+ connmanToggleTechnology(technology, false);
}
}
console.log('Connman technology ' + technology.prop.Type + ' is powered: ' + technology.prop.Powered);
if (technology.prop.Powered) {
- connmanToggleOn(technology.prop.Type);
+ connmanToggleTechnology(technology.prop.Type, true);
if ($('ul#listview_services_available li').length === 0) {
/* connman only supports wifi scan */
if (technology.prop.Type === 'wifi') {
}
}
} else {
- connmanToggleOff(technology.prop.Type);
+ connmanToggleTechnology(technology.prop.Type, false);
}
$('#toggle_connman_' + technology.prop.Type).change(function() {
$('#listview_connman_service').listview('refresh');
}
-function connmanToggleOn(technology_type) {
+function connmanToggleTechnology(technology_type, powered) {
setTimeout(function() {
- $('#toggle_connman_' + technology_type).val('on').slider('refresh');
- console.log('Turn on toggle #toggle_connman_' + technology_type);
- }, 1000);
-}
-
-function connmanToggleOff(technology_type) {
- setTimeout(function() {
- $('#toggle_connman_' + technology_type).val('off').slider('refresh');
- console.log('Turn off toggle #toggle_connman_' + technology_type);
+ if (powered) {
+ $('#toggle_connman_' + technology_type).val('on').slider('refresh');
+ console.log('Turn on toggle #toggle_connman_' + technology_type);
+ } else {
+ $('#toggle_connman_' + technology_type).val('off').slider('refresh');
+ console.log('Turn off toggle #toggle_connman_' + technology_type);
+ }
}, 1000);
}