Loading app/src/main/java/foundation/e/apps/login/AuthDataValidator.kt 0 → 100644 +8 −0 Original line number Diff line number Diff line package foundation.e.apps.login import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.api.ResultSupreme interface AuthDataValidator { suspend fun fetchValidatedAuthData(): ResultSupreme<AuthData?> } No newline at end of file app/src/main/java/foundation/e/apps/login/LoginSourceGPlay.kt +16 −1 Original line number Diff line number Diff line Loading @@ -19,9 +19,11 @@ package foundation.e.apps.login import android.content.Context import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.helpers.AuthValidator import com.google.gson.Gson import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.api.ResultSupreme import foundation.e.apps.api.gplay.utils.GPlayHttpClient import foundation.e.apps.login.api.GPlayApiFactory import foundation.e.apps.login.api.GPlayLoginInterface import foundation.e.apps.login.api.GoogleLoginApi Loading @@ -44,11 +46,14 @@ class LoginSourceGPlay @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson, private val loginDataStore: LoginDataStore, ) : LoginSourceInterface { ) : LoginSourceInterface, AuthDataValidator { @Inject lateinit var gPlayApiFactory: GPlayApiFactory @Inject lateinit var gPlayHttpClient: GPlayHttpClient private val user: User get() = loginDataStore.getUserType() Loading Loading @@ -251,4 +256,14 @@ class LoginSourceGPlay @Inject constructor( ) } } override suspend fun fetchValidatedAuthData(): ResultSupreme<AuthData?> { val savedAuth = getSavedAuthData() val isValid = AuthValidator(savedAuth!!).using(gPlayHttpClient).isValid() if (!isValid) { return generateAuthData() } return ResultSupreme.create(ResultStatus.OK, savedAuth) } } app/src/main/java/foundation/e/apps/login/LoginSourceRepository.kt +7 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package foundation.e.apps.login import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.api.ResultSupreme import foundation.e.apps.utils.enums.User import javax.inject.Inject import javax.inject.Singleton Loading Loading @@ -58,4 +60,9 @@ class LoginSourceRepository @Inject constructor( suspend fun logout() { loginCommon.logout() } suspend fun getValidatedAuthData(): ResultSupreme<AuthData?> { val authDataValidator = (sources.find { it is AuthDataValidator } as AuthDataValidator) return authDataValidator.fetchValidatedAuthData() } } app/src/main/java/foundation/e/apps/updates/manager/UpdatesWorker.kt +4 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import foundation.e.apps.api.ResultSupreme import foundation.e.apps.api.cleanapk.CleanAPKInterface import foundation.e.apps.api.fused.FusedAPIRepository import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.login.LoginSourceRepository import foundation.e.apps.manager.database.fusedDownload.FusedDownload import foundation.e.apps.manager.fused.FusedManagerRepository import foundation.e.apps.manager.workmanager.InstallWorkManager Loading @@ -49,6 +50,7 @@ class UpdatesWorker @AssistedInject constructor( private val fusedAPIRepository: FusedAPIRepository, private val fusedManagerRepository: FusedManagerRepository, private val dataStoreManager: DataStoreManager, private val loginSourceRepository: LoginSourceRepository, private val gson: Gson, ) : CoroutineWorker(context, params) { Loading Loading @@ -110,7 +112,7 @@ class UpdatesWorker @AssistedInject constructor( val isConnectedToUnmeteredNetwork = isConnectedToUnmeteredNetwork(applicationContext) val appsNeededToUpdate = mutableListOf<FusedApp>() val user = getUser() val authData = getAuthData() val authData = loginSourceRepository.getValidatedAuthData().data val resultStatus: ResultStatus if (user in listOf(User.ANONYMOUS, User.GOOGLE) && authData != null) { Loading Loading @@ -225,6 +227,7 @@ class UpdatesWorker @AssistedInject constructor( if (!fusedApp.isFree && authData.isAnonymous) { return@forEach } val iconBase64 = getIconImageToBase64(fusedApp) val fusedDownload = FusedDownload( Loading Loading
app/src/main/java/foundation/e/apps/login/AuthDataValidator.kt 0 → 100644 +8 −0 Original line number Diff line number Diff line package foundation.e.apps.login import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.api.ResultSupreme interface AuthDataValidator { suspend fun fetchValidatedAuthData(): ResultSupreme<AuthData?> } No newline at end of file
app/src/main/java/foundation/e/apps/login/LoginSourceGPlay.kt +16 −1 Original line number Diff line number Diff line Loading @@ -19,9 +19,11 @@ package foundation.e.apps.login import android.content.Context import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.helpers.AuthValidator import com.google.gson.Gson import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.api.ResultSupreme import foundation.e.apps.api.gplay.utils.GPlayHttpClient import foundation.e.apps.login.api.GPlayApiFactory import foundation.e.apps.login.api.GPlayLoginInterface import foundation.e.apps.login.api.GoogleLoginApi Loading @@ -44,11 +46,14 @@ class LoginSourceGPlay @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson, private val loginDataStore: LoginDataStore, ) : LoginSourceInterface { ) : LoginSourceInterface, AuthDataValidator { @Inject lateinit var gPlayApiFactory: GPlayApiFactory @Inject lateinit var gPlayHttpClient: GPlayHttpClient private val user: User get() = loginDataStore.getUserType() Loading Loading @@ -251,4 +256,14 @@ class LoginSourceGPlay @Inject constructor( ) } } override suspend fun fetchValidatedAuthData(): ResultSupreme<AuthData?> { val savedAuth = getSavedAuthData() val isValid = AuthValidator(savedAuth!!).using(gPlayHttpClient).isValid() if (!isValid) { return generateAuthData() } return ResultSupreme.create(ResultStatus.OK, savedAuth) } }
app/src/main/java/foundation/e/apps/login/LoginSourceRepository.kt +7 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package foundation.e.apps.login import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.api.ResultSupreme import foundation.e.apps.utils.enums.User import javax.inject.Inject import javax.inject.Singleton Loading Loading @@ -58,4 +60,9 @@ class LoginSourceRepository @Inject constructor( suspend fun logout() { loginCommon.logout() } suspend fun getValidatedAuthData(): ResultSupreme<AuthData?> { val authDataValidator = (sources.find { it is AuthDataValidator } as AuthDataValidator) return authDataValidator.fetchValidatedAuthData() } }
app/src/main/java/foundation/e/apps/updates/manager/UpdatesWorker.kt +4 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import foundation.e.apps.api.ResultSupreme import foundation.e.apps.api.cleanapk.CleanAPKInterface import foundation.e.apps.api.fused.FusedAPIRepository import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.login.LoginSourceRepository import foundation.e.apps.manager.database.fusedDownload.FusedDownload import foundation.e.apps.manager.fused.FusedManagerRepository import foundation.e.apps.manager.workmanager.InstallWorkManager Loading @@ -49,6 +50,7 @@ class UpdatesWorker @AssistedInject constructor( private val fusedAPIRepository: FusedAPIRepository, private val fusedManagerRepository: FusedManagerRepository, private val dataStoreManager: DataStoreManager, private val loginSourceRepository: LoginSourceRepository, private val gson: Gson, ) : CoroutineWorker(context, params) { Loading Loading @@ -110,7 +112,7 @@ class UpdatesWorker @AssistedInject constructor( val isConnectedToUnmeteredNetwork = isConnectedToUnmeteredNetwork(applicationContext) val appsNeededToUpdate = mutableListOf<FusedApp>() val user = getUser() val authData = getAuthData() val authData = loginSourceRepository.getValidatedAuthData().data val resultStatus: ResultStatus if (user in listOf(User.ANONYMOUS, User.GOOGLE) && authData != null) { Loading Loading @@ -225,6 +227,7 @@ class UpdatesWorker @AssistedInject constructor( if (!fusedApp.isFree && authData.isAnonymous) { return@forEach } val iconBase64 = getIconImageToBase64(fusedApp) val fusedDownload = FusedDownload( Loading