diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/composition/LocalManagerProvider.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/composition/LocalManagerProvider.kt index fa51599e61..ed7affadd0 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/composition/LocalManagerProvider.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/composition/LocalManagerProvider.kt @@ -22,11 +22,14 @@ import com.bitwarden.cxf.ui.composition.LocalCredentialExchangeImporter 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.LocalExitManager 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.bitwarden.ui.platform.manager.exit.ExitManager +import com.bitwarden.ui.platform.manager.exit.ExitManagerImpl import com.x8bit.bitwarden.R import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManagerImpl @@ -36,8 +39,6 @@ import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionMa import com.x8bit.bitwarden.ui.platform.manager.BitwardenBuildInfoManagerImpl import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManagerImpl -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManagerImpl import com.x8bit.bitwarden.ui.platform.manager.keychain.KeyChainManager import com.x8bit.bitwarden.ui.platform.manager.keychain.KeyChainManagerImpl import com.x8bit.bitwarden.ui.platform.manager.nfc.NfcManager @@ -128,13 +129,6 @@ val LocalBiometricsManager: ProvidableCompositionLocal = comp */ val LocalClock: ProvidableCompositionLocal = compositionLocalOf { Clock.systemDefaultZone() } -/** - * Provides access to the exit manager throughout the app. - */ -val LocalExitManager: ProvidableCompositionLocal = compositionLocalOf { - error("CompositionLocal ExitManager not present") -} - /** * Provides access to the Auth Tab launchers throughout the app. */ diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt index 8011338785..24e0065c2d 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt @@ -37,11 +37,11 @@ import com.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalExitManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme -import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager /** * Displays the login approval screen. diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreen.kt index 4f6d957f0f..1b2cbf071c 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreen.kt @@ -30,13 +30,13 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.model.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalExitManager import com.bitwarden.ui.platform.composition.LocalIntentManager import com.bitwarden.ui.platform.manager.IntentManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString -import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.handlers.AddEditSendHandlers diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt index 51e3ca31ab..3a5b35ed31 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt @@ -61,8 +61,10 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.model.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.text.BitwardenClickableText import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalExitManager import com.bitwarden.ui.platform.composition.LocalIntentManager import com.bitwarden.ui.platform.manager.IntentManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -73,11 +75,9 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenOverwritePassk import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenPinDialog import com.x8bit.bitwarden.ui.platform.composition.LocalBiometricsManager import com.x8bit.bitwarden.ui.platform.composition.LocalCredentialProviderCompletionManager -import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager import com.x8bit.bitwarden.ui.platform.feature.settings.accountsecurity.PinInputDialog import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCardTypeHandlers diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt index 02d3f9c215..26037a25ea 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt @@ -40,8 +40,10 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.model.BitwardenSnackbarHostState import com.bitwarden.ui.platform.components.snackbar.model.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalExitManager import com.bitwarden.ui.platform.composition.LocalIntentManager import com.bitwarden.ui.platform.manager.IntentManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.Text @@ -52,11 +54,9 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenOverwritePassk import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenPinDialog import com.x8bit.bitwarden.ui.platform.composition.LocalBiometricsManager import com.x8bit.bitwarden.ui.platform.composition.LocalCredentialProviderCompletionManager -import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType import com.x8bit.bitwarden.ui.platform.feature.settings.accountsecurity.PinInputDialog import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendRoute import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt index 13b3edb249..03eaa7824b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/base/BitwardenComposeTest.kt @@ -8,12 +8,12 @@ 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.manager.exit.ExitManager import com.bitwarden.ui.platform.theme.BitwardenTheme import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionManager import com.x8bit.bitwarden.ui.platform.composition.LocalManagerProvider import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.manager.keychain.KeyChainManager import com.x8bit.bitwarden.ui.platform.manager.nfc.NfcManager import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt index b642f6ed4b..de74b1447d 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreenTest.kt @@ -10,9 +10,9 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt index ca60b626a6..6eb30ef5bc 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/AddEditSendScreenTest.kt @@ -23,12 +23,12 @@ import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.model.BitwardenSnackbarData import com.bitwarden.ui.platform.manager.IntentManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.isEditableText import com.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.model.AddEditSendType import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt index fa62106fe1..28907bd9c9 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreenTest.kt @@ -42,6 +42,7 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.model.BitwardenSnackbarData import com.bitwarden.ui.platform.manager.IntentManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.assertScrollableNodeDoesNotExist @@ -59,7 +60,6 @@ import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionMa import com.x8bit.bitwarden.ui.credentials.manager.model.RegisterFido2CredentialResult import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldAction diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt index cb00d14a37..ce8fda5315 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt @@ -24,6 +24,7 @@ import com.bitwarden.ui.platform.components.account.model.AccountSummary import com.bitwarden.ui.platform.components.icon.model.IconData import com.bitwarden.ui.platform.components.snackbar.model.BitwardenSnackbarData import com.bitwarden.ui.platform.manager.IntentManager +import com.bitwarden.ui.platform.manager.exit.ExitManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText @@ -55,7 +56,6 @@ import com.x8bit.bitwarden.ui.credentials.manager.model.RegisterFido2CredentialR import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendRoute import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/composition/LocalManagerProvider.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/composition/LocalManagerProvider.kt index 35036d82da..82afa37354 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/composition/LocalManagerProvider.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/composition/LocalManagerProvider.kt @@ -13,16 +13,17 @@ import com.bitwarden.annotation.OmitFromCoverage import com.bitwarden.authenticator.ui.platform.manager.AuthenticatorBuildInfoManagerImpl import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManager import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManagerImpl -import com.bitwarden.authenticator.ui.platform.manager.exit.ExitManager -import com.bitwarden.authenticator.ui.platform.manager.exit.ExitManagerImpl import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManager import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManagerImpl import com.bitwarden.core.data.manager.BuildInfoManager +import com.bitwarden.ui.platform.composition.LocalExitManager 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.bitwarden.ui.platform.manager.exit.ExitManager +import com.bitwarden.ui.platform.manager.exit.ExitManagerImpl import java.time.Clock /** @@ -57,13 +58,6 @@ val LocalBiometricsManager: ProvidableCompositionLocal = comp error("CompositionLocal BiometricsManager not present") } -/** - * Provides access to the exit manager throughout the app. - */ -val LocalExitManager: ProvidableCompositionLocal = compositionLocalOf { - error("CompositionLocal ExitManager not present") -} - /** * Provides access to the permission manager throughout the app. */ diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/exit/ExitManager.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/exit/ExitManager.kt deleted file mode 100644 index 5cdcf4c85a..0000000000 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/exit/ExitManager.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.bitwarden.authenticator.ui.platform.manager.exit - -import androidx.compose.runtime.Immutable - -/** - * A manager class for handling the various ways to exit the app. - */ -@Immutable -interface ExitManager { - /** - * Finishes the activity. - */ - fun exitApplication() -} diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/exit/ExitManagerImpl.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/exit/ExitManagerImpl.kt deleted file mode 100644 index b9147941cd..0000000000 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/exit/ExitManagerImpl.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.bitwarden.authenticator.ui.platform.manager.exit - -import android.app.Activity - -/** - * The default implementation of the [ExitManager] for managing the various ways to exit the app. - */ -class ExitManagerImpl( - val activity: Activity, -) : ExitManager { - override fun exitApplication() { - activity.finish() - } -} diff --git a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt index b7436e81df..6d4b70eadf 100644 --- a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt +++ b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/base/AuthenticatorComposeTest.kt @@ -3,12 +3,12 @@ package com.bitwarden.authenticator.ui.platform.base import androidx.compose.runtime.Composable import com.bitwarden.authenticator.ui.platform.composition.LocalManagerProvider import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManager -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.manager.exit.ExitManager import com.bitwarden.ui.platform.theme.BitwardenTheme import io.mockk.mockk diff --git a/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalProviders.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalProviders.kt index 6e3fc55d71..3ff9d41dd9 100644 --- a/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalProviders.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalProviders.kt @@ -4,6 +4,14 @@ 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 +import com.bitwarden.ui.platform.manager.exit.ExitManager + +/** + * Provides access to the exit manager throughout the app. + */ +val LocalExitManager: ProvidableCompositionLocal = compositionLocalOf { + error("CompositionLocal ExitManager not present") +} /** * Provides access to the intent manager throughout the app. diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/exit/ExitManager.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManager.kt similarity index 81% rename from app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/exit/ExitManager.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManager.kt index 194aaba0b4..6629dbf25b 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/exit/ExitManager.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManager.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.platform.manager.exit +package com.bitwarden.ui.platform.manager.exit import androidx.compose.runtime.Immutable diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/exit/ExitManagerImpl.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManagerImpl.kt similarity index 71% rename from app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/exit/ExitManagerImpl.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManagerImpl.kt index a32a83f1aa..4668c4dd24 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/exit/ExitManagerImpl.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManagerImpl.kt @@ -1,12 +1,10 @@ -package com.x8bit.bitwarden.ui.platform.manager.exit +package com.bitwarden.ui.platform.manager.exit import android.app.Activity -import com.bitwarden.annotation.OmitFromCoverage /** * The default implementation of the [ExitManager] for managing the various ways to exit the app. */ -@OmitFromCoverage class ExitManagerImpl( private val activity: Activity, ) : ExitManager { diff --git a/ui/src/test/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManagerTest.kt b/ui/src/test/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManagerTest.kt new file mode 100644 index 0000000000..354873a171 --- /dev/null +++ b/ui/src/test/kotlin/com/bitwarden/ui/platform/manager/exit/ExitManagerTest.kt @@ -0,0 +1,28 @@ +package com.bitwarden.ui.platform.manager.exit + +import android.app.Activity +import io.mockk.every +import io.mockk.just +import io.mockk.mockk +import io.mockk.runs +import io.mockk.verify +import org.junit.jupiter.api.Test + +class ExitManagerTest { + private val activity: Activity = mockk { + every { finishAndRemoveTask() } just runs + } + + private val exitManager: ExitManager = ExitManagerImpl( + activity = activity, + ) + + @Test + fun `exitApplication should finish the activity`() { + exitManager.exitApplication() + + verify(exactly = 1) { + activity.finishAndRemoveTask() + } + } +}