/** * The init method is responsible for intializing all singletons of the research stack framework * * @param context android context, preferably application context. * @param concreteResearchStack implementation of ResearchStack class */ public static void init(Context context, ResearchStack concreteResearchStack) { instance = concreteResearchStack; ResourceManager.init(concreteResearchStack.createResourceManagerImplementation(context)); UiManager.init(concreteResearchStack.createUiManagerImplementation(context)); DataProvider.init(concreteResearchStack.createDataProviderImplementation(context)); StorageAccess.getInstance() .init( concreteResearchStack.getPinCodeConfig(context), concreteResearchStack.getEncryptionProvider(context), concreteResearchStack.createFileAccessImplementation(context), concreteResearchStack.createAppDatabaseImplementation(context)); TaskProvider.init(concreteResearchStack.createTaskProviderImplementation(context)); NotificationConfig.init(concreteResearchStack.createNotificationConfigImplementation(context)); PermissionRequestManager.init( concreteResearchStack.createPermissionRequestManagerImplementation(context)); }