From e72c38b5abd8b2abb07c0b63de561ce67f79f6b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 22 Nov 2019 23:27:47 +0100 Subject: [PATCH] dateMenu: Move weather forecast validity check Commit b779f6f728 added a check to filter out invalid weather forecasts. However the check is currently done when creating UI for the forecasts, which means we end up with fewer forecasts than we could display if any forecasts are invalid. We can avoid that issue by checking the validity while collecting the forecasts, so do that instead. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927 --- js/ui/dateMenu.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js index a081c12f5..2f7a95f44 100644 --- a/js/ui/dateMenu.js +++ b/js/ui/dateMenu.js @@ -315,7 +315,10 @@ class WeatherSection extends St.Button { let current = GLib.DateTime.new_from_unix_local(0); let infos = []; for (let i = 0; i < forecasts.length; i++) { - let [ok_, timestamp] = forecasts[i].get_value_update(); + const [valid, timestamp] = forecasts[i].get_value_update(); + if (!valid || timestamp === 0) + continue; // 0 means 'never updated' + const datetime = GLib.DateTime.new_from_unix_local(timestamp); if (now.difference(datetime) > 0) continue; // Ignore earlier forecasts @@ -340,9 +343,7 @@ class WeatherSection extends St.Button { let col = 0; infos.forEach(fc => { - const [valid, timestamp] = fc.get_value_update(); - if (!valid || timestamp === 0) - return; // 0 means 'never updated' + const [valid_, timestamp] = fc.get_value_update(); let timeStr = Util.formatTime(new Date(timestamp * 1000), { timeOnly: true, ampm: false,