From ad88fd02d81c1079186b5897fa96255b4642254e Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 4 Oct 2010 10:52:51 -0500 Subject: [PATCH 1/1] Improving error handling for the no-internet case --- src/stream_index.py | 2 +- src/windows/source.py | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/stream_index.py b/src/stream_index.py index dc4d654..0354fac 100644 --- a/src/stream_index.py +++ b/src/stream_index.py @@ -105,7 +105,7 @@ class AudioIndex(object): assert self._languagesRequest is not None r = self._languagesRequest self._languagesRequest = None - r[1](self._languages) + r[1](e) class Node(object): diff --git a/src/windows/source.py b/src/windows/source.py index cbcc15e..2215b1f 100644 --- a/src/windows/source.py +++ b/src/windows/source.py @@ -22,6 +22,7 @@ class SourceSelector(windows._base.BasicWindow): windows._base.BasicWindow.__init__(self, app, player, store) self._languages = [] self._index = index + self._selectedNode = "" self._loadingBanner = banners.GenericBanner() @@ -96,11 +97,15 @@ class SourceSelector(windows._base.BasicWindow): def _on_languages(self, languages): self._hide_loading() self._languages = list(languages) + if self._selectedNode: + self._show_window_by_node_name(self._selectedNode) + self._selectedNode = "" @misc_utils.log_exception(_moduleLogger) def _on_error(self, exception): self._hide_loading() - self._errorBanner.push_message(str(exception)) + _moduleLogger.info(exception) + self._errorBanner.push_message("Error loading information") def _window_from_node(self, node): if node.id == stream_index.SOURCE_RADIO: @@ -119,6 +124,10 @@ class SourceSelector(windows._base.BasicWindow): sourceWindow.show() return sourceWindow + def _show_window_by_node_name(self, nodeName): + node = self._index.get_source(nodeName, self._languages[0]["id"]) + self._window_from_node(node) + @misc_utils.log_exception(_moduleLogger) def _on_home(self, *args): pass @@ -132,8 +141,11 @@ class SourceSelector(windows._base.BasicWindow): @misc_utils.log_exception(_moduleLogger) def _on_source_selected(self, widget, nodeName): - node = self._index.get_source(nodeName, self._languages[0]["id"]) - self._window_from_node(node) + if self._languages: + self._show_window_by_node_name(nodeName) + else: + self._selectedNode = nodeName + self._refresh() gobject.type_register(SourceSelector) -- 1.7.9.5