41 lines
1.6 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 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)
@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