From 7c252c852b0e732355db8ca40b397be1deb4b877 Mon Sep 17 00:00:00 2001
From: Marcin Sobczyk <msobczyk@syncad.com>
Date: Thu, 13 Mar 2025 13:09:53 +0100
Subject: [PATCH] Start periodic update alarms/node data on unlock or create
 new profile

---
 clive/__private/ui/app.py                                    | 5 +----
 .../ui/forms/create_profile/finish_profile_creation_mixin.py | 4 +++-
 clive/__private/ui/screens/unlock/unlock.py                  | 2 ++
 tests/tui/conftest.py                                        | 4 +++-
 4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/clive/__private/ui/app.py b/clive/__private/ui/app.py
index c4975138ab..a3ad343c0d 100644
--- a/clive/__private/ui/app.py
+++ b/clive/__private/ui/app.py
@@ -245,10 +245,7 @@ class Clive(App[int]):
     def update_alarms_data_asap_on_newest_node_data(self) -> Worker[None]:
         """Update alarms on the newest possible node data."""
         self.update_data_from_node()
-        worker = self.update_alarms_data()
-        self.resume_refresh_node_data_interval()
-        self.resume_refresh_alarms_data_interval()
-        return worker
+        return self.update_alarms_data()
 
     @work(name="alarms data update worker", group="alarms_data", exclusive=True)
     async def update_alarms_data(self) -> None:
diff --git a/clive/__private/ui/forms/create_profile/finish_profile_creation_mixin.py b/clive/__private/ui/forms/create_profile/finish_profile_creation_mixin.py
index 96fd80205d..ad69c5f655 100644
--- a/clive/__private/ui/forms/create_profile/finish_profile_creation_mixin.py
+++ b/clive/__private/ui/forms/create_profile/finish_profile_creation_mixin.py
@@ -13,7 +13,9 @@ class FinishProfileCreationMixin(FormScreenBase[CreateProfileContext]):
         self.app.run_worker(self._finish())
 
     async def _finish(self) -> None:
-        self._owner.add_post_action(self.app.update_alarms_data_asap_on_newest_node_data)
+        self._owner.add_post_action(
+            self.app.update_alarms_data_asap_on_newest_node_data, self.app.resume_refresh_alarms_data_interval
+        )
 
         profile = self.context.profile
         profile.enable_saving()
diff --git a/clive/__private/ui/screens/unlock/unlock.py b/clive/__private/ui/screens/unlock/unlock.py
index 0c5fa45424..194b55e9ca 100644
--- a/clive/__private/ui/screens/unlock/unlock.py
+++ b/clive/__private/ui/screens/unlock/unlock.py
@@ -124,6 +124,8 @@ class Unlock(BaseScreen):
         await self.app.switch_mode("dashboard")
         self._remove_welcome_modes()
         self.app.update_alarms_data_asap_on_newest_node_data()
+        self.app.resume_refresh_node_data_interval()
+        self.app.resume_refresh_alarms_data_interval()
 
     @on(Button.Pressed, "#new-profile-button")
     async def create_new_profile(self) -> None:
diff --git a/tests/tui/conftest.py b/tests/tui/conftest.py
index 483b394429..ba93a4058a 100644
--- a/tests/tui/conftest.py
+++ b/tests/tui/conftest.py
@@ -97,8 +97,10 @@ async def prepared_tui_on_dashboard(prepared_env: PreparedTuiEnv) -> PreparedTui
     node, wallet, pilot = prepared_env
     await pilot.app.world.load_profile(WORKING_ACCOUNT_DATA.account.name, WORKING_ACCOUNT_PASSWORD)
 
-    # update the data (pilot skips onboarding/unlocking via TUI - updating is handled there)
+    # update the data and resume timers (pilot skips onboarding/unlocking via TUI - updating is handled there)
     await pilot.app.update_alarms_data_asap_on_newest_node_data().wait()
+    pilot.app.resume_refresh_node_data_interval()
+    pilot.app.resume_refresh_alarms_data_interval()
 
     await pilot.app.push_screen(Dashboard())
     await wait_for_screen(pilot, Dashboard)
-- 
GitLab