mirror of
https://github.com/bitwarden/android.git
synced 2026-08-01 18:53:39 -05:00
[PM-37255] feat: Wire fill-assist manager into vault sync and app startup (#6992)
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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.toAccountCryptographicState
|
||||
@@ -80,6 +81,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,
|
||||
@@ -342,6 +344,7 @@ class VaultSyncManagerImpl(
|
||||
lastSyncTime = clock.instant(),
|
||||
)
|
||||
vaultDiskSource.replaceVaultData(userId = userId, vault = syncResponse)
|
||||
fillAssistManager.syncIfNecessary()
|
||||
val itemsAvailable = syncResponse.ciphers?.isNotEmpty() == true
|
||||
SyncVaultDataResult.Success(itemsAvailable = itemsAvailable)
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.auth.repository.model.createMockWrappedAccountCryptographicState
|
||||
import com.x8bit.bitwarden.data.platform.datasource.disk.SettingsDiskSource
|
||||
@@ -144,7 +145,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,
|
||||
@@ -777,6 +783,7 @@ class VaultSyncManagerTest {
|
||||
),
|
||||
)
|
||||
}
|
||||
verify(exactly = 1) { fillAssistManager.syncIfNecessary() }
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@@ -817,6 +824,7 @@ class VaultSyncManagerTest {
|
||||
),
|
||||
)
|
||||
}
|
||||
verify(exactly = 0) { fillAssistManager.syncIfNecessary() }
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1183,6 +1191,7 @@ class VaultSyncManagerTest {
|
||||
|
||||
val syncResult = vaultSyncManager.syncForResult()
|
||||
assertEquals(SyncVaultDataResult.Success(itemsAvailable = true), syncResult)
|
||||
verify(exactly = 1) { fillAssistManager.syncIfNecessary() }
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@@ -1214,6 +1223,7 @@ class VaultSyncManagerTest {
|
||||
|
||||
val syncResult = vaultSyncManager.syncForResult()
|
||||
assertEquals(SyncVaultDataResult.Success(itemsAvailable = false), syncResult)
|
||||
verify(exactly = 1) { fillAssistManager.syncIfNecessary() }
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1263,6 +1273,7 @@ class VaultSyncManagerTest {
|
||||
)
|
||||
}
|
||||
coVerify(exactly = 0) { syncService.sync() }
|
||||
verify(exactly = 0) { fillAssistManager.syncIfNecessary() }
|
||||
}
|
||||
|
||||
//region Helper functions
|
||||
|
||||
Reference in New Issue
Block a user