46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
from app.core.observer_manager import ObserverManager, NotificationType
|
|
from app.core.language_manager import LanguageManager
|
|
from app.core.theme_manager import ThemeManager
|
|
from app.core.settings_manager import SettingsManager
|
|
from app.core.alert_manager import AlertManager
|
|
from app.core.update_manager import UpdateManager
|
|
from typing import Optional
|
|
|
|
class MainManager:
|
|
_instance: Optional['MainManager'] = None
|
|
|
|
def __init__(self) -> None:
|
|
if MainManager._instance is not None:
|
|
raise Exception("This class is a singleton!")
|
|
else:
|
|
MainManager._instance = self
|
|
self.observer_manager: ObserverManager = ObserverManager()
|
|
self.theme_manager: ThemeManager = ThemeManager()
|
|
self.settings_manager: SettingsManager = SettingsManager(self.observer_manager, self.theme_manager)
|
|
self.language_manager: LanguageManager = LanguageManager(self.settings_manager)
|
|
self.alert_manager: AlertManager = AlertManager(self.language_manager, self.theme_manager)
|
|
self.update_manager: UpdateManager = UpdateManager(self.settings_manager, self.language_manager, self.alert_manager)
|
|
|
|
@classmethod
|
|
def get_instance(cls) -> 'MainManager':
|
|
if cls._instance is None:
|
|
cls._instance = cls()
|
|
return cls._instance
|
|
|
|
def get_observer_manager(self) -> ObserverManager:
|
|
return self.observer_manager
|
|
|
|
def get_theme_manager(self) -> ThemeManager:
|
|
return self.theme_manager
|
|
|
|
def get_settings_manager(self) -> SettingsManager:
|
|
return self.settings_manager
|
|
|
|
def get_language_manager(self) -> LanguageManager:
|
|
return self.language_manager
|
|
|
|
def get_alert_manager(self) -> AlertManager:
|
|
return self.alert_manager
|
|
|
|
def get_update_manager(self) -> UpdateManager:
|
|
return self.update_manager |