From f1a2f65bf12e8b935775dba631cacb508f53ca95 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Wed, 18 Apr 2018 10:34:59 -0700 Subject: [PATCH] Handle cases in which there is no weather data --- weather/display.go | 6 +++++- weather/widget.go | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/weather/display.go b/weather/display.go index 71db5667..47df976b 100644 --- a/weather/display.go +++ b/weather/display.go @@ -12,9 +12,13 @@ func (widget *Widget) display() { widget.View.Clear() cityData := widget.currentData() + if cityData == nil { + fmt.Fprintf(widget.View, "%s", " Weather data is unavailable (1)") + return + } if len(cityData.Weather) == 0 { - fmt.Fprintf(widget.View, "%s", " Weather data is unavailable.") + fmt.Fprintf(widget.View, "%s", " Weather data is unavailable (2)") return } diff --git a/weather/widget.go b/weather/widget.go index bf7f55c9..40840d66 100644 --- a/weather/widget.go +++ b/weather/widget.go @@ -91,6 +91,14 @@ func (widget *Widget) Prev() { /* -------------------- Unexported Functions -------------------- */ func (widget *Widget) currentData() *owm.CurrentWeatherData { + if len(widget.Data) == 0 { + return nil + } + + if widget.Idx < 0 || widget.Idx >= len(widget.Data) { + return nil + } + return widget.Data[widget.Idx] }