From a15106fcc6ce5181b0faa22d01d080d5f04c5683 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Mon, 21 Dec 2020 18:48:33 +0100 Subject: [PATCH] NetworkManager: Slightly more accurate wifi strength icons (#7020) * Update lj-wpaclient to get more consistent link quality values out of it * Simplify wifi strength icon selection --- base | 2 +- frontend/ui/widget/networksetting.lua | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/base b/base index c9c14de5e..6b4667756 160000 --- a/base +++ b/base @@ -1 +1 @@ -Subproject commit c9c14de5ef70433b6fd172758dda44496f20c08c +Subproject commit 6b46677563f490b570436703c235338ed1d72eea diff --git a/frontend/ui/widget/networksetting.lua b/frontend/ui/widget/networksetting.lua index dbe5a9b89..b150c53a9 100644 --- a/frontend/ui/widget/networksetting.lua +++ b/frontend/ui/widget/networksetting.lua @@ -121,13 +121,20 @@ function NetworkItem:init() else wifi_icon = "wifi.open.%d" end - if self.info.signal_quality == 0 or self.info.signal_quality == 100 then - wifi_icon = string.format(wifi_icon, self.info.signal_quality) + -- Based on NetworkManager's nmc_wifi_strength_bars + -- c.f., https://github.com/NetworkManager/NetworkManager/blob/2fa8ef9fb9c7fe0cc2d9523eed6c5a3749b05175/clients/common/nm-client-utils.c#L585-L612 + if self.info.signal_quality > 80 then + wifi_icon = string.format(wifi_icon, 100) + elseif self.info.signal_quality > 55 then + wifi_icon = string.format(wifi_icon, 75) + elseif self.info.signal_quality > 30 then + wifi_icon = string.format(wifi_icon, 50) + elseif self.info.signal_quality > 5 then + wifi_icon = string.format(wifi_icon, 25) else - wifi_icon = string.format( - wifi_icon, - self.info.signal_quality + 25 - self.info.signal_quality % 25) + wifi_icon = string.format(wifi_icon, 0) end + local horizontal_space = HorizontalSpan:new{width = Size.span.horizontal_default} self.content_container = OverlapGroup:new{ dimen = self.dimen:copy(),