Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -23,6 +23,9 @@ import com.bitwarden.cxf.ui.composition.LocalCredentialExchangeRequestValidator
import com.bitwarden.cxf.validator.CredentialExchangeRequestValidator
import com.bitwarden.cxf.validator.dsl.credentialExchangeRequestValidator
import com.bitwarden.ui.platform.composition.LocalIntentManager
import com.bitwarden.ui.platform.composition.LocalQrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzerImpl
import com.bitwarden.ui.platform.manager.IntentManager
import com.x8bit.bitwarden.R
import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager
Expand Down Expand Up @@ -80,6 +83,7 @@ fun LocalManagerProvider(
credentialExchangeRequestValidator: CredentialExchangeRequestValidator =
credentialExchangeRequestValidator(activity = activity),
authTabLaunchers: AuthTabLaunchers,
qrCodeAnalyzer: QrCodeAnalyzer = QrCodeAnalyzerImpl(),
content: @Composable () -> Unit,
) {
CompositionLocalProvider(
Expand All @@ -98,6 +102,7 @@ fun LocalManagerProvider(
LocalCredentialExchangeCompletionManager provides credentialExchangeCompletionManager,
LocalCredentialExchangeRequestValidator provides credentialExchangeRequestValidator,
LocalAuthTabLaunchers provides authTabLaunchers,
LocalQrCodeAnalyzer provides qrCodeAnalyzer,
content = content,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ import com.bitwarden.ui.platform.components.camera.CameraPreview
import com.bitwarden.ui.platform.components.camera.QrCodeSquare
import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
import com.bitwarden.ui.platform.components.util.rememberVectorPainter
import com.bitwarden.ui.platform.composition.LocalQrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzerImpl
import com.bitwarden.ui.platform.model.WindowSize
import com.bitwarden.ui.platform.resource.BitwardenDrawable
import com.bitwarden.ui.platform.resource.BitwardenString
Expand All @@ -55,7 +55,7 @@ fun QrCodeScanScreen(
onNavigateBack: () -> Unit,
onNavigateToManualCodeEntryScreen: () -> Unit,
viewModel: QrCodeScanViewModel = hiltViewModel(),
qrCodeAnalyzer: QrCodeAnalyzer = QrCodeAnalyzerImpl(),
qrCodeAnalyzer: QrCodeAnalyzer = LocalQrCodeAnalyzer.current,
) {
qrCodeAnalyzer.onQrCodeScanned = remember(viewModel) {
{ viewModel.trySendAction(QrCodeScanAction.QrCodeScanReceive(it)) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.bitwarden.cxf.importer.CredentialExchangeImporter
import com.bitwarden.cxf.manager.CredentialExchangeCompletionManager
import com.bitwarden.cxf.validator.CredentialExchangeRequestValidator
import com.bitwarden.ui.platform.base.BaseComposeTest
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
import com.bitwarden.ui.platform.manager.IntentManager
import com.bitwarden.ui.platform.theme.BitwardenTheme
Expand Down Expand Up @@ -48,6 +49,7 @@ abstract class BitwardenComposeTest : BaseComposeTest() {
credentialExchangeImporter: CredentialExchangeImporter = mockk(),
credentialExchangeCompletionManager: CredentialExchangeCompletionManager = mockk(),
credentialExchangeRequestValidator: CredentialExchangeRequestValidator = mockk(),
qrCodeAnalyzer: QrCodeAnalyzer = mockk(),
test: @Composable () -> Unit,
) {
setTestContent {
Expand All @@ -67,6 +69,7 @@ abstract class BitwardenComposeTest : BaseComposeTest() {
credentialExchangeImporter = credentialExchangeImporter,
credentialExchangeCompletionManager = credentialExchangeCompletionManager,
credentialExchangeRequestValidator = credentialExchangeRequestValidator,
qrCodeAnalyzer = qrCodeAnalyzer,
) {
BitwardenTheme(
theme = theme,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,12 @@ class QrCodeScanScreenTest : BitwardenComposeTest() {

@Before
fun setup() {
setContent {
setContent(
qrCodeAnalyzer = qrCodeAnalyzer,
) {
QrCodeScanScreen(
onNavigateBack = { onNavigateBackCalled = true },
viewModel = viewModel,
qrCodeAnalyzer = qrCodeAnalyzer,
onNavigateToManualCodeEntryScreen = {
onNavigateToManualCodeEntryScreenCalled = true
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ import com.bitwarden.ui.platform.components.camera.CameraPreview
import com.bitwarden.ui.platform.components.camera.QrCodeSquare
import com.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog
import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
import com.bitwarden.ui.platform.composition.LocalQrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzerImpl
import com.bitwarden.ui.platform.resource.BitwardenDrawable
import com.bitwarden.ui.platform.resource.BitwardenString
import com.bitwarden.ui.platform.theme.BitwardenTheme
Expand All @@ -57,7 +57,7 @@ import com.bitwarden.ui.platform.theme.color.darkBitwardenColorScheme
fun QrCodeScanScreen(
onNavigateBack: () -> Unit,
viewModel: QrCodeScanViewModel = hiltViewModel(),
qrCodeAnalyzer: QrCodeAnalyzer = QrCodeAnalyzerImpl(),
qrCodeAnalyzer: QrCodeAnalyzer = LocalQrCodeAnalyzer.current,
onNavigateToManualCodeEntryScreen: () -> Unit,
) {
qrCodeAnalyzer.onQrCodeScanned = remember(viewModel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsMa
import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManagerImpl
import com.bitwarden.core.data.manager.BuildInfoManager
import com.bitwarden.ui.platform.composition.LocalIntentManager
import com.bitwarden.ui.platform.composition.LocalQrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzerImpl
import com.bitwarden.ui.platform.manager.IntentManager
import java.time.Clock

Expand All @@ -34,13 +37,15 @@ fun LocalManagerProvider(
intentManager: IntentManager = IntentManager.create(activity, clock, buildInfoManager),
exitManager: ExitManager = ExitManagerImpl(activity),
biometricsManager: BiometricsManager = BiometricsManagerImpl(activity),
qrCodeAnalyzer: QrCodeAnalyzer = QrCodeAnalyzerImpl(),
content: @Composable () -> Unit,
) {
CompositionLocalProvider(
LocalPermissionsManager provides permissionsManager,
LocalIntentManager provides intentManager,
LocalExitManager provides exitManager,
LocalBiometricsManager provides biometricsManager,
LocalQrCodeAnalyzer provides qrCodeAnalyzer,
content = content,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ class QrCodeScanScreenTest : AuthenticatorComposeTest() {

@Before
fun setup() {
setContent {
setContent(
qrCodeAnalyzer = qrCodeAnalyzer,
) {
QrCodeScanScreen(
viewModel = viewModel,
qrCodeAnalyzer = qrCodeAnalyzer,
onNavigateBack = { onNavigateBackCalled = true },
onNavigateToManualCodeEntryScreen = {
onNavigateToManualCodeEntryScreenCalled = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsMana
import com.bitwarden.authenticator.ui.platform.manager.exit.ExitManager
import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManager
import com.bitwarden.ui.platform.base.BaseComposeTest
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme
import com.bitwarden.ui.platform.manager.IntentManager
import com.bitwarden.ui.platform.theme.BitwardenTheme
Expand All @@ -28,6 +29,7 @@ abstract class AuthenticatorComposeTest : BaseComposeTest() {
intentManager: IntentManager = mockk(),
exitManager: ExitManager = mockk(),
biometricsManager: BiometricsManager = mockk(),
qrCodeAnalyzer: QrCodeAnalyzer = mockk(),
test: @Composable () -> Unit,
) {
setTestContent {
Expand All @@ -37,6 +39,7 @@ abstract class AuthenticatorComposeTest : BaseComposeTest() {
intentManager = intentManager,
exitManager = exitManager,
biometricsManager = biometricsManager,
qrCodeAnalyzer = qrCodeAnalyzer,
content = test,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.bitwarden.ui.platform.composition

import androidx.compose.runtime.ProvidableCompositionLocal
import androidx.compose.runtime.compositionLocalOf
import com.bitwarden.ui.platform.feature.qrcodescan.util.QrCodeAnalyzer
import com.bitwarden.ui.platform.manager.IntentManager

/**
Expand All @@ -10,3 +11,10 @@ import com.bitwarden.ui.platform.manager.IntentManager
val LocalIntentManager: ProvidableCompositionLocal<IntentManager> = compositionLocalOf {
error("CompositionLocal LocalIntentManager not present")
}

/**
* Provides access to the QR Code Analyzer throughout the app.
*/
val LocalQrCodeAnalyzer: ProvidableCompositionLocal<QrCodeAnalyzer> = compositionLocalOf {
error("CompositionLocal LocalQrCodeAnalyzer not present")
}
Loading