diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/BitwardenApplication.kt b/app/src/main/kotlin/com/x8bit/bitwarden/BitwardenApplication.kt index cce69972ab2..83df6cde99c 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/BitwardenApplication.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/BitwardenApplication.kt @@ -3,6 +3,7 @@ package com.x8bit.bitwarden import android.app.Application import com.bitwarden.annotation.OmitFromCoverage import com.x8bit.bitwarden.data.auth.manager.AuthRequestNotificationManager +import com.x8bit.bitwarden.data.autofill.manager.FillAssistManager import com.x8bit.bitwarden.data.platform.manager.LogsManager import com.x8bit.bitwarden.data.platform.manager.event.OrganizationEventManager import com.x8bit.bitwarden.data.platform.manager.network.NetworkConfigManager @@ -20,6 +21,9 @@ import javax.inject.Inject class BitwardenApplication : Application() { // Inject classes here that must be triggered on startup but are not otherwise consumed by // other callers. + @Inject + lateinit var fillAssistManager: FillAssistManager + @Inject lateinit var logsManager: LogsManager diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerImpl.kt index afe80b503a3..001b38bb3a7 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerImpl.kt @@ -15,6 +15,7 @@ import com.bitwarden.vault.DecryptCipherListResult import com.bitwarden.vault.FolderView import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource import com.x8bit.bitwarden.data.auth.manager.UserLogoutManager +import com.x8bit.bitwarden.data.autofill.manager.FillAssistManager import com.x8bit.bitwarden.data.auth.manager.UserStateManager import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason import com.x8bit.bitwarden.data.auth.repository.util.toUpdatedUserStateJson @@ -79,6 +80,7 @@ class VaultSyncManagerImpl( private val authDiskSource: AuthDiskSource, private val vaultDiskSource: VaultDiskSource, private val vaultSdkSource: VaultSdkSource, + private val fillAssistManager: FillAssistManager, private val userLogoutManager: UserLogoutManager, private val userStateManager: UserStateManager, private val vaultLockManager: VaultLockManager, @@ -341,6 +343,7 @@ class VaultSyncManagerImpl( lastSyncTime = clock.instant(), ) vaultDiskSource.replaceVaultData(userId = userId, vault = syncResponse) + fillAssistManager.syncIfNecessary() val itemsAvailable = syncResponse.ciphers?.isNotEmpty() == true SyncVaultDataResult.Success(itemsAvailable = itemsAvailable) } diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/di/VaultManagerModule.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/di/VaultManagerModule.kt index 31ef577c1e7..11ece6832fa 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/di/VaultManagerModule.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/di/VaultManagerModule.kt @@ -44,6 +44,7 @@ import com.x8bit.bitwarden.data.vault.manager.VaultLockManager import com.x8bit.bitwarden.data.vault.manager.VaultLockManagerImpl import com.x8bit.bitwarden.data.vault.manager.VaultMigrationManager import com.x8bit.bitwarden.data.vault.manager.VaultMigrationManagerImpl +import com.x8bit.bitwarden.data.autofill.manager.FillAssistManager import com.x8bit.bitwarden.data.vault.manager.VaultSyncManager import com.x8bit.bitwarden.data.vault.manager.VaultSyncManagerImpl import com.x8bit.bitwarden.data.vault.repository.VaultRepository @@ -224,6 +225,7 @@ object VaultManagerModule { @Provides @Singleton fun provideVaultSyncManager( + fillAssistManager: FillAssistManager, syncService: SyncService, settingsDiskSource: SettingsDiskSource, authDiskSource: AuthDiskSource, @@ -237,6 +239,7 @@ object VaultManagerModule { pushManager: PushManager, dispatcherManager: DispatcherManager, ): VaultSyncManager = VaultSyncManagerImpl( + fillAssistManager = fillAssistManager, syncService = syncService, settingsDiskSource = settingsDiskSource, authDiskSource = authDiskSource, diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerTest.kt index 0a754f4b7c3..6550a4df151 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/VaultSyncManagerTest.kt @@ -34,6 +34,7 @@ import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson import com.x8bit.bitwarden.data.auth.datasource.disk.util.FakeAuthDiskSource import com.x8bit.bitwarden.data.auth.manager.UserLogoutManager import com.x8bit.bitwarden.data.auth.manager.UserStateManager +import com.x8bit.bitwarden.data.autofill.manager.FillAssistManager import com.x8bit.bitwarden.data.auth.repository.model.LogoutReason import com.x8bit.bitwarden.data.platform.datasource.disk.SettingsDiskSource import com.x8bit.bitwarden.data.platform.error.NoActiveUserException @@ -143,7 +144,12 @@ class VaultSyncManagerTest { every { databaseSchemeChangeFlow } returns mutableDatabaseSchemeChangeFlow } + private val fillAssistManager: FillAssistManager = mockk { + every { syncIfNecessary() } just runs + } + private val vaultSyncManager: VaultSyncManager = VaultSyncManagerImpl( + fillAssistManager = fillAssistManager, syncService = syncService, settingsDiskSource = settingsDiskSource, authDiskSource = fakeAuthDiskSource,