You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
class Battery { |
|
constructor() { |
|
this._battery = document.querySelector("#battery-label") |
|
this._info = {} |
|
this._init() |
|
} |
|
|
|
_updateData() { |
|
lightdm.batteryUpdate() |
|
this._info = lightdm.batteryData |
|
var level = this._info.level |
|
var state = this._info.state |
|
var icon = 0 |
|
var charging = "" |
|
var blevel = Math.floor(level / 10) * 10 |
|
icon = `-${blevel}` |
|
charging = state == "Charging" ? "-charging" : "" |
|
|
|
if (blevel < 10) icon = "-outline" |
|
if (state == "Full" ) { icon = ""; charging = ""} |
|
if (level >= 0) { |
|
this._battery.style.visibility = "visible" |
|
this._battery.innerHTML = `<span class="mdi mdi-battery${charging}${icon}"></span> ${level}%` |
|
} else { |
|
this._battery.innerHTML = "" |
|
this._battery.style.visibility = "hidden" |
|
} |
|
} |
|
|
|
_setTimer() { |
|
if (!lightdm.can_access_battery) return |
|
this._updateData() |
|
setTimeout(() => { |
|
this._updateData() |
|
}, 5 * 1000) |
|
setInterval(() => { |
|
this._updateData() |
|
}, 20 * 1000) // Every 20 seconds |
|
} |
|
|
|
_init() { |
|
this._setTimer() |
|
} |
|
}
|
|
|