Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #7277 from alivedise/bugzilla/825798/automatic-shu…
Browse files Browse the repository at this point in the history
…tdown-low-battery

Bug 825798 - Automatically shutdown when battery is too low
  • Loading branch information
vingtetun committed Jan 3, 2013
2 parents cc50484 + 58911fd commit dd42ede
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
8 changes: 4 additions & 4 deletions apps/system/index.html
Expand Up @@ -55,10 +55,6 @@
<script defer src="js/system_dialog.js"></script>
<script defer src="js/icc_cache.js"></script>

<!-- Battery Manager -->
<link rel="stylesheet" type="text/css" href="style/battery_manager/battery_manager.css">
<script defer src="js/battery_manager.js"></script>

<!-- Grid View -->
<link rel="stylesheet" type="text/css" href="style/gridview/gridview.css">
<script defer src="js/gridview.js"></script>
Expand All @@ -75,6 +71,10 @@
<link rel="stylesheet" type="text/css" href="style/sleep_menu/sleep_menu.css">
<script defer src="js/sleep_menu.js"></script>

<!-- Battery Manager -->
<link rel="stylesheet" type="text/css" href="style/battery_manager/battery_manager.css">
<script defer src="js/battery_manager.js"></script>

<!-- Keyboard -->
<script defer src="js/keyboard_manager.js"></script>

Expand Down
18 changes: 18 additions & 0 deletions apps/system/js/battery_manager.js
Expand Up @@ -8,6 +8,8 @@ var BatteryManager = {
TRANSITION_SPEED: 1.8,
TRANSITION_FRACTION: 0.30,

AUTO_SHUTDOWN_LEVEL: 0.02,

_notification: null,
_screenOn: true,
_previousLevel: 0,
Expand All @@ -18,10 +20,23 @@ var BatteryManager = {
this.notification = document.getElementById('battery');
},

checkBatteryDrainage: function bm_checkBatteryDrainage() {
var battery = window.navigator.battery;
if (!battery)
return;

if (battery.level <= this.AUTO_SHUTDOWN_LEVEL)
SleepMenu.startPowerOff(false);
},

init: function bm_init() {
this.getAllElements();
var battery = window.navigator.battery;
if (battery) {
// When the device is booted, check if the battery is drained.
// If so, SleepMenu.startPowerOff() would be called.
this.checkBatteryDrainage();

battery.addEventListener('levelchange', this);
battery.addEventListener('chargingchange', this);
}
Expand All @@ -43,7 +58,10 @@ var BatteryManager = {
if (!battery)
return;

this.checkBatteryDrainage();

var level = Math.min(100, Math.round(battery.level * 100));

if (this._screenOn) {
this.notification.dataset.level = level;

Expand Down
4 changes: 4 additions & 0 deletions apps/system/js/sleep_menu.js
Expand Up @@ -219,6 +219,10 @@ var SleepMenu = {
if (!power)
return;

// Early return if we are already shutting down.
if (document.getElementById('poweroff-splash'))
return;

// Show shutdown animation before actually performing shutdown.
// * step1: fade-in poweroff-splash.
// * step2: The 3-rings animation is performed on the screen.
Expand Down

0 comments on commit dd42ede

Please sign in to comment.