From b86c57c4d3b669171ebe243841a6402e622380e2 Mon Sep 17 00:00:00 2001 From: Daniil Rakhov <51883290+drov-drov@users.noreply.github.com> Date: Mon, 19 Apr 2021 09:24:07 +0300 Subject: [PATCH 1/3] Add files via upload --- assets/src/ba_data/python/ba/_app.py | 3 ++ assets/src/ba_data/python/ba/_plugin.py | 38 ++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/assets/src/ba_data/python/ba/_app.py b/assets/src/ba_data/python/ba/_app.py index 47b19fdf..33df74ad 100644 --- a/assets/src/ba_data/python/ba/_app.py +++ b/assets/src/ba_data/python/ba/_app.py @@ -484,6 +484,7 @@ class App: def on_app_pause(self) -> None: """Called when the app goes to a suspended state.""" + self.plugins.on_app_pause() def on_app_resume(self) -> None: """Run when the app resumes from a suspended state.""" @@ -491,6 +492,7 @@ class App: self.fg_state += 1 self.accounts.on_app_resume() self.music.on_app_resume() + self.plugins.on_app_resume() def launch_coop_game(self, game: str, @@ -543,6 +545,7 @@ class App: def on_app_shutdown(self) -> None: """(internal)""" self.music.on_app_shutdown() + self.plugins.on_app_shutdown() def handle_deep_link(self, url: str) -> None: """Handle a deep link URL.""" diff --git a/assets/src/ba_data/python/ba/_plugin.py b/assets/src/ba_data/python/ba/_plugin.py index cf4251cf..77c65634 100644 --- a/assets/src/ba_data/python/ba/_plugin.py +++ b/assets/src/ba_data/python/ba/_plugin.py @@ -6,6 +6,8 @@ from __future__ import annotations from typing import TYPE_CHECKING from dataclasses import dataclass + +from ba import print_exception import _ba if TYPE_CHECKING: @@ -33,8 +35,28 @@ class PluginSubsystem: try: plugin.on_app_launch() except Exception: - from ba import _error - _error.print_exception('Error in plugin on_app_launch()') + print_exception('Error in plugin on_app_launch()') + + def on_app_pause(self) -> None: + for plugin in self.active_plugins.values(): + try: + plugin.on_app_pause() + except Exception: + print_exception('Error in plugin on_app_pause()') + + def on_app_resume(self) -> None: + for plugin in self.active_plugins.values(): + try: + plugin.on_app_resume() + except Exception: + print_exception('Error in plugin on_app_resume()') + + def on_app_shutdown(self) -> None: + for plugin in self.active_plugins.values(): + try: + plugin.on_app_shutdown() + except Exception: + print_exception('Error in plugin on_app_shutdown()') def load_plugins(self) -> None: """(internal)""" @@ -61,8 +83,7 @@ class PluginSubsystem: assert plugkey not in self.active_plugins self.active_plugins[plugkey] = plugin except Exception: - from ba import _error - _error.print_exception(f'Error loading plugin: {plugkey}') + print_exception(f'Error loading plugin: {plugkey}') @dataclass @@ -94,3 +115,12 @@ class Plugin: def on_app_launch(self) -> None: """Called when the app is being launched.""" + + def on_app_pause(self) -> None: + """Сalled after pausing game activity.""" + + def on_app_resume(self) -> None: + """Called after the game continues.""" + + def on_app_shutdown(self) -> None: + """Called before closing the application.""" From 5facde513f6427fa0f0643df4aa23220fe359000 Mon Sep 17 00:00:00 2001 From: Daniil Rakhov <51883290+drov-drov@users.noreply.github.com> Date: Mon, 19 Apr 2021 09:30:18 +0300 Subject: [PATCH 2/3] Add files via upload --- assets/src/ba_data/python/ba/_plugin.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/assets/src/ba_data/python/ba/_plugin.py b/assets/src/ba_data/python/ba/_plugin.py index 77c65634..ece8be2e 100644 --- a/assets/src/ba_data/python/ba/_plugin.py +++ b/assets/src/ba_data/python/ba/_plugin.py @@ -7,7 +7,6 @@ from __future__ import annotations from typing import TYPE_CHECKING from dataclasses import dataclass -from ba import print_exception import _ba if TYPE_CHECKING: @@ -35,28 +34,32 @@ class PluginSubsystem: try: plugin.on_app_launch() except Exception: - print_exception('Error in plugin on_app_launch()') + from ba import _error + _error.print_exception('Error in plugin on_app_launch()') def on_app_pause(self) -> None: for plugin in self.active_plugins.values(): try: plugin.on_app_pause() except Exception: - print_exception('Error in plugin on_app_pause()') + from ba import _error + _error.print_exception('Error in plugin on_app_pause()') def on_app_resume(self) -> None: for plugin in self.active_plugins.values(): try: plugin.on_app_resume() except Exception: - print_exception('Error in plugin on_app_resume()') + from ba import _error + _error.print_exception('Error in plugin on_app_resume()') def on_app_shutdown(self) -> None: for plugin in self.active_plugins.values(): try: plugin.on_app_shutdown() except Exception: - print_exception('Error in plugin on_app_shutdown()') + from ba import _error + _error.print_exception('Error in plugin on_app_shutdown()') def load_plugins(self) -> None: """(internal)""" @@ -83,7 +86,8 @@ class PluginSubsystem: assert plugkey not in self.active_plugins self.active_plugins[plugkey] = plugin except Exception: - print_exception(f'Error loading plugin: {plugkey}') + from ba import _error + _error.print_exception(f'Error loading plugin: {plugkey}') @dataclass From 967745e51ef2298350155a723fe5fbcff97cc6c1 Mon Sep 17 00:00:00 2001 From: Daniil Rakhov <51883290+drov-drov@users.noreply.github.com> Date: Mon, 19 Apr 2021 09:38:59 +0300 Subject: [PATCH 3/3] Add files via upload --- assets/src/ba_data/python/ba/_plugin.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/assets/src/ba_data/python/ba/_plugin.py b/assets/src/ba_data/python/ba/_plugin.py index ece8be2e..009cd9d0 100644 --- a/assets/src/ba_data/python/ba/_plugin.py +++ b/assets/src/ba_data/python/ba/_plugin.py @@ -38,6 +38,7 @@ class PluginSubsystem: _error.print_exception('Error in plugin on_app_launch()') def on_app_pause(self) -> None: + """Called when the app goes to a suspended state.""" for plugin in self.active_plugins.values(): try: plugin.on_app_pause() @@ -46,6 +47,7 @@ class PluginSubsystem: _error.print_exception('Error in plugin on_app_pause()') def on_app_resume(self) -> None: + """Run when the app resumes from a suspended state.""" for plugin in self.active_plugins.values(): try: plugin.on_app_resume() @@ -54,6 +56,7 @@ class PluginSubsystem: _error.print_exception('Error in plugin on_app_resume()') def on_app_shutdown(self) -> None: + """Called when the app is being closed.""" for plugin in self.active_plugins.values(): try: plugin.on_app_shutdown()