Loading app/src/main/java/foundation/e/apps/data/login/playstore/MicrogAccountManager.kt→app/src/main/java/foundation/e/apps/data/login/playstore/MicrogLoginManager.kt +2 −2 Original line number Diff line number Diff line Loading @@ -41,10 +41,10 @@ data class MicrogAccount( ) @Singleton class MicrogAccountManager @Inject constructor( class MicrogLoginManager @Inject constructor( @ApplicationContext val context: Context, private val accountManager: AccountManager ) : LoginManager<MicrogAccountManager.FetchResult> { ) : LoginManager<MicrogLoginManager.FetchResult> { sealed interface FetchResult { data class Success(val microgAccount: MicrogAccount) : FetchResult data class RequiresUserAction(val intent: Intent) : FetchResult Loading app/src/main/java/foundation/e/apps/domain/login/FetchMicrogAccountUseCase.kt +3 −3 Original line number Diff line number Diff line package foundation.e.apps.domain.login import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import javax.inject.Inject class FetchMicrogAccountUseCase @Inject constructor( private val microgAccountManager: MicrogAccountManager private val microgAccountManager: MicrogLoginManager ) { suspend operator fun invoke( accountName: String? ): MicrogAccountManager.FetchResult = microgAccountManager.fetchMicrogAccount(accountName) ): MicrogLoginManager.FetchResult = microgAccountManager.fetchMicrogAccount(accountName) } app/src/main/java/foundation/e/apps/domain/login/HasMicrogAccountUseCase.kt +2 −2 Original line number Diff line number Diff line package foundation.e.apps.domain.login import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import javax.inject.Inject class HasMicrogAccountUseCase @Inject constructor( private val microgAccountManager: MicrogAccountManager private val microgAccountManager: MicrogLoginManager ) { operator fun invoke(): Boolean = microgAccountManager.hasMicrogAccount() } app/src/main/java/foundation/e/apps/ui/LoginViewModel.kt +4 −4 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.core.StoreType import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import foundation.e.apps.domain.login.CompleteMicrogLoginUseCase import foundation.e.apps.domain.login.FetchMicrogAccountUseCase import foundation.e.apps.domain.login.HasMicrogAccountUseCase Loading Loading @@ -97,15 +97,15 @@ class LoginViewModel @Inject constructor( fetchMicrogAccountUseCase(accountName) }.onSuccess { result -> when (result) { is MicrogAccountManager.FetchResult.Success -> { is MicrogLoginManager.FetchResult.Success -> { completeMicrogLoginUseCase(result.microgAccount) onUserSaved() startLoginFlow() } is MicrogAccountManager.FetchResult.RequiresUserAction -> onIntentRequired(result.intent) is MicrogLoginManager.FetchResult.RequiresUserAction -> onIntentRequired(result.intent) is MicrogAccountManager.FetchResult.Error -> { is MicrogLoginManager.FetchResult.Error -> { onError(result.throwable.localizedMessage ?: fallbackMessage) } } Loading app/src/test/java/foundation/e/apps/data/login/MicrogAccountModelsTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import android.accounts.Account import android.content.Intent import foundation.e.apps.data.login.microg.MicrogCertUtil import foundation.e.apps.data.login.playstore.MicrogAccount import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import org.junit.Assert.assertEquals import org.junit.Assert.assertSame import org.junit.Test Loading Loading @@ -50,7 +50,7 @@ class MicrogAccountModelsTest { val account = Account("user@gmail.com", MicrogCertUtil.GOOGLE_ACCOUNT_TYPE) val microgAccount = MicrogAccount(account, "token") val result = MicrogAccountManager.FetchResult.Success(microgAccount) val result = MicrogLoginManager.FetchResult.Success(microgAccount) assertSame(microgAccount, result.microgAccount) } Loading @@ -59,7 +59,7 @@ class MicrogAccountModelsTest { fun `microg account fetch result exposes requires user action intent`() { val intent = Intent("foundation.e.apps.ACTION_LOGIN") val result = MicrogAccountManager.FetchResult.RequiresUserAction(intent) val result = MicrogLoginManager.FetchResult.RequiresUserAction(intent) assertSame(intent, result.intent) } Loading @@ -68,7 +68,7 @@ class MicrogAccountModelsTest { fun `microg account fetch result exposes error throwable`() { val error = IllegalStateException("boom") val result = MicrogAccountManager.FetchResult.Error(error) val result = MicrogLoginManager.FetchResult.Error(error) assertSame(error, result.throwable) } Loading Loading
app/src/main/java/foundation/e/apps/data/login/playstore/MicrogAccountManager.kt→app/src/main/java/foundation/e/apps/data/login/playstore/MicrogLoginManager.kt +2 −2 Original line number Diff line number Diff line Loading @@ -41,10 +41,10 @@ data class MicrogAccount( ) @Singleton class MicrogAccountManager @Inject constructor( class MicrogLoginManager @Inject constructor( @ApplicationContext val context: Context, private val accountManager: AccountManager ) : LoginManager<MicrogAccountManager.FetchResult> { ) : LoginManager<MicrogLoginManager.FetchResult> { sealed interface FetchResult { data class Success(val microgAccount: MicrogAccount) : FetchResult data class RequiresUserAction(val intent: Intent) : FetchResult Loading
app/src/main/java/foundation/e/apps/domain/login/FetchMicrogAccountUseCase.kt +3 −3 Original line number Diff line number Diff line package foundation.e.apps.domain.login import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import javax.inject.Inject class FetchMicrogAccountUseCase @Inject constructor( private val microgAccountManager: MicrogAccountManager private val microgAccountManager: MicrogLoginManager ) { suspend operator fun invoke( accountName: String? ): MicrogAccountManager.FetchResult = microgAccountManager.fetchMicrogAccount(accountName) ): MicrogLoginManager.FetchResult = microgAccountManager.fetchMicrogAccount(accountName) }
app/src/main/java/foundation/e/apps/domain/login/HasMicrogAccountUseCase.kt +2 −2 Original line number Diff line number Diff line package foundation.e.apps.domain.login import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import javax.inject.Inject class HasMicrogAccountUseCase @Inject constructor( private val microgAccountManager: MicrogAccountManager private val microgAccountManager: MicrogLoginManager ) { operator fun invoke(): Boolean = microgAccountManager.hasMicrogAccount() }
app/src/main/java/foundation/e/apps/ui/LoginViewModel.kt +4 −4 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.core.StoreType import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import foundation.e.apps.domain.login.CompleteMicrogLoginUseCase import foundation.e.apps.domain.login.FetchMicrogAccountUseCase import foundation.e.apps.domain.login.HasMicrogAccountUseCase Loading Loading @@ -97,15 +97,15 @@ class LoginViewModel @Inject constructor( fetchMicrogAccountUseCase(accountName) }.onSuccess { result -> when (result) { is MicrogAccountManager.FetchResult.Success -> { is MicrogLoginManager.FetchResult.Success -> { completeMicrogLoginUseCase(result.microgAccount) onUserSaved() startLoginFlow() } is MicrogAccountManager.FetchResult.RequiresUserAction -> onIntentRequired(result.intent) is MicrogLoginManager.FetchResult.RequiresUserAction -> onIntentRequired(result.intent) is MicrogAccountManager.FetchResult.Error -> { is MicrogLoginManager.FetchResult.Error -> { onError(result.throwable.localizedMessage ?: fallbackMessage) } } Loading
app/src/test/java/foundation/e/apps/data/login/MicrogAccountModelsTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import android.accounts.Account import android.content.Intent import foundation.e.apps.data.login.microg.MicrogCertUtil import foundation.e.apps.data.login.playstore.MicrogAccount import foundation.e.apps.data.login.playstore.MicrogAccountManager import foundation.e.apps.data.login.playstore.MicrogLoginManager import org.junit.Assert.assertEquals import org.junit.Assert.assertSame import org.junit.Test Loading Loading @@ -50,7 +50,7 @@ class MicrogAccountModelsTest { val account = Account("user@gmail.com", MicrogCertUtil.GOOGLE_ACCOUNT_TYPE) val microgAccount = MicrogAccount(account, "token") val result = MicrogAccountManager.FetchResult.Success(microgAccount) val result = MicrogLoginManager.FetchResult.Success(microgAccount) assertSame(microgAccount, result.microgAccount) } Loading @@ -59,7 +59,7 @@ class MicrogAccountModelsTest { fun `microg account fetch result exposes requires user action intent`() { val intent = Intent("foundation.e.apps.ACTION_LOGIN") val result = MicrogAccountManager.FetchResult.RequiresUserAction(intent) val result = MicrogLoginManager.FetchResult.RequiresUserAction(intent) assertSame(intent, result.intent) } Loading @@ -68,7 +68,7 @@ class MicrogAccountModelsTest { fun `microg account fetch result exposes error throwable`() { val error = IllegalStateException("boom") val result = MicrogAccountManager.FetchResult.Error(error) val result = MicrogLoginManager.FetchResult.Error(error) assertSame(error, result.throwable) } Loading