[gnome-shell] PowerStatus: report 0 minutes as "Estimating..."



commit 89dcd9027d29601bc45c0852485dc243a56d173f
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Sat Feb 19 15:40:53 2011 +0100

    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

 js/ui/status/power.js |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)
---
diff --git a/js/ui/status/power.js b/js/ui/status/power.js
index 9446933..f3625cc 100644
--- a/js/ui/status/power.js
+++ b/js/ui/status/power.js
@@ -104,21 +104,27 @@ Indicator.prototype = {
             if (device_type == UPDeviceType.BATTERY) {
                 this._hasPrimary = true;
                 let time = Math.round(seconds / 60);
-                let minutes = time % 60;
-                let hours = Math.floor(time / 60);
-                let timestring;
-                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));
-                    }
-                } else
-                    timestring = Gettext.ngettext("%d minute remaining", "%d minutes remaining", minutes).format(minutes);
-                this._batteryItem.label.text = timestring;
+                if (time == 0) {
+                    // 0 is reported when UPower does not have enough data
+                    // to estimate battery life
+                    this._batteryItem.label.text = _("Estimating...");
+                } else {
+                    let minutes = time % 60;
+                    let hours = Math.floor(time / 60);
+                    let timestring;
+                    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));
+                        }
+                    } else
+                        timestring = Gettext.ngettext("%d minute remaining", "%d minutes remaining", minutes).format(minutes);
+                    this._batteryItem.label.text = timestring;
+                }
                 this._primaryPercentage.text = Math.round(percentage) + '%';
                 this._batteryItem.actor.show();
                 if (this._deviceItems.length > 0)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]