From 0e6cc20ca922a2985a43ec342eeeefe21082c348 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Thu, 19 Apr 2018 03:08:48 +0200 Subject: lib: Mention that battery level is preferred when present And print "should be ignored" next to the percentage. https://bugs.freedesktop.org/show_bug.cgi?id=97484 --- libupower-glib/up-device.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libupower-glib/up-device.c b/libupower-glib/up-device.c index 23a84ed..8bfd98a 100644 --- a/libupower-glib/up-device.c +++ b/libupower-glib/up-device.c @@ -270,6 +270,7 @@ up_device_to_text (UpDevice *device) const gchar *serial; UpDeviceKind kind; gboolean is_display; + UpDeviceLevel battery_level; g_return_val_if_fail (UP_IS_DEVICE (device), NULL); g_return_val_if_fail (device->priv->proxy_device != NULL, NULL); @@ -324,8 +325,9 @@ up_device_to_text (UpDevice *device) kind == UP_DEVICE_KIND_UPS) g_string_append_printf (string, " state: %s\n", up_device_state_to_string (up_exported_device_get_state (priv->proxy_device))); g_string_append_printf (string, " warning-level: %s\n", up_device_level_to_string (up_exported_device_get_warning_level (priv->proxy_device))); - if (up_exported_device_get_battery_level (priv->proxy_device) != UP_DEVICE_LEVEL_NONE) - g_string_append_printf (string, " battery-level: %s\n", up_device_level_to_string (up_exported_device_get_battery_level (priv->proxy_device))); + battery_level = up_exported_device_get_battery_level (priv->proxy_device); + if (battery_level != UP_DEVICE_LEVEL_NONE) + g_string_append_printf (string, " battery-level: %s\n", up_device_level_to_string (battery_level)); if (kind == UP_DEVICE_KIND_BATTERY) { g_string_append_printf (string, " energy: %g Wh\n", up_exported_device_get_energy (priv->proxy_device)); if (!is_display) @@ -368,8 +370,12 @@ up_device_to_text (UpDevice *device) kind == UP_DEVICE_KIND_COMPUTER || kind == UP_DEVICE_KIND_MEDIA_PLAYER || kind == UP_DEVICE_KIND_UPS || - kind == UP_DEVICE_KIND_GAMING_INPUT) - g_string_append_printf (string, " percentage: %g%%\n", up_exported_device_get_percentage (priv->proxy_device)); + kind == UP_DEVICE_KIND_GAMING_INPUT) { + if (battery_level == UP_DEVICE_LEVEL_NONE) + g_string_append_printf (string, " percentage: %g%%\n", up_exported_device_get_percentage (priv->proxy_device)); + else + g_string_append_printf (string, " percentage: %g%% (should be ignored)\n", up_exported_device_get_percentage (priv->proxy_device)); + } if (kind == UP_DEVICE_KIND_BATTERY) { if (up_exported_device_get_temperature (priv->proxy_device) > 0) g_string_append_printf (string, " temperature: %g degrees C\n", up_exported_device_get_temperature (priv->proxy_device)); @@ -1128,7 +1134,9 @@ up_device_class_init (UpDeviceClass *klass) /** * UpDevice:percentage: * - * The percentage charge of the device. + * The percentage charge of the device. Note that if the battery level property + * is something other than %UP_DEVICE_LEVEL_NONE, then this percentage is an + * approximation, and should not be used a number to display to the user. * * Since: 0.9.0 **/ @@ -1168,7 +1176,9 @@ up_device_class_init (UpDeviceClass *klass) /** * UpDevice:battery-level: * - * The battery level, e.g. %UP_DEVICE_LEVEL_CRITICAL. + * The battery level, e.g. %UP_DEVICE_LEVEL_CRITICAL. If this is something + * other than %UP_DEVICE_LEVEL_NONE, then User Interfaces should use this + * approximate level instead of percentages. * * Since: 1.0 **/ -- cgit v1.2.1