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 class MainManager: _instance = None def __init__(self): if MainManager._instance is not None: raise Exception("This class is a singleton!") else: MainManager._instance = self self.observer_manager = ObserverManager() self.theme_manager = ThemeManager() self.settings_manager = SettingsManager(self.observer_manager,self.theme_manager) self.language_manager = LanguageManager(self.settings_manager) def get_observer_manager(self): return self.observer_manager def get_theme_manager(self): return self.theme_manager def get_settings_manager(self): return self.settings_manager def get_language_manager(self): return self.language_manager @classmethod def get_instance(cls): if cls._instance is None: cls._instance = cls() return cls._instance