1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 13:57:10 +09:00

DROID-1418 Onboarding | Enhancement | Added setting SKIP useCase after account create

DROID-1418 Onboarding | Enhancement | Added setting SKIP useCase after account create
This commit is contained in:
Allan Quatermain 2023-06-22 17:18:34 +03:00 committed by GitHub
parent 6c9df6edaf
commit 68c58a8e02
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 0 deletions

View file

@ -5,8 +5,11 @@ import com.anytypeio.anytype.di.common.ComponentDependencies
import com.anytypeio.anytype.domain.auth.interactor.CreateAccount
import com.anytypeio.anytype.domain.auth.interactor.SetupWallet
import com.anytypeio.anytype.domain.auth.repo.AuthRepository
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
import com.anytypeio.anytype.domain.block.repo.BlockRepository
import com.anytypeio.anytype.domain.config.ConfigStorage
import com.anytypeio.anytype.domain.device.PathProvider
import com.anytypeio.anytype.domain.`object`.SetupMobileUseCaseSkip
import com.anytypeio.anytype.domain.platform.MetricsProvider
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
@ -69,6 +72,17 @@ object OnboardingAuthModule {
repository = authRepository
)
@JvmStatic
@Provides
@AuthScreenScope
fun provideSetupSkipUseCase(
repository: BlockRepository,
dispatchers: AppCoroutineDispatchers
) = SetupMobileUseCaseSkip(
repo = repository,
dispatchers = dispatchers
)
@Module
interface Declarations {
@ -81,12 +95,14 @@ object OnboardingAuthModule {
interface OnboardingAuthDependencies : ComponentDependencies {
fun authRepository(): AuthRepository
fun blockRepository(): BlockRepository
fun configStorage(): ConfigStorage
fun workspaceManager(): WorkspaceManager
fun relationsSubscriptionManager(): RelationsSubscriptionManager
fun objectTypesSubscriptionManager(): ObjectTypesSubscriptionManager
fun pathProvider(): PathProvider
fun metricsProvider(): MetricsProvider
fun dispatchers(): AppCoroutineDispatchers
}
@Scope

View file

@ -5,7 +5,9 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.anytypeio.anytype.domain.auth.interactor.CreateAccount
import com.anytypeio.anytype.domain.auth.interactor.SetupWallet
import com.anytypeio.anytype.domain.base.fold
import com.anytypeio.anytype.domain.device.PathProvider
import com.anytypeio.anytype.domain.`object`.SetupMobileUseCaseSkip
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
import com.anytypeio.anytype.presentation.spaces.SpaceGradientProvider
@ -19,6 +21,7 @@ import timber.log.Timber
class OnboardingAuthViewModel @Inject constructor(
private val createAccount: CreateAccount,
private val setupWallet: SetupWallet,
private val setupMobileUseCaseSkip: SetupMobileUseCaseSkip,
private val pathProvider: PathProvider,
private val spaceGradientProvider: SpaceGradientProvider,
private val relationsSubscriptionManager: RelationsSubscriptionManager,
@ -68,6 +71,20 @@ class OnboardingAuthViewModel @Inject constructor(
relationsSubscriptionManager.onStart()
objectTypesSubscriptionManager.onStart()
joinFlowState.value = JoinFlowState.Active
setupUseCase()
}
)
}
}
private fun setupUseCase() {
viewModelScope.launch {
setupMobileUseCaseSkip.execute(Unit).fold(
onFailure = {
Timber.e(it, "Error while importing use case")
navigateTo(InviteCodeNavigation.Void)
},
onSuccess = {
navigateTo(InviteCodeNavigation.Void)
}
)
@ -93,6 +110,7 @@ class OnboardingAuthViewModel @Inject constructor(
class Factory @Inject constructor(
private val createAccount: CreateAccount,
private val setupWallet: SetupWallet,
private val setupMobileUseCaseSkip: SetupMobileUseCaseSkip,
private val pathProvider: PathProvider,
private val spaceGradientProvider: SpaceGradientProvider,
private val relationsSubscriptionManager: RelationsSubscriptionManager,
@ -103,6 +121,7 @@ class OnboardingAuthViewModel @Inject constructor(
return OnboardingAuthViewModel(
createAccount = createAccount,
setupWallet = setupWallet,
setupMobileUseCaseSkip = setupMobileUseCaseSkip,
pathProvider = pathProvider,
spaceGradientProvider = spaceGradientProvider,
relationsSubscriptionManager = relationsSubscriptionManager,