Loading app/src/main/java/foundation/e/apps/data/login/AuthenticatorRepository.kt +11 −7 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.User import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.data.preference.AppLoungeDataStore import javax.inject.Inject import javax.inject.Singleton Loading @@ -29,16 +30,19 @@ import javax.inject.Singleton class AuthenticatorRepository @Inject constructor( private val loginCommon: LoginCommon, private val authenticators: List<StoreAuthenticator>, private val appLoungeDataStore: AppLoungeDataStore ) { private var gPlayAuth: AuthData? = null fun getGPlayAuthOrThrow(): AuthData { return gPlayAuth ?: throw GPlayLoginException(false, "AuthData is not available!", getUserType()) return kotlin.runCatching { appLoungeDataStore.getAuthData() }.getOrElse { throw GPlayLoginException(false, "AuthData is not available", appLoungeDataStore.getUserType()) } } fun setGPlayAuth(auth: AuthData) { gPlayAuth = auth suspend fun setGPlayAuth(auth: AuthData) { appLoungeDataStore.saveAuthData(auth) } suspend fun getAuthObjects(clearAuthTypes: List<String> = listOf()): List<AuthObject> { Loading @@ -55,7 +59,7 @@ class AuthenticatorRepository @Inject constructor( authObjectsLocal.add(authObject) if (authObject is AuthObject.GPlayAuth) { gPlayAuth = authObject.result.data appLoungeDataStore.saveAuthData(authObject.result.data) } } Loading @@ -81,7 +85,7 @@ class AuthenticatorRepository @Inject constructor( suspend fun getValidatedAuthData(): ResultSupreme<AuthData?> { val authDataValidator = (authenticators.find { it is AuthDataValidator } as AuthDataValidator) val validateAuthData = authDataValidator.validateAuthData() this.gPlayAuth = validateAuthData.data appLoungeDataStore.saveAuthData(validateAuthData.data) return validateAuthData } Loading app/src/main/java/foundation/e/apps/data/preference/AppLoungeDataStore.kt +4 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,10 @@ class AppLoungeDataStore @Inject constructor( } } fun getAuthData(): AuthData { return gson.fromJson(authData.getSync(), AuthData::class.java) } /** * Destroy auth credentials if they are no longer valid. * Loading app/src/main/java/foundation/e/apps/data/preference/DataStoreManager.ktdeleted 100644 → 0 +0 −42 Original line number Diff line number Diff line /* * Copyright (C) 2022 Murena SAS * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package foundation.e.apps.data.preference import com.aurora.gplayapi.data.models.AuthData import com.google.gson.Gson import foundation.e.apps.data.enums.User import javax.inject.Inject import javax.inject.Singleton @Singleton class DataStoreManager @Inject constructor() { @Inject lateinit var appLoungeDataStore: AppLoungeDataStore @Inject lateinit var gson: Gson fun getAuthData(): AuthData { val authDataJson = appLoungeDataStore.authData.getSync() return gson.fromJson(authDataJson, AuthData::class.java) ?: AuthData("", "") } fun getUserType(): User { return appLoungeDataStore.getUserType() } } app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +3 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import foundation.e.apps.data.enums.User import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.gitlab.SystemAppsUpdatesRepository import foundation.e.apps.data.login.AuthenticatorRepository import foundation.e.apps.data.preference.DataStoreManager import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.updates.UpdatesManagerRepository import foundation.e.apps.install.workmanager.AppInstallProcessor import foundation.e.apps.utils.eventBus.AppEvent Loading @@ -37,7 +37,7 @@ class UpdatesWorker @AssistedInject constructor( @Assisted private val context: Context, @Assisted private val params: WorkerParameters, private val updatesManagerRepository: UpdatesManagerRepository, private val dataStoreManager: DataStoreManager, private val appLoungeDataStore: AppLoungeDataStore, private val authenticatorRepository: AuthenticatorRepository, private val appInstallProcessor: AppInstallProcessor, private val blockedAppRepository: BlockedAppRepository, Loading Loading @@ -101,7 +101,7 @@ class UpdatesWorker @AssistedInject constructor( } private fun getUser(): User { return dataStoreManager.getUserType() return appLoungeDataStore.getUserType() } private suspend fun checkForUpdates() { Loading app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt +4 −4 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.data.preference.DataStoreManager import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.domain.ValidateAppAgeLimitUseCase import foundation.e.apps.install.AppInstallComponents import foundation.e.apps.install.download.DownloadManagerUtils Loading @@ -55,7 +55,7 @@ class AppInstallProcessor @Inject constructor( private val appInstallComponents: AppInstallComponents, private val applicationRepository: ApplicationRepository, private val validateAppAgeLimitUseCase: ValidateAppAgeLimitUseCase, private val dataStoreManager: DataStoreManager, private val appLoungeDataStore: AppLoungeDataStore, private val storageNotificationManager: StorageNotificationManager, ) { Loading Loading @@ -117,7 +117,7 @@ class AppInstallProcessor @Inject constructor( isAnUpdate: Boolean = false ) { try { val authData = dataStoreManager.getAuthData() val authData = appLoungeDataStore.getAuthData() if (!appInstall.isFree && authData.isAnonymous) { EventBus.invokeEvent(AppEvent.ErrorMessageEvent(R.string.paid_app_anonymous_message)) Loading Loading @@ -324,7 +324,7 @@ class AppInstallProcessor @Inject constructor( } private fun showNotificationOnUpdateEnded() { val locale = dataStoreManager.getAuthData().locale val locale = appLoungeDataStore.getAuthData().locale val date = Date().getFormattedString(DATE_FORMAT, locale) val numberOfUpdatedApps = NumberFormat.getNumberInstance(locale).format(UpdatesDao.successfulUpdatedApps.size) Loading Loading
app/src/main/java/foundation/e/apps/data/login/AuthenticatorRepository.kt +11 −7 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.User import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.data.preference.AppLoungeDataStore import javax.inject.Inject import javax.inject.Singleton Loading @@ -29,16 +30,19 @@ import javax.inject.Singleton class AuthenticatorRepository @Inject constructor( private val loginCommon: LoginCommon, private val authenticators: List<StoreAuthenticator>, private val appLoungeDataStore: AppLoungeDataStore ) { private var gPlayAuth: AuthData? = null fun getGPlayAuthOrThrow(): AuthData { return gPlayAuth ?: throw GPlayLoginException(false, "AuthData is not available!", getUserType()) return kotlin.runCatching { appLoungeDataStore.getAuthData() }.getOrElse { throw GPlayLoginException(false, "AuthData is not available", appLoungeDataStore.getUserType()) } } fun setGPlayAuth(auth: AuthData) { gPlayAuth = auth suspend fun setGPlayAuth(auth: AuthData) { appLoungeDataStore.saveAuthData(auth) } suspend fun getAuthObjects(clearAuthTypes: List<String> = listOf()): List<AuthObject> { Loading @@ -55,7 +59,7 @@ class AuthenticatorRepository @Inject constructor( authObjectsLocal.add(authObject) if (authObject is AuthObject.GPlayAuth) { gPlayAuth = authObject.result.data appLoungeDataStore.saveAuthData(authObject.result.data) } } Loading @@ -81,7 +85,7 @@ class AuthenticatorRepository @Inject constructor( suspend fun getValidatedAuthData(): ResultSupreme<AuthData?> { val authDataValidator = (authenticators.find { it is AuthDataValidator } as AuthDataValidator) val validateAuthData = authDataValidator.validateAuthData() this.gPlayAuth = validateAuthData.data appLoungeDataStore.saveAuthData(validateAuthData.data) return validateAuthData } Loading
app/src/main/java/foundation/e/apps/data/preference/AppLoungeDataStore.kt +4 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,10 @@ class AppLoungeDataStore @Inject constructor( } } fun getAuthData(): AuthData { return gson.fromJson(authData.getSync(), AuthData::class.java) } /** * Destroy auth credentials if they are no longer valid. * Loading
app/src/main/java/foundation/e/apps/data/preference/DataStoreManager.ktdeleted 100644 → 0 +0 −42 Original line number Diff line number Diff line /* * Copyright (C) 2022 Murena SAS * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ package foundation.e.apps.data.preference import com.aurora.gplayapi.data.models.AuthData import com.google.gson.Gson import foundation.e.apps.data.enums.User import javax.inject.Inject import javax.inject.Singleton @Singleton class DataStoreManager @Inject constructor() { @Inject lateinit var appLoungeDataStore: AppLoungeDataStore @Inject lateinit var gson: Gson fun getAuthData(): AuthData { val authDataJson = appLoungeDataStore.authData.getSync() return gson.fromJson(authDataJson, AuthData::class.java) ?: AuthData("", "") } fun getUserType(): User { return appLoungeDataStore.getUserType() } }
app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +3 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import foundation.e.apps.data.enums.User import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.gitlab.SystemAppsUpdatesRepository import foundation.e.apps.data.login.AuthenticatorRepository import foundation.e.apps.data.preference.DataStoreManager import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.updates.UpdatesManagerRepository import foundation.e.apps.install.workmanager.AppInstallProcessor import foundation.e.apps.utils.eventBus.AppEvent Loading @@ -37,7 +37,7 @@ class UpdatesWorker @AssistedInject constructor( @Assisted private val context: Context, @Assisted private val params: WorkerParameters, private val updatesManagerRepository: UpdatesManagerRepository, private val dataStoreManager: DataStoreManager, private val appLoungeDataStore: AppLoungeDataStore, private val authenticatorRepository: AuthenticatorRepository, private val appInstallProcessor: AppInstallProcessor, private val blockedAppRepository: BlockedAppRepository, Loading Loading @@ -101,7 +101,7 @@ class UpdatesWorker @AssistedInject constructor( } private fun getUser(): User { return dataStoreManager.getUserType() return appLoungeDataStore.getUserType() } private suspend fun checkForUpdates() { Loading
app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt +4 −4 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.data.preference.DataStoreManager import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.domain.ValidateAppAgeLimitUseCase import foundation.e.apps.install.AppInstallComponents import foundation.e.apps.install.download.DownloadManagerUtils Loading @@ -55,7 +55,7 @@ class AppInstallProcessor @Inject constructor( private val appInstallComponents: AppInstallComponents, private val applicationRepository: ApplicationRepository, private val validateAppAgeLimitUseCase: ValidateAppAgeLimitUseCase, private val dataStoreManager: DataStoreManager, private val appLoungeDataStore: AppLoungeDataStore, private val storageNotificationManager: StorageNotificationManager, ) { Loading Loading @@ -117,7 +117,7 @@ class AppInstallProcessor @Inject constructor( isAnUpdate: Boolean = false ) { try { val authData = dataStoreManager.getAuthData() val authData = appLoungeDataStore.getAuthData() if (!appInstall.isFree && authData.isAnonymous) { EventBus.invokeEvent(AppEvent.ErrorMessageEvent(R.string.paid_app_anonymous_message)) Loading Loading @@ -324,7 +324,7 @@ class AppInstallProcessor @Inject constructor( } private fun showNotificationOnUpdateEnded() { val locale = dataStoreManager.getAuthData().locale val locale = appLoungeDataStore.getAuthData().locale val date = Date().getFormattedString(DATE_FORMAT, locale) val numberOfUpdatedApps = NumberFormat.getNumberInstance(locale).format(UpdatesDao.successfulUpdatedApps.size) Loading