Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/js/wifi.js
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2013-02-06 16:36:20 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2013-02-06 16:36:20 (GMT)
commit66dae0ccbc23f4df612711a2e61fadd9b15feb91 (patch)
treea069ef55f4d97b6419f38d8ce86eb19f5cc1f1e7 /apps/system/js/wifi.js
parentb5b9e95e2f4c8ab19cef000c82fcfc0625c52666 (diff)
Empty the system pluginHEADmaster
Diffstat (limited to 'apps/system/js/wifi.js')
-rw-r--r--apps/system/js/wifi.js223
1 files changed, 0 insertions, 223 deletions
diff --git a/apps/system/js/wifi.js b/apps/system/js/wifi.js
deleted file mode 100644
index 3456fdf..0000000
--- a/apps/system/js/wifi.js
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-'use strict';
-
-var Wifi = {
- wifiWakeLocked: false,
-
- wifiEnabled: true,
-
- wifiDisabledByWakelock: false,
-
- // Without wake lock, wait for kOffTime milliseconds and turn wifi off
- // after the conditions are met.
- kOffTime: 60 * 1000,
-
- // if Wifi is enabled but disconnected, try to scan for networks every
- // kScanInterval ms.
- kScanInterval: 20 * 1000,
-
- _scanTimer: null,
-
- init: function wf_init() {
- window.addEventListener('screenchange', this);
-
- var battery = window.navigator.battery;
- battery.addEventListener('chargingchange', this);
-
- if (!window.navigator.mozSettings)
- return;
-
- // If wifi is turned off by us and phone got rebooted,
- // bring wifi back.
- var name = 'wifi.disabled_by_wakelock';
- var req = SettingsListener.getSettingsLock().get(name);
- req.onsuccess = function gotWifiDisabledByWakelock() {
- if (!req.result[name])
- return;
-
- // Re-enable wifi and reset wifi.disabled_by_wakelock
- // SettingsListener.getSettingsLock() always return invalid lock
- // in our usage here.
- // See https://bugzilla.mozilla.org/show_bug.cgi?id=793239
- var lock = navigator.mozSettings.createLock();
- lock.set({ 'wifi.enabled': true });
- lock.set({ 'wifi.disabled_by_wakelock': false });
- };
-
- var self = this;
- var wifiManager = window.navigator.mozWifiManager;
- // when wifi is really enabled, emit event to notify QuickSettings
- wifiManager.onenabled = function onWifiEnabled() {
- var evt = document.createEvent('CustomEvent');
- evt.initCustomEvent('wifi-enabled',
- /* canBubble */ true, /* cancelable */ false, null);
- window.dispatchEvent(evt);
- };
-
- // when wifi is really disabled, emit event to notify QuickSettings
- wifiManager.ondisabled = function onWifiDisabled() {
- var evt = document.createEvent('CustomEvent');
- evt.initCustomEvent('wifi-disabled',
- /* canBubble */ true, /* cancelable */ false, null);
- window.dispatchEvent(evt);
- };
-
- // when wifi status change, emit event to notify StatusBar/UpdateManager
- wifiManager.onstatuschange = function onWifiDisabled() {
- var evt = document.createEvent('CustomEvent');
- evt.initCustomEvent('wifi-statuschange',
- /* canBubble */ true, /* cancelable */ false, null);
- window.dispatchEvent(evt);
- };
-
- // Track the wifi.enabled mozSettings value
- SettingsListener.observe('wifi.enabled', true, function(value) {
- if (!wifiManager && value) {
- self.wifiEnabled = false;
-
- // roll back the setting value to notify the UIs
- // that wifi interface is not available
- if (value) {
- SettingsListener.getSettingsLock().set({
- 'wifi.enabled': false
- });
- }
-
- return;
- }
-
- self.wifiEnabled = value;
-
- clearTimeout(self._scanTimer);
- if (!value)
- return;
-
- // If wifi is enabled but disconnected.
- // we would need to call getNetworks() continuously
- // so we could join known wifi network
- self._scanTimer = setInterval(function wifi_scan() {
- if (wifiManager.connection.status == 'disconnected')
- wifiManager.getNetworks();
- });
- });
-
- var power = navigator.mozPower;
- power.addWakeLockListener(function wifi_handleWakeLock(topic, state) {
- if (topic !== 'wifi')
- return;
-
- self.wifiWakeLocked = (state == 'locked-foreground' ||
- state == 'locked-background');
-
- self.maybeToggleWifi();
- });
- },
-
- handleEvent: function wifi_handleEvent(evt) {
- this.maybeToggleWifi();
- },
-
- // Check the status of screen, wifi wake lock and power source
- // and turn on/off wifi accordingly
- maybeToggleWifi: function wifi_maybeToggleWifi() {
- var battery = window.navigator.battery;
- var wifiManager = window.navigator.mozWifiManager;
- if (!battery || !wifiManager ||
- (!this.wifiEnabled && !this.wifiDisabledByWakelock))
- return;
-
-
- // Let's quietly turn off wifi if there is no wake lock and
- // the screen is off and we are not on a power source.
- if (!ScreenManager.screenEnabled &&
- !this.wifiWakeLocked && !battery.charging) {
- // We don't need to do anything if wifi is not enabled currently
- if (!this.wifiEnabled)
- return;
-
- // We still need to turn of wifi even if there is no Alarm API
- if (!navigator.mozAlarms) {
- console.warn('Turning off wifi without sleep timer because' +
- ' Alarm API is not available');
- this.sleep();
-
- return;
- }
-
- // Set System Message Handler, so we will be notified when alarm goes off.
- this.setSystemMessageHandler();
-
- // Start with a timer, only turn off wifi till timeout.
- var date = new Date(Date.now() + this.kOffTime);
- var self = this;
- var req = navigator.mozAlarms.add(date, 'ignoreTimezone', 'wifi-off');
- req.onsuccess = function wifi_offAlarmSet() {
- self._alarmId = req.result;
- };
- req.onerror = function wifi_offAlarmSetFailed() {
- console.warn('Fail to set wifi sleep timer on Alarm API. ' +
- 'Turn off wifi immediately.');
- self.sleep();
- };
- }
- // ... and quietly turn it back on or cancel the timer otherwise
- else {
- if (this._alarmId) {
- navigator.mozAlarms.remove(this._alarmId);
- this._alarmId = null;
- }
-
- // If wifi is enabled but disconnected.
- // we would need to call getNetworks() so we could join known wifi network
- if (this.wifiEnabled && wifiManager.connection.status == 'disconnected') {
- wifiManager.getNetworks();
- }
-
- // We don't need to do anything if we didn't disable wifi at first place.
- if (!this.wifiDisabledByWakelock)
- return;
-
- var lock = SettingsListener.getSettingsLock();
- // turn wifi back on.
- lock.set({ 'wifi.enabled': true });
-
- this.wifiDisabledByWakelock = false;
- lock.set({ 'wifi.disabled_by_wakelock': false });
- }
- },
-
- // Quietly turn off wifi for real, set wifiDisabledByWakelock to true
- // so we will turn it back on.
- sleep: function wifi_sleep() {
- var lock = SettingsListener.getSettingsLock();
- // Actually turn off the wifi
- lock.set({ 'wifi.enabled': false });
-
- // Remember that it was turned off by us.
- this.wifiDisabledByWakelock = true;
-
- // Keep this value in disk so if the phone reboots we'll
- // be able to turn the wifi back on.
- lock.set({ 'wifi.disabled_by_wakelock': true });
- },
-
- // Register for handling system message,
- // this cannot be done during |init()| because of bug 797803
- setSystemMessageHandler: function wifi_setSystemMessageHandler() {
- if (this._systemMessageHandlerRegistered)
- return;
-
- this._systemMessageHandlerRegistered = true;
- var self = this;
- navigator.mozSetMessageHandler('alarm', function gotAlarm(message) {
- if (message.data !== 'wifi-off')
- return;
-
- self.sleep();
- });
- }
-};
-
-Wifi.init();