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.
40 lines
965 B
40 lines
965 B
class Battery { |
|
constructor() { |
|
this._battery = document.querySelector("#battery-label"); |
|
this._info = {}; |
|
this._init(); |
|
} |
|
|
|
_updateData() { |
|
this._info = lightdm.batteryData; |
|
var level = this._info.level; |
|
var state = this._info.state; |
|
var ac = this._info.ac_status; |
|
var icon = 0; |
|
var charging = ""; |
|
var blevel = Math.floor(level / 10) * 10; |
|
icon = `-${blevel}`; |
|
charging = ac == 1 ? "-charging" : ""; |
|
|
|
if (blevel < 10) icon = "-outline"; |
|
if (level == 100 && ac == 0) { |
|
icon = ""; |
|
} |
|
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(); |
|
} |
|
|
|
_init() { |
|
this._setTimer(); |
|
} |
|
}
|
|
|