mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
DROID-3696 Invite link | Onboarding flow with a no approval invite link (#2469)
This commit is contained in:
parent
ab2f0ea838
commit
42e227ee69
17 changed files with 241 additions and 148 deletions
|
@ -1,7 +1,6 @@
|
|||
package com.anytypeio.anytype.di.feature
|
||||
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.core_utils.di.scope.PerDialog
|
||||
import com.anytypeio.anytype.core_utils.di.scope.PerScreen
|
||||
import com.anytypeio.anytype.domain.account.AccountStatusChannel
|
||||
import com.anytypeio.anytype.domain.account.AwaitAccountStartManager
|
||||
|
@ -13,6 +12,7 @@ import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
|||
import com.anytypeio.anytype.domain.base.AppCoroutineDispatchers
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.deeplink.PendingIntentStore
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.SpaceInviteResolver
|
||||
|
@ -77,7 +77,8 @@ object MainEntryModule {
|
|||
globalSubscriptionManager: GlobalSubscriptionManager,
|
||||
spaceInviteResolver: SpaceInviteResolver,
|
||||
spaceManager: SpaceManager,
|
||||
spaceViewSubscriptionContainer: SpaceViewSubscriptionContainer
|
||||
spaceViewSubscriptionContainer: SpaceViewSubscriptionContainer,
|
||||
pendingIntentStore: PendingIntentStore
|
||||
): MainViewModelFactory = MainViewModelFactory(
|
||||
resumeAccount = resumeAccount,
|
||||
analytics = analytics,
|
||||
|
@ -97,7 +98,8 @@ object MainEntryModule {
|
|||
globalSubscriptionManager = globalSubscriptionManager,
|
||||
spaceInviteResolver = spaceInviteResolver,
|
||||
spaceManager = spaceManager,
|
||||
spaceViews = spaceViewSubscriptionContainer
|
||||
spaceViews = spaceViewSubscriptionContainer,
|
||||
pendingIntentStore = pendingIntentStore
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
|
|
@ -30,7 +30,6 @@ import com.anytypeio.anytype.domain.relations.RemoveFromFeaturedRelations
|
|||
import com.anytypeio.anytype.domain.templates.CreateTemplateFromObject
|
||||
import com.anytypeio.anytype.domain.widgets.CreateWidget
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.other.DefaultDeepLinkResolver
|
||||
import com.anytypeio.anytype.presentation.analytics.AnalyticSpaceHelperDelegate
|
||||
import com.anytypeio.anytype.presentation.common.Action
|
||||
import com.anytypeio.anytype.presentation.common.Delegator
|
||||
|
@ -223,11 +222,6 @@ object ObjectMenuModule {
|
|||
dispatchers = dispatchers
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
@PerDialog
|
||||
fun provideDeeplinkResolver() : DeepLinkResolver = DefaultDeepLinkResolver
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
@PerDialog
|
||||
|
@ -377,11 +371,6 @@ object ObjectSetMenuModule {
|
|||
dispatchers = dispatchers
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
@PerDialog
|
||||
fun provideDeeplinkResolver() : DeepLinkResolver = DefaultDeepLinkResolver
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
@PerDialog
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.anytypeio.anytype.di.common.ComponentDependencies
|
|||
import com.anytypeio.anytype.domain.auth.interactor.GetMnemonic
|
||||
import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.deeplink.PendingIntentStore
|
||||
import com.anytypeio.anytype.domain.device.NetworkConnectionStatus
|
||||
import com.anytypeio.anytype.domain.network.NetworkModeProvider
|
||||
import com.anytypeio.anytype.presentation.onboarding.signup.OnboardingMnemonicViewModel
|
||||
|
@ -61,6 +62,7 @@ interface OnboardingMnemonicDependencies : ComponentDependencies {
|
|||
fun config(): ConfigStorage
|
||||
fun networkModeProvider(): NetworkModeProvider
|
||||
fun networkConnectionStatus(): NetworkConnectionStatus
|
||||
fun pendingIntentStore(): PendingIntentStore
|
||||
}
|
||||
|
||||
@Scope
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.anytypeio.anytype.di.feature.onboarding.signup
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.anytypeio.anytype.CrashReporter
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.core_utils.di.scope.PerScreen
|
||||
import com.anytypeio.anytype.di.common.ComponentDependencies
|
||||
import com.anytypeio.anytype.domain.account.AwaitAccountStartManager
|
||||
import com.anytypeio.anytype.domain.auth.interactor.CreateAccount
|
||||
|
@ -13,6 +12,7 @@ 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.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.deeplink.PendingIntentStore
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
|
@ -131,6 +131,7 @@ interface OnboardingSoulCreationDependencies : ComponentDependencies {
|
|||
fun awaitAccountStartManager(): AwaitAccountStartManager
|
||||
fun globalSubscriptionManager(): GlobalSubscriptionManager
|
||||
fun stringResourceProvider(): StringResourceProvider
|
||||
fun providePendingIntentStore(): PendingIntentStore
|
||||
}
|
||||
|
||||
@Scope
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.anytypeio.anytype.di.feature.vault
|
|||
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.core_utils.di.scope.PerDialog
|
||||
import com.anytypeio.anytype.core_utils.di.scope.PerScreen
|
||||
import com.anytypeio.anytype.di.common.ComponentDependencies
|
||||
import com.anytypeio.anytype.domain.account.AwaitAccountStartManager
|
||||
|
@ -12,6 +11,7 @@ import com.anytypeio.anytype.domain.block.repo.BlockRepository
|
|||
import com.anytypeio.anytype.domain.chats.ChatPreviewContainer
|
||||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.debugging.Logger
|
||||
import com.anytypeio.anytype.domain.deeplink.PendingIntentStore
|
||||
import com.anytypeio.anytype.domain.misc.AppActionManager
|
||||
import com.anytypeio.anytype.domain.misc.UrlBuilder
|
||||
import com.anytypeio.anytype.domain.multiplayer.SpaceInviteResolver
|
||||
|
@ -83,4 +83,5 @@ interface VaultComponentDependencies : ComponentDependencies {
|
|||
fun awaitAccount(): AwaitAccountStartManager
|
||||
fun profileContainer(): ProfileSubscriptionManager
|
||||
fun chatPreviewContainer(): ChatPreviewContainer
|
||||
fun pendingIntentStore(): PendingIntentStore
|
||||
}
|
|
@ -13,10 +13,12 @@ import com.anytypeio.anytype.domain.chats.ChatPreviewContainer
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.debugging.DebugAccountSelectTrace
|
||||
import com.anytypeio.anytype.domain.debugging.Logger
|
||||
import com.anytypeio.anytype.domain.deeplink.PendingIntentStore
|
||||
import com.anytypeio.anytype.domain.device.NetworkConnectionStatus
|
||||
import com.anytypeio.anytype.domain.device.DeviceTokenStoringService
|
||||
import com.anytypeio.anytype.domain.event.interactor.SpaceSyncAndP2PStatusProvider
|
||||
import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer
|
||||
import com.anytypeio.anytype.domain.misc.DeepLinkResolver
|
||||
import com.anytypeio.anytype.domain.multiplayer.ActiveSpaceMemberSubscriptionContainer
|
||||
import com.anytypeio.anytype.domain.multiplayer.DefaultUserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.SpaceViewSubscriptionContainer
|
||||
|
@ -37,6 +39,7 @@ import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
|||
import com.anytypeio.anytype.domain.subscriptions.GlobalSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.workspace.SpaceManager
|
||||
import com.anytypeio.anytype.domain.workspace.SyncAndP2PStatusChannel
|
||||
import com.anytypeio.anytype.other.DefaultDeepLinkResolver
|
||||
import com.anytypeio.anytype.presentation.sync.SpaceSyncAndP2PStatusProviderImpl
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
|
@ -298,4 +301,14 @@ object SubscriptionsModule {
|
|||
dispatchers = dispatchers,
|
||||
scope = scope
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideDeeplinkResolver() : DeepLinkResolver = DefaultDeepLinkResolver
|
||||
|
||||
@JvmStatic
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providePendingIntentStore(): PendingIntentStore = PendingIntentStore()
|
||||
}
|
|
@ -455,7 +455,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main), AppNavigation.Pr
|
|||
intent.data?.let { uri ->
|
||||
val data = uri.toString()
|
||||
if (DefaultDeepLinkResolver.isDeepLink(data)) {
|
||||
vm.onNewDeepLink(DefaultDeepLinkResolver.resolve(data))
|
||||
vm.handleNewDeepLink(DefaultDeepLinkResolver.resolve(data))
|
||||
|
||||
// Optionally clear to prevent repeat
|
||||
intent.action = null
|
||||
|
@ -544,7 +544,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main), AppNavigation.Pr
|
|||
|
||||
when {
|
||||
checkDeepLink && DefaultDeepLinkResolver.isDeepLink(raw) -> {
|
||||
vm.onNewDeepLink(DefaultDeepLinkResolver.resolve(raw))
|
||||
vm.handleNewDeepLink(DefaultDeepLinkResolver.resolve(raw))
|
||||
}
|
||||
raw.isNotEmpty() && !DefaultDeepLinkResolver.isDeepLink(raw) -> {
|
||||
vm.onIntentTextShare(raw)
|
||||
|
|
|
@ -145,7 +145,7 @@ class ShareSpaceFragment : BaseBottomSheetComposeFragment() {
|
|||
}
|
||||
dialog.show(childFragmentManager, null)
|
||||
}.onFailure {
|
||||
Timber.e(it, "Error while navigation")
|
||||
Timber.e(it, "Error while showing remove member warning")
|
||||
}
|
||||
}
|
||||
is Command.ShowStopSharingWarning -> {
|
||||
|
|
|
@ -78,7 +78,7 @@ fun MnemonicPhraseScreenWrapper(
|
|||
copyMnemonicToClipboard = copyMnemonicToClipboard,
|
||||
mnemonicColorPalette = mnemonicColorPalette,
|
||||
onGoToAppClicked = {
|
||||
vm.onGoToTheAppClicked(
|
||||
vm.handleAppEntryClick(
|
||||
space = space,
|
||||
startingObject = startingObject
|
||||
)
|
||||
|
|
|
@ -14,7 +14,6 @@ import androidx.fragment.app.viewModels
|
|||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.navigation.NavOptions
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.anytypeio.anytype.BuildConfig.USE_EDGE_TO_EDGE
|
||||
import com.anytypeio.anytype.R
|
||||
import com.anytypeio.anytype.core_utils.ext.argOrNull
|
||||
import com.anytypeio.anytype.core_utils.ext.toast
|
||||
|
@ -245,6 +244,7 @@ class VaultFragment : BaseComposeFragment() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
proceedWithDeepLinks()
|
||||
vm.processPendingDeeplink()
|
||||
}
|
||||
|
||||
private fun proceedWithDeepLinks() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue