Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c646372
Add fill assist rules network data
aj-rosado May 29, 2026
f57a7d0
reverted unwanted changes on AuthRepositoryTest
aj-rosado May 29, 2026
8b6ce8b
Add fill assist data layer
aj-rosado May 29, 2026
09692af
wire fill-assist manager into vault sync and app startup
aj-rosado May 29, 2026
00b2479
chained code on FillAssistManager
aj-rosado May 29, 2026
61db0cd
Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-…
aj-rosado May 29, 2026
b718f56
Merge branch 'PM-37255/fill-assist-data-layer' into PM-37255/fill-ass…
aj-rosado May 29, 2026
f66485f
Removed nulls and sets on non nullable fields by schema definition. R…
aj-rosado Jun 8, 2026
0b39ad2
following autofill assist forms schema
aj-rosado Jun 8, 2026
b25404e
removed unnecessary null set
aj-rosado Jun 9, 2026
31a9cf7
Added FillAssist to BaseUrlInterceptors
aj-rosado Jun 9, 2026
bbdc2f1
Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-…
aj-rosado Jun 9, 2026
ad2aada
updating environmentDiskSource.fillAssistUrl when serverConfigStateFl…
aj-rosado Jun 10, 2026
9c5d53c
Merge branch 'PM-37255/fill-assist-data-layer' into PM-37255/fill-ass…
aj-rosado Jun 10, 2026
d6f0a47
Merge branch 'main' into PM-37255/fill-assist-network-layer
aj-rosado Jun 10, 2026
6c0bfa5
Improved code readability
aj-rosado Jun 11, 2026
8b05d40
Addressing pr comments
aj-rosado Jun 11, 2026
1db11d1
Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-…
aj-rosado Jun 12, 2026
20f9642
Merge branch 'PM-37255/fill-assist-data-layer' into PM-37255/fill-ass…
aj-rosado Jun 12, 2026
1a2ea61
added verify for FillAssistManager syncIfNecessary
aj-rosado Jun 25, 2026
6814294
Merge branch 'PM-37255/fill-assist-data-layer' into PM-37255/fill-ass…
aj-rosado Jun 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -224,6 +225,7 @@ object VaultManagerModule {
@Provides
@Singleton
fun provideVaultSyncManager(
fillAssistManager: FillAssistManager,
syncService: SyncService,
settingsDiskSource: SettingsDiskSource,
authDiskSource: AuthDiskSource,
Expand All @@ -237,6 +239,7 @@ object VaultManagerModule {
pushManager: PushManager,
dispatcherManager: DispatcherManager,
): VaultSyncManager = VaultSyncManagerImpl(
fillAssistManager = fillAssistManager,
syncService = syncService,
settingsDiskSource = settingsDiskSource,
authDiskSource = authDiskSource,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you make sure the appropriate verify calls happen

syncService = syncService,
settingsDiskSource = settingsDiskSource,
authDiskSource = fakeAuthDiskSource,
Expand Down Expand Up @@ -777,6 +783,7 @@ class VaultSyncManagerTest {
),
)
}
verify(exactly = 1) { fillAssistManager.syncIfNecessary() }
}

@Suppress("MaxLineLength")
Expand Down Expand Up @@ -817,6 +824,7 @@ class VaultSyncManagerTest {
),
)
}
verify(exactly = 0) { fillAssistManager.syncIfNecessary() }
}

@Test
Expand Down Expand Up @@ -1183,6 +1191,7 @@ class VaultSyncManagerTest {

val syncResult = vaultSyncManager.syncForResult()
assertEquals(SyncVaultDataResult.Success(itemsAvailable = true), syncResult)
verify(exactly = 1) { fillAssistManager.syncIfNecessary() }
}

@Suppress("MaxLineLength")
Expand Down Expand Up @@ -1214,6 +1223,7 @@ class VaultSyncManagerTest {

val syncResult = vaultSyncManager.syncForResult()
assertEquals(SyncVaultDataResult.Success(itemsAvailable = false), syncResult)
verify(exactly = 1) { fillAssistManager.syncIfNecessary() }
}

@Test
Expand Down Expand Up @@ -1263,6 +1273,7 @@ class VaultSyncManagerTest {
)
}
coVerify(exactly = 0) { syncService.sync() }
verify(exactly = 0) { fillAssistManager.syncIfNecessary() }
}

//region Helper functions
Expand Down
Loading