Skip to content

Commit

Permalink
Bug 824457 - Make FTU Wifi usable, r=evelyn, a=blocking-basecamp
Browse files Browse the repository at this point in the history
  • Loading branch information
alivedise committed Dec 29, 2012
1 parent 12b4551 commit 12ee1d2
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
13 changes: 10 additions & 3 deletions apps/communications/ftu/js/ui.js
Expand Up @@ -323,7 +323,7 @@ var UIManager = {
li.dataset.ssid = network.ssid;
// Show authentication method
var keys = network.capabilities;
if (network.connected) {
if (WifiManager.isConnectedTo(network)) {
small.textContent = _('shortStatus-connected');
} else {
if (keys && keys.length) {
Expand All @@ -340,7 +340,11 @@ var UIManager = {
li.appendChild(ssidp);
li.appendChild(small);
// Append to DOM
networksDOM.appendChild(li);
if (WifiManager.isConnectedTo(network)) {
networksDOM.insertBefore(li, networksDOM.firstChild);
} else {
networksDOM.appendChild(li);
}
}
}
},
Expand All @@ -352,8 +356,11 @@ var UIManager = {
},

updateNetworkStatus: function uim_uns(ssid, status) {
if (!document.getElementById(ssid))
return;

document.getElementById(ssid).
querySelector('p:last-child').innerHTML = status;
querySelector('p:last-child').innerHTML = _('shortStatus-' + status);
},

updateDataConnectionStatus: function uim_udcs(status) {
Expand Down
19 changes: 19 additions & 0 deletions apps/communications/ftu/js/wifi.js
Expand Up @@ -9,6 +9,21 @@ var WifiManager = {
this.gCurrentNetwork = this.api.connection.network;
}
},
isConnectedTo: function wn_isConnectedTo(network) {
/**
* XXX the API should expose a 'connected' property on 'network',
* and 'gWifiManager.connection.network' should be comparable to 'network'.
* Until this is properly implemented, we just compare SSIDs and capabilities
* to tell wether the network is already connected or not.
*/
var currentNetwork = this.api.connection.network;
if (!currentNetwork || this.api.connection.status != 'connected')
return false;
var key = network.ssid + '+' + network.capabilities.join('+');
var curkey = currentNetwork.ssid + '+' +
currentNetwork.capabilities.join('+');
return (key == curkey);
},
scan: function wn_scan(callback) {
if ('mozWifiManager' in window.navigator) {
var req = WifiManager.api.getNetworks();
Expand Down Expand Up @@ -84,6 +99,7 @@ var WifiManager = {
}
} else {
// Connect directly
this.gCurrentNetwork = network;
this.api.associate(network);
return;
}
Expand Down Expand Up @@ -113,6 +129,9 @@ var WifiManager = {
UIManager.updateNetworkStatus(self.ssid, event.status);
if (event.status == 'connected') {
self.isConnected = true;
if (self.networks && self.networks.length) {
UIManager.renderNetworks(self.networks);
}
} else {
self.isConnected = false;
}
Expand Down

0 comments on commit 12ee1d2

Please sign in to comment.