PowerStatus: report 0 minutes as "Estimating..."

When UPower has not yet collected enough data to calculate a time
to discharge, it will report 0 minutes. Show "Estimating..." in
that case instead.

https://bugzilla.gnome.org/show_bug.cgi?id=642753
This commit is contained in:
Giovanni Campagna 2011-02-19 15:40:53 +01:00
parent 102b2e2ca6
commit 89dcd9027d

View File

@ -104,21 +104,27 @@ Indicator.prototype = {
if (device_type == UPDeviceType.BATTERY) { if (device_type == UPDeviceType.BATTERY) {
this._hasPrimary = true; this._hasPrimary = true;
let time = Math.round(seconds / 60); let time = Math.round(seconds / 60);
let minutes = time % 60; if (time == 0) {
let hours = Math.floor(time / 60); // 0 is reported when UPower does not have enough data
let timestring; // to estimate battery life
if (time > 60) { this._batteryItem.label.text = _("Estimating...");
if (minutes == 0) { } else {
timestring = Gettext.ngettext("%d hour remaining", "%d hours remaining", hours).format(hours); let minutes = time % 60;
} else { let hours = Math.floor(time / 60);
/* TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining" */ let timestring;
let template = _("%d %s %d %s remaining"); if (time > 60) {
if (minutes == 0) {
timestring = Gettext.ngettext("%d hour remaining", "%d hours remaining", hours).format(hours);
} else {
/* TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining" */
let template = _("%d %s %d %s remaining");
timestring = template.format (hours, Gettext.ngettext("hour", "hours", hours), minutes, Gettext.ngettext("minute", "minutes", minutes)); timestring = template.format (hours, Gettext.ngettext("hour", "hours", hours), minutes, Gettext.ngettext("minute", "minutes", minutes));
} }
} else } else
timestring = Gettext.ngettext("%d minute remaining", "%d minutes remaining", minutes).format(minutes); timestring = Gettext.ngettext("%d minute remaining", "%d minutes remaining", minutes).format(minutes);
this._batteryItem.label.text = timestring; this._batteryItem.label.text = timestring;
}
this._primaryPercentage.text = Math.round(percentage) + '%'; this._primaryPercentage.text = Math.round(percentage) + '%';
this._batteryItem.actor.show(); this._batteryItem.actor.show();
if (this._deviceItems.length > 0) if (this._deviceItems.length > 0)