Loading app/src/main/java/foundation/e/apps/di/LoginModule.kt +10 −0 Original line number Diff line number Diff line Loading @@ -24,7 +24,10 @@ import dagger.hilt.components.SingletonComponent import foundation.e.apps.data.login.LoginSourceCleanApk import foundation.e.apps.data.login.LoginSourceGPlay import foundation.e.apps.data.login.LoginSourceInterface import foundation.e.apps.domain.login.repository.GoogleLoginRepository import foundation.e.apps.domain.login.repository.GoogleLoginRepositoryImpl import foundation.e.apps.domain.login.repository.LoginRepositoryImpl import foundation.e.apps.domain.login.usecase.GplayLoginUseCase import foundation.e.apps.domain.login.usecase.UserLoginUseCase @InstallIn(SingletonComponent::class) Loading @@ -45,4 +48,11 @@ object LoginModule { ): UserLoginUseCase { return UserLoginUseCase(loginRepositoryImpl) } @Provides fun provideGoogleLoginUseCase( loginRepositoryImpl: GoogleLoginRepositoryImpl ): GplayLoginUseCase { return GplayLoginUseCase(loginRepositoryImpl) } } app/src/main/java/foundation/e/apps/domain/login/AuthTokenPlayResponseParser.kt→app/src/main/java/foundation/e/apps/domain/login/repository/AuthTokenPlayResponseParser.kt +1 −1 Original line number Diff line number Diff line package foundation.e.apps.domain.login package foundation.e.apps.domain.login.repository import java.util.StringTokenizer Loading app/src/main/java/foundation/e/apps/domain/login/GoogleLoginRepository.kt→app/src/main/java/foundation/e/apps/domain/login/repository/GoogleLoginRepository.kt +2 −2 Original line number Diff line number Diff line package foundation.e.apps.domain.login package foundation.e.apps.domain.login.repository import com.aurora.gplayapi.data.models.AuthData interface GoogleLoginRepository { suspend fun getGoogleLoginAuthData(email: String, oauthToken: String): AuthData? suspend fun getGoogleLoginAuthData(email: String, oauthToken: String?): AuthData? suspend fun validate(): Boolean } No newline at end of file app/src/main/java/foundation/e/apps/domain/login/GoogleLoginRepositoryImpl.kt→app/src/main/java/foundation/e/apps/domain/login/repository/GoogleLoginRepositoryImpl.kt +26 −7 Original line number Diff line number Diff line package foundation.e.apps.domain.login package foundation.e.apps.domain.login.repository import android.content.Context import app.lounge.login.google.GoogleLoginApi import app.lounge.networking.NetworkResult import app.lounge.storage.cache.configurations import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.PlayResponse import com.aurora.gplayapi.helpers.AuthHelper import dagger.hilt.android.qualifiers.ApplicationContext import timber.log.Timber import java.lang.Exception import java.util.Properties import javax.inject.Inject class GoogleLoginRepositoryImpl @Inject constructor( @ApplicationContext private val context: Context, private val googleLoginApi: GoogleLoginApi, private val properties: Properties ) : GoogleLoginRepository { override suspend fun getGoogleLoginAuthData(email: String, oauthToken: String): AuthData? { override suspend fun getGoogleLoginAuthData(email: String, oauthToken: String?): AuthData? { val aasToken = context.configurations.aasToken if (oauthToken.isNullOrEmpty() && aasToken.isNotEmpty()) { return AuthHelper.build(email, aasToken, properties) } return fetchAuthData(oauthToken, email) } private suspend fun fetchAuthData(oauthToken: String?, email: String): AuthData? { oauthToken?.let { val result = googleLoginApi.getAuthTokenPlayResponse(email, oauthToken) return when (result) { is NetworkResult.Success -> handleAuthTokenPlayResponseSuccess(result, email) Loading @@ -23,6 +38,9 @@ class GoogleLoginRepositoryImpl @Inject constructor( } } return null } private fun handleAuthTokenPlayResponseSuccess( result: NetworkResult.Success<PlayResponse>, email: String Loading @@ -30,9 +48,10 @@ class GoogleLoginRepositoryImpl @Inject constructor( if (result.data.isSuccessful) { val parsedResult = AuthTokenPlayResponseParser.parseResponse(String(result.data.responseBytes)) val token = parsedResult["Token"] ?: "" Timber.d("Parsed token: $token") //TODO save token in the preferences context.configurations.aasToken = token return AuthHelper.build(email, token, properties) } return null Loading app/src/main/java/foundation/e/apps/domain/login/usecase/BaseUseCase.kt 0 → 100644 +3 −0 Original line number Diff line number Diff line package foundation.e.apps.domain.login.usecase open class BaseUseCase No newline at end of file Loading
app/src/main/java/foundation/e/apps/di/LoginModule.kt +10 −0 Original line number Diff line number Diff line Loading @@ -24,7 +24,10 @@ import dagger.hilt.components.SingletonComponent import foundation.e.apps.data.login.LoginSourceCleanApk import foundation.e.apps.data.login.LoginSourceGPlay import foundation.e.apps.data.login.LoginSourceInterface import foundation.e.apps.domain.login.repository.GoogleLoginRepository import foundation.e.apps.domain.login.repository.GoogleLoginRepositoryImpl import foundation.e.apps.domain.login.repository.LoginRepositoryImpl import foundation.e.apps.domain.login.usecase.GplayLoginUseCase import foundation.e.apps.domain.login.usecase.UserLoginUseCase @InstallIn(SingletonComponent::class) Loading @@ -45,4 +48,11 @@ object LoginModule { ): UserLoginUseCase { return UserLoginUseCase(loginRepositoryImpl) } @Provides fun provideGoogleLoginUseCase( loginRepositoryImpl: GoogleLoginRepositoryImpl ): GplayLoginUseCase { return GplayLoginUseCase(loginRepositoryImpl) } }
app/src/main/java/foundation/e/apps/domain/login/AuthTokenPlayResponseParser.kt→app/src/main/java/foundation/e/apps/domain/login/repository/AuthTokenPlayResponseParser.kt +1 −1 Original line number Diff line number Diff line package foundation.e.apps.domain.login package foundation.e.apps.domain.login.repository import java.util.StringTokenizer Loading
app/src/main/java/foundation/e/apps/domain/login/GoogleLoginRepository.kt→app/src/main/java/foundation/e/apps/domain/login/repository/GoogleLoginRepository.kt +2 −2 Original line number Diff line number Diff line package foundation.e.apps.domain.login package foundation.e.apps.domain.login.repository import com.aurora.gplayapi.data.models.AuthData interface GoogleLoginRepository { suspend fun getGoogleLoginAuthData(email: String, oauthToken: String): AuthData? suspend fun getGoogleLoginAuthData(email: String, oauthToken: String?): AuthData? suspend fun validate(): Boolean } No newline at end of file
app/src/main/java/foundation/e/apps/domain/login/GoogleLoginRepositoryImpl.kt→app/src/main/java/foundation/e/apps/domain/login/repository/GoogleLoginRepositoryImpl.kt +26 −7 Original line number Diff line number Diff line package foundation.e.apps.domain.login package foundation.e.apps.domain.login.repository import android.content.Context import app.lounge.login.google.GoogleLoginApi import app.lounge.networking.NetworkResult import app.lounge.storage.cache.configurations import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.PlayResponse import com.aurora.gplayapi.helpers.AuthHelper import dagger.hilt.android.qualifiers.ApplicationContext import timber.log.Timber import java.lang.Exception import java.util.Properties import javax.inject.Inject class GoogleLoginRepositoryImpl @Inject constructor( @ApplicationContext private val context: Context, private val googleLoginApi: GoogleLoginApi, private val properties: Properties ) : GoogleLoginRepository { override suspend fun getGoogleLoginAuthData(email: String, oauthToken: String): AuthData? { override suspend fun getGoogleLoginAuthData(email: String, oauthToken: String?): AuthData? { val aasToken = context.configurations.aasToken if (oauthToken.isNullOrEmpty() && aasToken.isNotEmpty()) { return AuthHelper.build(email, aasToken, properties) } return fetchAuthData(oauthToken, email) } private suspend fun fetchAuthData(oauthToken: String?, email: String): AuthData? { oauthToken?.let { val result = googleLoginApi.getAuthTokenPlayResponse(email, oauthToken) return when (result) { is NetworkResult.Success -> handleAuthTokenPlayResponseSuccess(result, email) Loading @@ -23,6 +38,9 @@ class GoogleLoginRepositoryImpl @Inject constructor( } } return null } private fun handleAuthTokenPlayResponseSuccess( result: NetworkResult.Success<PlayResponse>, email: String Loading @@ -30,9 +48,10 @@ class GoogleLoginRepositoryImpl @Inject constructor( if (result.data.isSuccessful) { val parsedResult = AuthTokenPlayResponseParser.parseResponse(String(result.data.responseBytes)) val token = parsedResult["Token"] ?: "" Timber.d("Parsed token: $token") //TODO save token in the preferences context.configurations.aasToken = token return AuthHelper.build(email, token, properties) } return null Loading
app/src/main/java/foundation/e/apps/domain/login/usecase/BaseUseCase.kt 0 → 100644 +3 −0 Original line number Diff line number Diff line package foundation.e.apps.domain.login.usecase open class BaseUseCase No newline at end of file