From ed1dabf9c9dc0fcfdec522ebc5d9400903ee9be5 Mon Sep 17 00:00:00 2001 From: miro Date: Mon, 21 Oct 2024 12:58:49 +0100 Subject: [PATCH 1/3] fix:no wait for ready dont wait for mycroft.ready message, display homescreen ASAP --- ovos_gui/homescreen.py | 15 +-------------- test/unittests/test_homescreen.py | 6 ------ 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/ovos_gui/homescreen.py b/ovos_gui/homescreen.py index 247914c..144c4a1 100644 --- a/ovos_gui/homescreen.py +++ b/ovos_gui/homescreen.py @@ -13,7 +13,6 @@ def __init__(self, bus: MessageBusClient): super().__init__() self.bus = bus self.homescreens: List[dict] = [] - self.mycroft_ready = False self.bus.on('homescreen.manager.add', self.add_homescreen) self.bus.on('homescreen.manager.remove', self.remove_homescreen) @@ -22,13 +21,13 @@ def __init__(self, bus: MessageBusClient): self.bus.on("homescreen.manager.set_active", self.handle_set_active_homescreen) self.bus.on("homescreen.manager.disable_active", self.disable_active_homescreen) self.bus.on("homescreen.manager.show_active", self.show_homescreen) - self.bus.on("mycroft.ready", self.set_mycroft_ready) def run(self): """ Start the Manager after it has been constructed. """ self.reload_homescreens_list() + self.show_homescreen() def add_homescreen(self, message: Message): """ @@ -127,9 +126,6 @@ def show_homescreen_on_add(self, homescreen_id: str): Check if a homescreen should be displayed immediately upon addition @param homescreen_id: ID of added homescreen """ - if not self.mycroft_ready: - LOG.debug("Not ready yet, don't display homescreen") - return LOG.debug(f"Checking {homescreen_id}") if self.get_active_homescreen() != homescreen_id: # Added homescreen isn't the configured one, do nothing @@ -172,12 +168,3 @@ def show_homescreen(self, message: Optional[Message] = None): else: LOG.warning(f"Requested {active_homescreen} not found in: " f"{self.homescreens}") - - def set_mycroft_ready(self, message: Message): - """ - Handle `mycroft.ready` and show the homescreen - @param message: `mycroft.ready` Message - """ - self.mycroft_ready = True - self.reload_homescreens_list() - self.show_homescreen() diff --git a/test/unittests/test_homescreen.py b/test/unittests/test_homescreen.py index 7752844..332c65d 100644 --- a/test/unittests/test_homescreen.py +++ b/test/unittests/test_homescreen.py @@ -13,7 +13,6 @@ class TestHomescreenManager(unittest.TestCase): def test_00_homescreen_manager_init(self): self.assertEqual(self.homescreen_manager.bus, self.bus) - self.assertFalse(self.homescreen_manager.mycroft_ready) self.assertIsInstance(self.homescreen_manager.homescreens, list) # TODO: Test messagebus handlers @@ -71,8 +70,3 @@ def test_disable_active_homescreen(self, update_config, config): def test_show_homescreen(self): # TODO pass - - def test_set_mycroft_ready(self): - self.homescreen_manager.mycroft_ready = False - self.homescreen_manager.set_mycroft_ready(Message("mycroft.ready")) - self.assertTrue(self.homescreen_manager.mycroft_ready) From d8c6eb17d731364e3f1a113e2ad20f8ce29c97ef Mon Sep 17 00:00:00 2001 From: miro Date: Mon, 21 Oct 2024 13:15:08 +0100 Subject: [PATCH 2/3] fix:no wait for ready dont wait for mycroft.ready message, display homescreen ASAP --- ovos_gui/namespace.py | 15 ++++++++++++--- ovos_gui/service.py | 10 ---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/ovos_gui/namespace.py b/ovos_gui/namespace.py index 0c4ca5e..3aeb009 100644 --- a/ovos_gui/namespace.py +++ b/ovos_gui/namespace.py @@ -480,13 +480,22 @@ def _define_message_handlers(self): self.core_bus.on("mycroft.gui.connected", self.handle_client_connected) self.core_bus.on("gui.page_interaction", self.handle_page_interaction) self.core_bus.on("gui.page_gained_focus", self.handle_page_gained_focus) - self.core_bus.on("mycroft.skills.trained", self.handle_ready) self.core_bus.on("mycroft.gui.screen.close", self.handle_namespace_global_back) + self.core_bus.on("gui.volunteer_page_upload", self.handle_gui_pages_available) + + # TODO - deprecate this, only needed for gui bus upload + # Bus is connected, check if the skills service is ready + resp = self.core_bus.wait_for_response( + Message("mycroft.skills.is_ready", + context={"source": "gui", "destination": ["skills"]})) + if resp and resp.data.get("status"): + LOG.debug("Skills service already running") + self._ready_event.set() + else: + self.core_bus.on("mycroft.skills.trained", self.handle_ready) def handle_ready(self, message): self._ready_event.set() - self.core_bus.on("gui.volunteer_page_upload", - self.handle_gui_pages_available) def handle_gui_pages_available(self, message: Message): """ diff --git a/ovos_gui/service.py b/ovos_gui/service.py index ac34451..377d46f 100644 --- a/ovos_gui/service.py +++ b/ovos_gui/service.py @@ -63,16 +63,6 @@ def run(self): self.extension_manager = ExtensionsManager("EXTENSION_SERVICE", self.bus) self.namespace_manager = NamespaceManager(self.bus) - - # Bus is connected, check if the skills service is ready - resp = self.bus.wait_for_response( - Message("mycroft.skills.is_ready", - context={"source": "gui", "destination": ["skills"]})) - if resp and resp.data.get("status"): - LOG.debug("Skills service already running") - self.namespace_manager.handle_ready(resp) - self.extension_manager.homescreen_manager.set_mycroft_ready(resp) - self.status.set_ready() LOG.info(f"GUI Service Ready") From cf26d440ed98a0db53efc7b035e573e7bce7eace Mon Sep 17 00:00:00 2001 From: miro Date: Mon, 21 Oct 2024 13:19:15 +0100 Subject: [PATCH 3/3] fix:no wait for ready dont wait for mycroft.ready message, display homescreen ASAP --- test/unittests/test_namespace.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/test/unittests/test_namespace.py b/test/unittests/test_namespace.py index a4a33a4..e33a5cd 100644 --- a/test/unittests/test_namespace.py +++ b/test/unittests/test_namespace.py @@ -221,15 +221,6 @@ def test_init_gui_file_share(self): # TODO pass - def test_handle_ready(self): - self.assertEqual(len(self.namespace_manager.core_bus.ee. - listeners("gui.volunteer_page_upload")), 0) - self.assertFalse(self.namespace_manager._ready_event.is_set()) - self.namespace_manager.handle_ready(Message("")) - self.assertTrue(self.namespace_manager._ready_event.wait(0.01)) - self.assertEqual(len(self.namespace_manager.core_bus.ee. - listeners("gui.volunteer_page_upload")), 1) - def test_handle_gui_pages_available(self): # TODO pass