mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
DROID-2251 Multiplayer | Tech | UserPermissionProvider won't start after onboarding + Should stop on logout or account deletion (#1016)
This commit is contained in:
parent
74ef0d58fd
commit
2ef91fa045
11 changed files with 56 additions and 18 deletions
|
@ -14,6 +14,7 @@ import com.anytypeio.anytype.domain.config.ConfigStorage
|
|||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
|
@ -63,7 +64,8 @@ object MainEntryModule {
|
|||
checkAuthorizationStatus: CheckAuthorizationStatus,
|
||||
configStorage: ConfigStorage,
|
||||
spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
localeProvider: LocaleProvider
|
||||
localeProvider: LocaleProvider,
|
||||
userPermissionProvider: UserPermissionProvider
|
||||
): MainViewModelFactory = MainViewModelFactory(
|
||||
resumeAccount = resumeAccount,
|
||||
analytics = analytics,
|
||||
|
@ -76,7 +78,8 @@ object MainEntryModule {
|
|||
checkAuthorizationStatus = checkAuthorizationStatus,
|
||||
configStorage = configStorage,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
localeProvider = localeProvider
|
||||
localeProvider = localeProvider,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
|
|
@ -13,6 +13,7 @@ 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.misc.AppActionManager
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -101,9 +102,9 @@ interface DeletedAccountDependencies : ComponentDependencies {
|
|||
fun authRepository(): AuthRepository
|
||||
fun userSettingsRepository(): UserSettingsRepository
|
||||
fun spaceManager(): SpaceManager
|
||||
|
||||
fun relationsSubscriptionManager(): RelationsSubscriptionManager
|
||||
fun objectTypesSubscriptionManager(): ObjectTypesSubscriptionManager
|
||||
fun spaceDeletedStatusWatcher(): SpaceDeletedStatusWatcher
|
||||
fun awaitAccountStartManager(): AwaitAccountStartManager
|
||||
fun userPermissionProvider(): UserPermissionProvider
|
||||
}
|
|
@ -10,6 +10,7 @@ import com.anytypeio.anytype.domain.auth.repo.AuthRepository
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
|
@ -62,4 +63,5 @@ interface OnboardingMnemonicLoginDependencies : ComponentDependencies {
|
|||
fun spaceStatusWatcher(): SpaceDeletedStatusWatcher
|
||||
fun localeProvider(): LocaleProvider
|
||||
fun awaitAccountStartManager(): AwaitAccountStartManager
|
||||
fun userPermissionProvider() : UserPermissionProvider
|
||||
}
|
|
@ -13,6 +13,7 @@ import com.anytypeio.anytype.domain.config.ConfigStorage
|
|||
import com.anytypeio.anytype.domain.config.UserSettingsRepository
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.`object`.ImportGetStartedUseCase
|
||||
import com.anytypeio.anytype.domain.platform.MetricsProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
|
@ -111,6 +112,7 @@ interface OnboardingSoulCreationDependencies : ComponentDependencies {
|
|||
fun spaceManager(): SpaceManager
|
||||
fun spaceStatusWatcher(): SpaceDeletedStatusWatcher
|
||||
fun localeProvider(): LocaleProvider
|
||||
fun userPermissionProvider(): UserPermissionProvider
|
||||
}
|
||||
|
||||
@Scope
|
||||
|
|
|
@ -9,6 +9,7 @@ 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.misc.AppActionManager
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -45,13 +46,15 @@ object LogoutWarningModule {
|
|||
objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
appActionManager: AppActionManager,
|
||||
userPermissionProvider: UserPermissionProvider
|
||||
): LogoutWarningViewModel.Factory = LogoutWarningViewModel.Factory(
|
||||
logout = logout,
|
||||
analytics = analytics,
|
||||
relationsSubscriptionManager = relationsSubscriptionManager,
|
||||
appActionManager = appActionManager,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
objectTypesSubscriptionManager = objectTypesSubscriptionManager
|
||||
objectTypesSubscriptionManager = objectTypesSubscriptionManager,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.anytypeio.anytype.domain.auth.interactor.Logout
|
|||
import com.anytypeio.anytype.domain.base.BaseUseCase
|
||||
import com.anytypeio.anytype.domain.base.Interactor
|
||||
import com.anytypeio.anytype.domain.misc.AppActionManager
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -37,7 +38,8 @@ class DeletedAccountViewModel(
|
|||
private val relationsSubscriptionManager: RelationsSubscriptionManager,
|
||||
private val objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val appActionManager: AppActionManager
|
||||
private val appActionManager: AppActionManager,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : BaseViewModel() {
|
||||
|
||||
val commands = MutableSharedFlow<Command>(replay = 0)
|
||||
|
@ -150,6 +152,7 @@ class DeletedAccountViewModel(
|
|||
relationsSubscriptionManager.onStop()
|
||||
objectTypesSubscriptionManager.onStop()
|
||||
spaceDeletedStatusWatcher.onStop()
|
||||
userPermissionProvider.stop()
|
||||
}
|
||||
|
||||
class Factory @Inject constructor(
|
||||
|
@ -160,7 +163,8 @@ class DeletedAccountViewModel(
|
|||
private val relationsSubscriptionManager: RelationsSubscriptionManager,
|
||||
private val objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val appActionManager: AppActionManager
|
||||
private val appActionManager: AppActionManager,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -172,7 +176,8 @@ class DeletedAccountViewModel(
|
|||
relationsSubscriptionManager = relationsSubscriptionManager,
|
||||
objectTypesSubscriptionManager = objectTypesSubscriptionManager,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
appActionManager = appActionManager
|
||||
appActionManager = appActionManager,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import com.anytypeio.anytype.domain.base.BaseUseCase
|
|||
import com.anytypeio.anytype.domain.base.Interactor
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -42,7 +43,8 @@ class MainViewModel(
|
|||
private val checkAuthorizationStatus: CheckAuthorizationStatus,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val localeProvider: LocaleProvider
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModel() {
|
||||
|
||||
val wallpaper = MutableStateFlow<Wallpaper>(Wallpaper.Default)
|
||||
|
@ -104,6 +106,7 @@ class MainViewModel(
|
|||
relationsSubscriptionManager.onStop()
|
||||
objectTypesSubscriptionManager.onStop()
|
||||
spaceDeletedStatusWatcher.onStop()
|
||||
userPermissionProvider.stop()
|
||||
}
|
||||
|
||||
fun onRestore() {
|
||||
|
@ -122,6 +125,7 @@ class MainViewModel(
|
|||
relationsSubscriptionManager.onStart()
|
||||
objectTypesSubscriptionManager.onStart()
|
||||
spaceDeletedStatusWatcher.onStart()
|
||||
userPermissionProvider.start()
|
||||
val analyticsID = configStorage.getOrNull()?.analytics
|
||||
if (analyticsID != null) {
|
||||
updateUserProperties(
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.anytypeio.anytype.domain.auth.interactor.Logout
|
|||
import com.anytypeio.anytype.domain.auth.interactor.ResumeAccount
|
||||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -28,7 +29,8 @@ class MainViewModelFactory @Inject constructor(
|
|||
private val checkAuthorizationStatus: CheckAuthorizationStatus,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val localeProvider: LocaleProvider
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(
|
||||
|
@ -45,6 +47,7 @@ class MainViewModelFactory @Inject constructor(
|
|||
checkAuthorizationStatus = checkAuthorizationStatus,
|
||||
configStorage = configStorage,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
localeProvider = localeProvider
|
||||
localeProvider = localeProvider,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
) as T
|
||||
}
|
|
@ -21,6 +21,7 @@ import com.anytypeio.anytype.domain.auth.interactor.StartLoadingAccounts
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -49,7 +50,8 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val crashReporter: CrashReporter,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val localeProvider: LocaleProvider
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModel() {
|
||||
|
||||
private val jobs = mutableListOf<Job>()
|
||||
|
@ -247,6 +249,7 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
relationsSubscriptionManager.onStart()
|
||||
objectTypesSubscriptionManager.onStart()
|
||||
spaceDeletedStatusWatcher.onStart()
|
||||
userPermissionProvider.start()
|
||||
}
|
||||
|
||||
private fun navigateToDashboard() {
|
||||
|
@ -295,6 +298,7 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
private val crashReporter: CrashReporter,
|
||||
private val configStorage: ConfigStorage,
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -312,7 +316,8 @@ class OnboardingMnemonicLoginViewModel @Inject constructor(
|
|||
observeAccounts = observeAccounts,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
selectAccount = selectAccount,
|
||||
localeProvider = localeProvider
|
||||
localeProvider = localeProvider,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import com.anytypeio.anytype.domain.base.fold
|
|||
import com.anytypeio.anytype.domain.config.ConfigStorage
|
||||
import com.anytypeio.anytype.domain.device.PathProvider
|
||||
import com.anytypeio.anytype.domain.misc.LocaleProvider
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.`object`.ImportGetStartedUseCase
|
||||
import com.anytypeio.anytype.domain.`object`.SetObjectDetails
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
|
@ -48,7 +49,8 @@ class OnboardingSetProfileNameViewModel @Inject constructor(
|
|||
private val relationsSubscriptionManager: RelationsSubscriptionManager,
|
||||
private val objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val localeProvider: LocaleProvider
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : BaseViewModel() {
|
||||
|
||||
init {
|
||||
|
@ -135,6 +137,7 @@ class OnboardingSetProfileNameViewModel @Inject constructor(
|
|||
relationsSubscriptionManager.onStart()
|
||||
objectTypesSubscriptionManager.onStart()
|
||||
spaceDeletedStatusWatcher.onStart()
|
||||
userPermissionProvider.start()
|
||||
}
|
||||
|
||||
private fun proceedWithSettingAccountName(name: String) {
|
||||
|
@ -217,7 +220,8 @@ class OnboardingSetProfileNameViewModel @Inject constructor(
|
|||
private val objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
private val crashReporter: CrashReporter,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val localeProvider: LocaleProvider
|
||||
private val localeProvider: LocaleProvider,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -235,7 +239,8 @@ class OnboardingSetProfileNameViewModel @Inject constructor(
|
|||
objectTypesSubscriptionManager = objectTypesSubscriptionManager,
|
||||
crashReporter = crashReporter,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
localeProvider = localeProvider
|
||||
localeProvider = localeProvider,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.anytypeio.anytype.analytics.props.Props
|
|||
import com.anytypeio.anytype.domain.auth.interactor.Logout
|
||||
import com.anytypeio.anytype.domain.base.Interactor
|
||||
import com.anytypeio.anytype.domain.misc.AppActionManager
|
||||
import com.anytypeio.anytype.domain.multiplayer.UserPermissionProvider
|
||||
import com.anytypeio.anytype.domain.search.ObjectTypesSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.search.RelationsSubscriptionManager
|
||||
import com.anytypeio.anytype.domain.spaces.SpaceDeletedStatusWatcher
|
||||
|
@ -26,7 +27,8 @@ class LogoutWarningViewModel(
|
|||
private val relationsSubscriptionManager: RelationsSubscriptionManager,
|
||||
private val objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val appActionManager: AppActionManager
|
||||
private val appActionManager: AppActionManager,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModel() {
|
||||
|
||||
val commands = MutableSharedFlow<Command>(replay = 0)
|
||||
|
@ -73,6 +75,7 @@ class LogoutWarningViewModel(
|
|||
relationsSubscriptionManager.onStop()
|
||||
objectTypesSubscriptionManager.onStop()
|
||||
spaceDeletedStatusWatcher.onStop()
|
||||
userPermissionProvider.stop()
|
||||
}
|
||||
|
||||
fun onBackupClicked() {
|
||||
|
@ -91,7 +94,8 @@ class LogoutWarningViewModel(
|
|||
private val relationsSubscriptionManager: RelationsSubscriptionManager,
|
||||
private val objectTypesSubscriptionManager: ObjectTypesSubscriptionManager,
|
||||
private val spaceDeletedStatusWatcher: SpaceDeletedStatusWatcher,
|
||||
private val appActionManager: AppActionManager
|
||||
private val appActionManager: AppActionManager,
|
||||
private val userPermissionProvider: UserPermissionProvider
|
||||
) : ViewModelProvider.Factory {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
|
@ -101,7 +105,8 @@ class LogoutWarningViewModel(
|
|||
relationsSubscriptionManager = relationsSubscriptionManager,
|
||||
objectTypesSubscriptionManager = objectTypesSubscriptionManager,
|
||||
spaceDeletedStatusWatcher = spaceDeletedStatusWatcher,
|
||||
appActionManager = appActionManager
|
||||
appActionManager = appActionManager,
|
||||
userPermissionProvider = userPermissionProvider
|
||||
) as T
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue