Skip to content

Commit

Permalink
Draft
Browse files Browse the repository at this point in the history
  • Loading branch information
npentrel committed Jun 22, 2024
1 parent a243eca commit 75135eb
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
16 changes: 10 additions & 6 deletions modules/firmware_apps/app_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,12 @@ def cleanup_ui_widgets(self):
for widget in widgets:
if widget:
widget._cleanup()
widget = None

self.menu = None
self.available_menu = None
self.installed_menu = None
self.update_menu = None
self.codeinstall = None

def get_index(self):
if not wifi.status():
Expand Down Expand Up @@ -106,10 +111,7 @@ def handle_index(self):
def install_app(self, app):
try:
install_app(app)
if self.available_menu:
self.update_state("available_menu")
else:
self.update_state("main_menu")
self.update_state("main_menu")
eventbus.emit(InstallNotificationEvent())
eventbus.emit(ShowNotificationEvent("Installed the app!"))
except MemoryError:
Expand Down Expand Up @@ -137,6 +139,7 @@ def prepare_available_menu(self):
def on_select(_, i):
self.to_install_app = self.app_store_index[i]
self.update_state("installing_app")
self.cleanup_ui_widgets()

def exit_available_menu():
self.cleanup_ui_widgets()
Expand All @@ -153,11 +156,12 @@ def exit_available_menu():

def prepare_main_menu(self):
def on_cancel():
self.cleanup_ui_widgets()
self.minimise()

def on_select(value, idx):
self.cleanup_ui_widgets()
if value == CODE_INSTALL:
self.cleanup_ui_widgets()
self.codeinstall = CodeInstall(
install_handler=lambda id: self.handle_code_input(id), app=self
)
Expand Down
6 changes: 6 additions & 0 deletions modules/system/eventbus.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,16 @@ def remove(self, event_type, event_handler, app):
if app in self.handlers:
if event_type in self.handlers[app]:
if event_handler in self.handlers[app][event_type]:
print(
f"Removed event handler for {event_type.__name__}: {app.__class__.__name__} - {event_handler.__name__}"
)
self.handlers[app][event_type].remove(event_handler)
if app in self.async_handlers:
if event_type in self.async_handlers[app]:
if event_handler in self.async_handlers[app][event_type]:
print(
f"Removed event handler for {event_type.__name__}: {app.__class__.__name__} - {event_handler.__name__}"
)
self.async_handlers[app][event_type].remove(event_handler)

def deregister(self, app):
Expand Down

0 comments on commit 75135eb

Please sign in to comment.