From b34d8734712a85b200d1aa7570e599b52440e7fb Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:13:40 -0400 Subject: [PATCH] [PM-24411] Migrate IntentManager to `ui` module (#5634) --- .github/workflows/build-authenticator.yml | 9 ++ .../com/x8bit/bitwarden/MainViewModel.kt | 2 +- .../AuthRequestNotificationManagerImpl.kt | 2 +- .../data/autofill/util/AutofillIntentUtils.kt | 1 + .../autofill/util/FilledDataExtensions.kt | 1 + .../data/autofill/util/IntExtensions.kt | 15 --- ...edentialManagerPendingIntentManagerImpl.kt | 2 +- .../manager/model/SpecialCircumstance.kt | 2 +- .../accountsetup/SetupAutofillScreen.kt | 4 +- .../feature/checkemail/CheckEmailScreen.kt | 4 +- .../EnterpriseSignOnScreen.kt | 4 +- .../feature/environment/EnvironmentScreen.kt | 4 +- .../StartRegistrationScreen.kt | 4 +- .../twofactorlogin/TwoFactorLoginScreen.kt | 4 +- .../components/dialog/BitwardenBasicDialog.kt | 4 +- .../composition/LocalManagerProvider.kt | 13 +- .../feature/rootnav/RootNavViewModel.kt | 2 +- .../platform/feature/search/SearchScreen.kt | 4 +- .../feature/settings/about/AboutScreen.kt | 4 +- .../accountsecurity/AccountSecurityScreen.kt | 4 +- .../settings/appearance/AppearanceScreen.kt | 4 +- .../settings/autofill/AutoFillScreen.kt | 4 +- .../settings/exportvault/ExportVaultScreen.kt | 4 +- .../flightrecorder/FlightRecorderScreen.kt | 4 +- .../recordedLogs/RecordedLogsScreen.kt | 4 +- .../manager/di/PlatformUiManagerModule.kt | 5 +- .../ui/platform/manager/nfc/NfcManagerImpl.kt | 2 +- .../manager/utils/IntentManagerUtils.kt | 2 +- .../feature/generator/GeneratorScreen.kt | 4 +- .../ui/tools/feature/send/SendScreen.kt | 4 +- .../feature/send/addedit/AddEditSendScreen.kt | 4 +- .../util/SpecialCircumstanceExtensions.kt | 2 +- .../feature/send/viewsend/ViewSendScreen.kt | 4 +- .../feature/addedit/VaultAddEditScreen.kt | 4 +- .../feature/addedit/VaultAddEditUriItem.kt | 3 - .../feature/attachments/AttachmentsScreen.kt | 4 +- .../importlogins/ImportLoginsScreen.kt | 4 +- .../ui/vault/feature/item/VaultItemScreen.kt | 4 +- .../itemlisting/VaultItemListingScreen.kt | 4 +- .../manualcodeentry/ManualCodeEntryScreen.kt | 4 +- .../ui/vault/feature/vault/VaultScreen.kt | 4 +- .../com/x8bit/bitwarden/MainViewModelTest.kt | 2 +- .../accountsetup/SetupAutofillScreenTest.kt | 2 +- .../checkemail/CheckEmailScreenTest.kt | 2 +- .../EnterpriseSignOnScreenTest.kt | 2 +- .../environment/EnvironmentScreenTest.kt | 2 +- .../ui/auth/feature/login/LoginScreenTest.kt | 2 +- .../LoginWithDeviceScreenTest.kt | 2 +- .../StartRegistrationScreenTest.kt | 2 +- .../TwoFactorLoginScreenTest.kt | 2 +- .../ui/platform/base/BitwardenComposeTest.kt | 2 +- .../feature/rootnav/RootNavViewModelTest.kt | 2 +- .../feature/search/SearchScreenTest.kt | 2 +- .../feature/settings/about/AboutScreenTest.kt | 2 +- .../AccountSecurityScreenTest.kt | 2 +- .../appearance/AppearanceScreenTest.kt | 2 +- .../settings/autofill/AutoFillScreenTest.kt | 2 +- .../exportvault/ExportVaultScreenTest.kt | 2 +- .../FlightRecorderScreenTest.kt | 2 +- .../recordedlogs/RecordedLogsScreenTest.kt | 2 +- .../feature/generator/GeneratorScreenTest.kt | 2 +- .../ui/tools/feature/send/SendScreenTest.kt | 2 +- .../send/addedit/AddEditSendScreenTest.kt | 2 +- .../util/SpecialCircumstanceExtensionsTest.kt | 2 +- .../send/viewsend/ViewSendScreenTest.kt | 2 +- .../feature/addedit/VaultAddEditScreenTest.kt | 2 +- .../attachments/AttachmentsScreenTest.kt | 2 +- .../importlogins/ImportLoginsScreenTest.kt | 2 +- .../vault/feature/item/VaultItemScreenTest.kt | 2 +- .../itemlisting/VaultItemListingScreenTest.kt | 2 +- .../ManualCodeEntryScreenTests.kt | 2 +- .../ui/vault/feature/vault/VaultScreenTest.kt | 2 +- .../feature/itemlisting/ItemListingScreen.kt | 4 +- .../manualcodeentry/ManualCodeEntryScreen.kt | 4 +- .../composition/LocalManagerProvider.kt | 18 ++- .../feature/settings/SettingsScreen.kt | 4 +- .../feature/settings/export/ExportScreen.kt | 4 +- .../settings/importing/ImportingScreen.kt | 9 +- .../platform/manager/intent/IntentManager.kt | 54 -------- .../manager/intent/IntentManagerImpl.kt | 118 ------------------ .../ui/platform/util/IntentManagerUtils.kt | 2 +- .../itemlisting/ItemListingScreenTest.kt | 2 +- .../ManualCodeEntryScreenTest.kt | 4 +- .../platform/base/AuthenticatorComposeTest.kt | 2 +- .../feature/settings/SettingsScreenTest.kt | 4 +- .../com/bitwarden/core/util/IntExtensions.kt | 16 +++ ui/build.gradle.kts | 3 + .../composition/LocalIntentManagerProvider.kt | 12 ++ .../ui/platform/manager}/IntentManager.kt | 2 +- .../ui/platform/manager}/IntentManagerImpl.kt | 4 +- 90 files changed, 170 insertions(+), 325 deletions(-) delete mode 100644 authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManager.kt delete mode 100644 authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManagerImpl.kt create mode 100644 core/src/main/kotlin/com/bitwarden/core/util/IntExtensions.kt create mode 100644 ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalIntentManagerProvider.kt rename {app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent => ui/src/main/kotlin/com/bitwarden/ui/platform/manager}/IntentManager.kt (98%) rename {app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent => ui/src/main/kotlin/com/bitwarden/ui/platform/manager}/IntentManagerImpl.kt (99%) diff --git a/.github/workflows/build-authenticator.yml b/.github/workflows/build-authenticator.yml index e62eca3c00..5b6e1c10ba 100644 --- a/.github/workflows/build-authenticator.yml +++ b/.github/workflows/build-authenticator.yml @@ -216,6 +216,15 @@ jobs: distribution: "temurin" java-version: ${{ env.JAVA_VERSION }} + - name: Update app CI Build info + run: | + ./scripts/update_app_ci_build_info.sh \ + $GITHUB_REPOSITORY \ + $GITHUB_REF_NAME \ + $GITHUB_SHA \ + $GITHUB_RUN_ID \ + $GITHUB_RUN_ATTEMPT + - name: Increment version run: | DEFAULT_VERSION_CODE=$GITHUB_RUN_NUMBER diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/MainViewModel.kt b/app/src/main/kotlin/com/x8bit/bitwarden/MainViewModel.kt index 04935c3953..6a59074f2c 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/MainViewModel.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/MainViewModel.kt @@ -7,6 +7,7 @@ import androidx.lifecycle.viewModelScope import com.bitwarden.core.data.manager.toast.ToastManager import com.bitwarden.ui.platform.base.BaseViewModel import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.vault.CipherView import com.x8bit.bitwarden.data.auth.manager.AddTotpItemFromAuthenticatorManager @@ -35,7 +36,6 @@ import com.x8bit.bitwarden.data.platform.util.isAddTotpLoginItemFromAuthenticato import com.x8bit.bitwarden.data.vault.manager.model.VaultStateEvent import com.x8bit.bitwarden.data.vault.repository.VaultRepository import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppLanguage -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.model.FeatureFlagsState import com.x8bit.bitwarden.ui.platform.util.isAccountSecurityShortcut import com.x8bit.bitwarden.ui.platform.util.isMyVaultShortcut diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/auth/manager/AuthRequestNotificationManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/auth/manager/AuthRequestNotificationManagerImpl.kt index 6831137017..e3bd588e43 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/auth/manager/AuthRequestNotificationManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/auth/manager/AuthRequestNotificationManagerImpl.kt @@ -8,12 +8,12 @@ import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import com.bitwarden.annotation.OmitFromCoverage +import com.bitwarden.core.util.toPendingIntentMutabilityFlag import com.bitwarden.data.manager.DispatcherManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource import com.x8bit.bitwarden.data.auth.util.createPasswordlessRequestDataIntent -import com.x8bit.bitwarden.data.autofill.util.toPendingIntentMutabilityFlag import com.x8bit.bitwarden.data.platform.manager.PushManager import com.x8bit.bitwarden.data.platform.manager.model.PasswordlessRequestData import kotlinx.coroutines.CoroutineScope diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillIntentUtils.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillIntentUtils.kt index e0a7ac3413..d06c4e8257 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillIntentUtils.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillIntentUtils.kt @@ -12,6 +12,7 @@ import android.service.autofill.Dataset import android.view.autofill.AutofillManager import androidx.core.os.bundleOf import com.bitwarden.annotation.OmitFromCoverage +import com.bitwarden.core.util.toPendingIntentMutabilityFlag import com.bitwarden.ui.platform.util.getSafeParcelableExtra import com.x8bit.bitwarden.AutofillCallbackActivity import com.x8bit.bitwarden.MainActivity diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/FilledDataExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/FilledDataExtensions.kt index 23407df065..03f782e975 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/FilledDataExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/FilledDataExtensions.kt @@ -9,6 +9,7 @@ import android.view.autofill.AutofillValue import android.widget.RemoteViews import android.widget.inline.InlinePresentationSpec import androidx.annotation.RequiresApi +import com.bitwarden.core.util.toPendingIntentMutabilityFlag import com.x8bit.bitwarden.data.autofill.model.AutofillAppInfo import com.x8bit.bitwarden.data.autofill.model.AutofillPartition import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/IntExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/IntExtensions.kt index 336d9e9fd3..d5d2de926b 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/IntExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/IntExtensions.kt @@ -1,9 +1,6 @@ package com.x8bit.bitwarden.data.autofill.util -import android.app.PendingIntent -import android.os.Build import android.text.InputType -import com.bitwarden.annotation.OmitFromCoverage /** * Whether this [Int] is a password [InputType]. @@ -32,15 +29,3 @@ val Int.isUsernameInputType: Boolean * Whether this [Int] contains [flag]. */ private fun Int.hasFlag(flag: Int): Boolean = (this and flag) == flag - -/** - * Starting from an initial pending intent flag. (ex: [PendingIntent.FLAG_CANCEL_CURRENT]) - */ -@OmitFromCoverage -fun Int.toPendingIntentMutabilityFlag(): Int = - // Mutable flag was added on API level 31 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - this or PendingIntent.FLAG_MUTABLE - } else { - this - } diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManagerImpl.kt index b251bd6f1f..11690987f8 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManagerImpl.kt @@ -4,7 +4,7 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import com.bitwarden.annotation.OmitFromCoverage -import com.x8bit.bitwarden.data.autofill.util.toPendingIntentMutabilityFlag +import com.bitwarden.core.util.toPendingIntentMutabilityFlag import kotlin.random.Random /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/SpecialCircumstance.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/SpecialCircumstance.kt index f0c2eababb..6435a7c417 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/SpecialCircumstance.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/SpecialCircumstance.kt @@ -2,13 +2,13 @@ package com.x8bit.bitwarden.data.platform.manager.model import android.os.Parcelable import androidx.credentials.CredentialManager +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData import com.x8bit.bitwarden.data.credentials.model.CreateCredentialRequest import com.x8bit.bitwarden.data.credentials.model.Fido2CredentialAssertionRequest import com.x8bit.bitwarden.data.credentials.model.GetCredentialsRequest import com.x8bit.bitwarden.data.credentials.model.ProviderGetPasswordCredentialRequest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.model.TotpData import kotlinx.parcelize.Parcelize diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreen.kt index 826186623e..4513d8aaec 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreen.kt @@ -40,6 +40,8 @@ import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.model.WindowSize import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString @@ -48,8 +50,6 @@ import com.bitwarden.ui.platform.util.rememberWindowSize import com.x8bit.bitwarden.ui.auth.feature.accountsetup.handlers.rememberSetupAutoFillHandler import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt index 62a13d05d7..bba89a580b 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt @@ -38,12 +38,12 @@ import com.bitwarden.ui.platform.components.button.BitwardenFilledButton import com.bitwarden.ui.platform.components.button.BitwardenOutlinedButton import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager 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.auth.feature.checkemail.handlers.rememberCheckEmailHandler -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startDefaultEmailApplication /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt index 41f85f6d0f..6090a55401 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt @@ -32,6 +32,8 @@ import com.bitwarden.ui.platform.components.field.BitwardenTextField import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -39,8 +41,6 @@ import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager /** * The top level composable for the Enterprise Single Sign On screen. diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt index 7c29a641ef..0392b62bf5 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreen.kt @@ -38,15 +38,15 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.BuildConfig import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenClientCertificateDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalKeyChainManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.keychain.KeyChainManager import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.launch diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt index 149b8f36f0..68efb7ea29 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreen.kt @@ -51,6 +51,8 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -62,8 +64,6 @@ import com.x8bit.bitwarden.ui.auth.feature.startregistration.handlers.rememberSt import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dropdown.EnvironmentSelector -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager /** * Top level composable for the start registration screen. diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt index 4be38cc4dc..33ff887bfc 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreen.kt @@ -51,6 +51,8 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -59,9 +61,7 @@ import com.x8bit.bitwarden.ui.auth.feature.twofactorlogin.util.description import com.x8bit.bitwarden.ui.auth.feature.twofactorlogin.util.title import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalNfcManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.nfc.NfcManager import kotlinx.collections.immutable.toPersistentList diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenBasicDialog.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenBasicDialog.kt index 546874678e..131f08d590 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenBasicDialog.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenBasicDialog.kt @@ -11,10 +11,10 @@ import androidx.compose.ui.semantics.testTag import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.tooling.preview.Preview import com.bitwarden.ui.platform.components.button.BitwardenTextButton +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager /** * Represents a Bitwarden-styled dialog. 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 925c238ff7..b2579b14a8 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 @@ -13,6 +13,8 @@ import androidx.compose.runtime.compositionLocalOf import com.bitwarden.annotation.OmitFromCoverage import com.bitwarden.core.data.manager.BuildInfoManager import com.bitwarden.core.util.isBuildVersionAtLeast +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManagerImpl import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionManager @@ -23,8 +25,6 @@ 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.intent.IntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManagerImpl 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 @@ -49,7 +49,7 @@ fun LocalManagerProvider( clock: Clock = Clock.systemDefaultZone(), exitManager: ExitManager = ExitManagerImpl(activity = activity), buildInfoManager: BuildInfoManager = BitwardenBuildInfoManagerImpl(), - intentManager: IntentManager = IntentManagerImpl( + intentManager: IntentManager = IntentManager.create( context = activity, clock = clock, buildInfoManager = buildInfoManager, @@ -112,13 +112,6 @@ val LocalFeatureFlagsState: ProvidableCompositionLocal = comp error("CompositionLocal FeatureFlagsState not present") } -/** - * Provides access to the intent manager throughout the app. - */ -val LocalIntentManager: ProvidableCompositionLocal = compositionLocalOf { - error("CompositionLocal LocalIntentManager not present") -} - /** * Provides access to the permission manager throughout the app. */ diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt index f2b3c9c930..56392cd67a 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope import com.bitwarden.network.model.OrganizationType import com.bitwarden.network.util.parseJwtTokenDataOrNull import com.bitwarden.ui.platform.base.BaseViewModel +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus import com.x8bit.bitwarden.data.auth.repository.AuthRepository import com.x8bit.bitwarden.data.auth.repository.model.AuthState @@ -17,7 +18,6 @@ import com.x8bit.bitwarden.data.credentials.model.GetCredentialsRequest import com.x8bit.bitwarden.data.credentials.model.ProviderGetPasswordCredentialRequest import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.combine diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt index ab1abf057e..890e3e1f45 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt @@ -25,6 +25,8 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.data.platform.manager.model.AppResumeScreenData @@ -33,9 +35,7 @@ import com.x8bit.bitwarden.data.platform.manager.util.RegisterScreenDataOnLifecy import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.composition.LocalAppResumeStateManager -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.handlers.SearchHandlers -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt index a9b534f3cf..d281337b08 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt @@ -39,6 +39,8 @@ import com.bitwarden.ui.platform.components.model.TooltipData import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -47,8 +49,6 @@ import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.platform.components.row.BitwardenExternalLinkRow import com.x8bit.bitwarden.ui.platform.components.row.BitwardenPushRow import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager /** * Displays the about screen. diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt index 8e8a00798e..b9d82e849d 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt @@ -46,6 +46,8 @@ import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -64,10 +66,8 @@ import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenUnlockWithBiometricsSwitch import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenUnlockWithPinSwitch import com.x8bit.bitwarden.ui.platform.composition.LocalBiometricsManager -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricSupportStatus import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startApplicationDetailsSettingsActivity import com.x8bit.bitwarden.ui.platform.util.displayLabel import com.x8bit.bitwarden.ui.platform.util.minutes diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt index ece80332f4..a3e8ab6683 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreen.kt @@ -32,14 +32,14 @@ import com.bitwarden.ui.platform.components.model.TooltipData import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectButton -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppLanguage -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.util.displayLabel import kotlinx.collections.immutable.toImmutableList diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt index 6db2249399..75d20bc358 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt @@ -45,6 +45,8 @@ import com.bitwarden.ui.platform.components.model.TooltipData import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -55,12 +57,10 @@ import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectB import com.x8bit.bitwarden.ui.platform.components.dropdown.model.MultiSelectOption import com.x8bit.bitwarden.ui.platform.components.row.BitwardenExternalLinkRow import com.x8bit.bitwarden.ui.platform.components.row.BitwardenTextRow -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.browser.BrowserAutofillSettingsCard import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.handlers.AutoFillHandlers import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util.displayLabel import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util.isAdvancedMatching -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startBrowserAutofillSettingsActivity import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAccessibilitySettingsActivity import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt index c063feed4f..61d5e9863d 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt @@ -40,6 +40,8 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -48,9 +50,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectButton -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.util.displayLabel import kotlinx.collections.immutable.toImmutableList diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreen.kt index b9502887ca..b50c54e54a 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreen.kt @@ -32,14 +32,14 @@ import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.text.BitwardenHyperTextLink import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager 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.data.platform.repository.model.FlightRecorderDuration import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectButton -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.util.displayText -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import kotlinx.collections.immutable.toImmutableList /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedLogs/RecordedLogsScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedLogs/RecordedLogsScreen.kt index f3847d3206..eb8c975912 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedLogs/RecordedLogsScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedLogs/RecordedLogsScreen.kt @@ -47,13 +47,13 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager 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.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import kotlinx.collections.immutable.persistentListOf /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/di/PlatformUiManagerModule.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/di/PlatformUiManagerModule.kt index 27a1b45538..cac566fdd2 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/di/PlatformUiManagerModule.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/di/PlatformUiManagerModule.kt @@ -3,9 +3,8 @@ package com.x8bit.bitwarden.ui.platform.manager.di import android.content.Context import com.bitwarden.core.data.manager.BuildInfoManager import com.bitwarden.data.manager.DispatcherManager +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.ui.platform.manager.BitwardenBuildInfoManagerImpl -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManagerImpl import com.x8bit.bitwarden.ui.platform.manager.resource.ResourceManager import com.x8bit.bitwarden.ui.platform.manager.resource.ResourceManagerImpl import com.x8bit.bitwarden.ui.platform.manager.snackbar.SnackbarRelayManager @@ -36,7 +35,7 @@ object PlatformUiManagerModule { clock: Clock, buildInfoManager: BuildInfoManager, ): IntentManager = - IntentManagerImpl( + IntentManager.create( context = context, clock = clock, buildInfoManager = buildInfoManager, diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/nfc/NfcManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/nfc/NfcManagerImpl.kt index b5bc5986bb..57eed8d371 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/nfc/NfcManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/nfc/NfcManagerImpl.kt @@ -9,8 +9,8 @@ import android.nfc.NfcAdapter import android.os.Build import com.bitwarden.annotation.OmitFromCoverage import com.bitwarden.core.util.isBuildVersionAtLeast +import com.bitwarden.core.util.toPendingIntentMutabilityFlag import com.x8bit.bitwarden.AuthCallbackActivity -import com.x8bit.bitwarden.data.autofill.util.toPendingIntentMutabilityFlag import kotlin.random.Random /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/utils/IntentManagerUtils.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/utils/IntentManagerUtils.kt index eb41645ea2..228be6d303 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/utils/IntentManagerUtils.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/utils/IntentManagerUtils.kt @@ -6,8 +6,8 @@ import android.content.Intent import android.provider.Settings import androidx.core.net.toUri import com.bitwarden.annotation.OmitFromCoverage +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.data.autofill.model.browser.BrowserPackage -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager /** * Starts the system autofill settings activity. diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt index f8b7523e7b..9722ca81b1 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreen.kt @@ -68,6 +68,8 @@ import com.bitwarden.ui.platform.components.stepper.BitwardenStepper import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch import com.bitwarden.ui.platform.components.util.nonLetterColorVisualTransformation import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -82,8 +84,6 @@ import com.x8bit.bitwarden.ui.platform.components.coachmark.model.CoachMarkHighl import com.x8bit.bitwarden.ui.platform.components.coachmark.rememberLazyListCoachMarkState import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectButton import com.x8bit.bitwarden.ui.platform.composition.LocalAppResumeStateManager -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.generator.GeneratorState.MainType.Passphrase.Companion.PASSPHRASE_MAX_NUMBER_OF_WORDS import com.x8bit.bitwarden.ui.tools.feature.generator.GeneratorState.MainType.Passphrase.Companion.PASSPHRASE_MIN_NUMBER_OF_WORDS import com.x8bit.bitwarden.ui.tools.feature.generator.GeneratorState.MainType.Username.UsernameType.ForwardedEmailAlias.ServiceType diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt index 6981e61a55..776323aea6 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreen.kt @@ -30,6 +30,8 @@ import com.bitwarden.ui.platform.components.scaffold.model.rememberBitwardenPull import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.data.platform.manager.model.AppResumeScreenData @@ -40,9 +42,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenSelectionDialog import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenBasicDialogRow import com.x8bit.bitwarden.ui.platform.composition.LocalAppResumeStateManager -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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.handlers.SendHandlers 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 69f821652a..3ab4d0eb7a 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 @@ -28,15 +28,15 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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/tools/feature/send/addedit/util/SpecialCircumstanceExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/util/SpecialCircumstanceExtensions.kt index 3622f8d1c8..0907231709 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/util/SpecialCircumstanceExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/util/SpecialCircumstanceExtensions.kt @@ -1,7 +1,7 @@ package com.x8bit.bitwarden.ui.tools.feature.send.addedit.util +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendState /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreen.kt index 4fc65afe44..b6f51a510a 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreen.kt @@ -63,6 +63,8 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.stepper.BitwardenStepper import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -70,8 +72,6 @@ import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendRoute import com.x8bit.bitwarden.ui.tools.feature.send.addedit.ModeType 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 2967af06f8..857da564bc 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 @@ -57,6 +57,8 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.text.BitwardenClickableText import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme @@ -74,12 +76,10 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialo 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.LocalIntentManager 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.intent.IntentManager 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/addedit/VaultAddEditUriItem.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt index af8ce01a44..aed40b6a86 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditUriItem.kt @@ -24,9 +24,7 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialo import com.x8bit.bitwarden.ui.platform.components.dialog.row.BitwardenBasicDialogRow import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectDialogContent import com.x8bit.bitwarden.ui.platform.components.dropdown.model.MultiSelectOption -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util.displayLabel -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriItem import com.x8bit.bitwarden.ui.vault.feature.addedit.model.UriMatchDisplayType import com.x8bit.bitwarden.ui.vault.feature.addedit.util.displayLabel @@ -49,7 +47,6 @@ fun VaultAddEditUriItem( onLearnMoreClick: () -> Unit, modifier: Modifier = Modifier, resources: Resources = LocalContext.current.resources, - intentManager: IntentManager = LocalIntentManager.current, ) { var shouldShowOptionsDialog by rememberSaveable { mutableStateOf(false) } var shouldShowMatchDialog by rememberSaveable { mutableStateOf(false) } diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt index c6f7cbd53f..920783f61b 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreen.kt @@ -23,12 +23,12 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.feature.attachments.handlers.AttachmentsHandlers /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt index c3cbdbcbc7..bbac9a134c 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreen.kt @@ -51,14 +51,14 @@ import com.bitwarden.ui.platform.components.card.BitwardenContentCard import com.bitwarden.ui.platform.components.content.model.ContentBlockData import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager 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.components.bottomsheet.BitwardenModalBottomSheet import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.feature.importlogins.components.ImportLoginsInstructionStep import com.x8bit.bitwarden.ui.vault.feature.importlogins.handlers.ImportLoginHandler import com.x8bit.bitwarden.ui.vault.feature.importlogins.handlers.rememberImportLoginHandler diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt index 14b893fcc2..a08b448543 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt @@ -32,13 +32,13 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs import com.x8bit.bitwarden.ui.vault.feature.item.handlers.VaultCardItemTypeHandlers import com.x8bit.bitwarden.ui.vault.feature.item.handlers.VaultCommonItemTypeHandlers 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 e21385d98a..5fb34a9421 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 @@ -34,6 +34,8 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHostState import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.Text @@ -50,12 +52,10 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialo 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.LocalIntentManager 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.platform.manager.intent.IntentManager 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/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt index c0ddd49780..ae1642a81d 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt @@ -40,14 +40,14 @@ import com.bitwarden.ui.platform.components.model.CardStyle import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.ui.platform.components.text.BitwardenHyperTextLink import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager 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.components.dialog.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.composition.LocalPermissionsManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager /** diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt index d3d5f5abf1..2018b25270 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt @@ -48,6 +48,8 @@ import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHost import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarHostState import com.bitwarden.ui.platform.components.snackbar.rememberBitwardenSnackbarHostState import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.x8bit.bitwarden.ui.platform.components.account.BitwardenAccountActionItem @@ -57,10 +59,8 @@ import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenTwoButtonDialog import com.x8bit.bitwarden.ui.platform.composition.LocalAppReviewManager import com.x8bit.bitwarden.ui.platform.composition.LocalExitManager -import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.review.AppReviewManager import com.x8bit.bitwarden.ui.vault.components.VaultItemSelectionDialog import com.x8bit.bitwarden.ui.vault.components.model.CreateVaultItemType diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/MainViewModelTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/MainViewModelTest.kt index 0aa4a00dfb..dce91a3f0b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/MainViewModelTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/MainViewModelTest.kt @@ -14,6 +14,7 @@ import com.bitwarden.data.datasource.disk.base.FakeDispatcherManager import com.bitwarden.data.repository.model.Environment import com.bitwarden.ui.platform.base.BaseViewModelTest import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.vault.CipherView import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus @@ -60,7 +61,6 @@ import com.x8bit.bitwarden.data.platform.util.isAddTotpLoginItemFromAuthenticato import com.x8bit.bitwarden.data.vault.manager.model.VaultStateEvent import com.x8bit.bitwarden.data.vault.repository.VaultRepository import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppLanguage -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.util.isAccountSecurityShortcut import com.x8bit.bitwarden.ui.platform.util.isMyVaultShortcut import com.x8bit.bitwarden.ui.platform.util.isPasswordGeneratorShortcut diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt index bd76f01aa7..92e3c77eb1 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.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.IntentManager import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity import io.mockk.every import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt index 87ae3fd36b..f7fd8f0157 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt @@ -5,8 +5,8 @@ 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.IntentManager import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startDefaultEmailApplication import io.mockk.every import io.mockk.just diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt index 3597f4c1f3..7bb519321a 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreenTest.kt @@ -13,10 +13,10 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt index b80df76909..bbda115b3e 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/environment/EnvironmentScreenTest.kt @@ -14,11 +14,11 @@ import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.model.FileData import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.auth.feature.environment.EnvironmentState.DialogState import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.keychain.KeyChainManager import com.x8bit.bitwarden.ui.platform.manager.keychain.model.PrivateKeyAliasSelectionResult import io.mockk.coEvery diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt index ed22f5124d..f24c10e755 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/login/LoginScreenTest.kt @@ -14,10 +14,10 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertRemovalConfirmationDialogIsDisplayed diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt index 8ac8ce86b8..5dda393dc6 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreenTest.kt @@ -10,13 +10,13 @@ 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.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.ui.auth.feature.loginwithdevice.model.LoginWithDeviceType import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt index c0fbad2241..e67fc52b44 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/startregistration/StartRegistrationScreenTest.kt @@ -15,10 +15,10 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.data.repository.model.Environment import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.performCustomAccessibilityAction import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt index 6ff258185a..1da06d989c 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/twofactorlogin/TwoFactorLoginScreenTest.kt @@ -17,9 +17,9 @@ import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.network.model.TwoFactorAuthMethod import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.nfc.NfcManager import io.mockk.every import io.mockk.just 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 ce51b4f164..b79b86438e 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 @@ -3,13 +3,13 @@ package com.x8bit.bitwarden.ui.platform.base import androidx.compose.runtime.Composable import com.bitwarden.ui.platform.base.BaseComposeTest import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager 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.intent.IntentManager 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/rootnav/RootNavViewModelTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModelTest.kt index 282cfea843..012927d9df 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModelTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModelTest.kt @@ -7,6 +7,7 @@ import com.bitwarden.network.model.JwtTokenDataJson import com.bitwarden.network.model.OrganizationType import com.bitwarden.network.util.parseJwtTokenDataOrNull import com.bitwarden.ui.platform.base.BaseViewModelTest +import com.bitwarden.ui.platform.manager.IntentManager import com.x8bit.bitwarden.data.auth.datasource.disk.model.OnboardingStatus import com.x8bit.bitwarden.data.auth.repository.AuthRepository import com.x8bit.bitwarden.data.auth.repository.model.AuthState @@ -23,7 +24,6 @@ import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManagerImpl import com.x8bit.bitwarden.data.platform.manager.model.CompleteRegistrationData import com.x8bit.bitwarden.data.platform.manager.model.FirstTimeState import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType import io.mockk.every import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt index d77d9db39c..efe72796e8 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreenTest.kt @@ -20,6 +20,7 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.send.SendType import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertMasterPasswordDialogDisplayed import com.bitwarden.ui.util.assertNoDialogExists @@ -30,7 +31,6 @@ import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.feature.search.model.AutofillSelectionOption import com.x8bit.bitwarden.ui.platform.feature.search.util.createMockDisplayItemForCipher import com.x8bit.bitwarden.ui.platform.feature.search.util.createMockDisplayItemForSend -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt index 4be712b2ad..bf2d37bb5b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt @@ -14,9 +14,9 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt index c783720465..d92227c0fd 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt @@ -20,6 +20,7 @@ import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTextInput import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.data.platform.repository.model.VaultTimeout @@ -28,7 +29,6 @@ import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.components.toggle.UnlockWithPinState import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricSupportStatus import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startApplicationDetailsSettingsActivity import io.mockk.coEvery import io.mockk.every diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt index 4fed63d208..a9fee4e99b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/appearance/AppearanceScreenTest.kt @@ -14,10 +14,10 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.core.util.isBuildVersionAtLeast import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppLanguage -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt index de3648b298..c32dfa2e05 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreenTest.kt @@ -14,12 +14,12 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.data.autofill.model.browser.BrowserPackage import com.x8bit.bitwarden.data.platform.repository.model.UriMatchType import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.browser.model.BrowserAutofillSettingsOption -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.utils.startBrowserAutofillSettingsActivity import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAccessibilitySettingsActivity import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt index b01d82c334..04eaa7630f 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreenTest.kt @@ -16,12 +16,12 @@ import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.ui.auth.feature.completeregistration.PasswordStrengthState import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.mockk import io.mockk.verify diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt index a94ff8ca26..42fc97b921 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/FlightRecorderScreenTest.kt @@ -13,11 +13,11 @@ import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.printToLog import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.performCustomAccessibilityAction import com.x8bit.bitwarden.data.platform.repository.model.FlightRecorderDuration import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt index 023b83ab16..a7fff61981 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/flightrecorder/recordedlogs/RecordedLogsScreenTest.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists @@ -26,7 +27,6 @@ import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedL import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsScreen import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsState import com.x8bit.bitwarden.ui.platform.feature.settings.flightrecorder.recordedLogs.RecordedLogsViewModel -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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/generator/GeneratorScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt index 7d85e2a570..093ca19317 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/generator/GeneratorScreenTest.kt @@ -30,10 +30,10 @@ import androidx.compose.ui.test.swipeRight import androidx.compose.ui.text.AnnotatedString import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode import com.x8bit.bitwarden.ui.util.isCoachMarkToolTip import io.mockk.every diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt index d9c681d6fb..47d3f54387 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/SendScreenTest.kt @@ -24,12 +24,12 @@ import androidx.compose.ui.test.performScrollToNode import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.data.platform.manager.util.AppResumeStateManager import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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/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 bf08d8285b..59fc9f467a 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,13 +23,13 @@ import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performTextInput import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager 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.intent.IntentManager 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/tools/feature/send/addedit/util/SpecialCircumstanceExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/util/SpecialCircumstanceExtensionsTest.kt index e45c02fcc0..87a4fafc56 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/util/SpecialCircumstanceExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/addedit/util/SpecialCircumstanceExtensionsTest.kt @@ -1,9 +1,9 @@ package com.x8bit.bitwarden.ui.tools.feature.send.addedit.util import android.net.Uri +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.model.FileData import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.tools.feature.send.addedit.AddEditSendState import io.mockk.mockk import org.junit.jupiter.api.Assertions.assertEquals diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt index ea8e15dcff..5976904d7b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/tools/feature/send/viewsend/ViewSendScreenTest.kt @@ -12,11 +12,11 @@ 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.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.isProgressBar import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager 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/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 1ff737c758..2506b6d932 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 @@ -41,6 +41,7 @@ import androidx.compose.ui.test.performTouchInput import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.assertScrollableNodeDoesNotExist @@ -57,7 +58,6 @@ import com.x8bit.bitwarden.ui.credentials.manager.model.RegisterFido2CredentialR 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.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode import com.x8bit.bitwarden.ui.util.isBottomSheet diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt index 51e7402726..187a2386fa 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsScreenTest.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.isProgressBar @@ -19,7 +20,6 @@ import com.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt index 65ff1b186e..a2c773dcf9 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/importlogins/ImportLoginsScreenTest.kt @@ -15,12 +15,12 @@ import androidx.compose.ui.test.performScrollTo import androidx.compose.ui.test.performSemanticsAction import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.util.isBottomSheet import io.mockk.every import io.mockk.just diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt index 674ce535f0..83b4579224 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreenTest.kt @@ -28,6 +28,7 @@ import androidx.core.net.toUri import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.components.icon.model.IconData import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText @@ -39,7 +40,6 @@ import com.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll import com.bitwarden.ui.util.onNodeWithTextAfterScroll import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs import com.x8bit.bitwarden.ui.vault.feature.item.model.TotpCodeItemData import com.x8bit.bitwarden.ui.vault.feature.item.model.VaultItemLocation 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 b70ad44803..8eef9101bb 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 @@ -23,6 +23,7 @@ import com.bitwarden.send.SendType import com.bitwarden.ui.platform.base.util.toHostOrPathOrNull import com.bitwarden.ui.platform.components.icon.model.IconData import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText @@ -44,7 +45,6 @@ import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary 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.platform.manager.intent.IntentManager 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/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt index 684e8a803a..f65916ba76 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreenTests.kt @@ -16,12 +16,12 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performTextInput import androidx.test.core.app.ApplicationProvider import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.performCustomAccessibilityAction import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager import io.mockk.every import io.mockk.mockk diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt index 55945d46ef..823f57ee3c 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt @@ -26,6 +26,7 @@ import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.data.repository.model.Environment import com.bitwarden.data.repository.util.baseIconUrl import com.bitwarden.ui.platform.components.snackbar.BitwardenSnackbarData +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists @@ -36,7 +37,6 @@ import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest import com.x8bit.bitwarden.ui.platform.components.model.AccountSummary import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager -import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager import com.x8bit.bitwarden.ui.platform.manager.review.AppReviewManager import com.x8bit.bitwarden.ui.util.assertLockOrLogoutDialogIsDisplayed import com.x8bit.bitwarden.ui.util.assertLogoutConfirmationDialogIsDisplayed diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt index f6c61df228..97e40aa46d 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreen.kt @@ -75,16 +75,16 @@ import com.bitwarden.authenticator.ui.platform.components.header.AuthenticatorEx import com.bitwarden.authenticator.ui.platform.components.header.BitwardenListHeaderTextWithSupportLabel import com.bitwarden.authenticator.ui.platform.components.model.IconResource import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaffold -import com.bitwarden.authenticator.ui.platform.composition.LocalIntentManager import com.bitwarden.authenticator.ui.platform.composition.LocalPermissionsManager -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManager import com.bitwarden.authenticator.ui.platform.theme.Typography import com.bitwarden.authenticator.ui.platform.util.startAuthenticatorAppSettings import com.bitwarden.authenticator.ui.platform.util.startBitwardenAccountSettings import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreen.kt index 58209c93ad..6b550e5222 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreen.kt @@ -46,14 +46,14 @@ import com.bitwarden.authenticator.ui.platform.components.dialog.LoadingDialogSt import com.bitwarden.authenticator.ui.platform.components.field.BitwardenPasswordField import com.bitwarden.authenticator.ui.platform.components.field.BitwardenTextField import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaffold -import com.bitwarden.authenticator.ui.platform.composition.LocalIntentManager import com.bitwarden.authenticator.ui.platform.composition.LocalPermissionsManager -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManager import com.bitwarden.ui.platform.base.util.EventsEffect import com.bitwarden.ui.platform.base.util.annotatedStringResource import com.bitwarden.ui.platform.base.util.spanStyleOf import com.bitwarden.ui.platform.base.util.standardHorizontalMargin +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString 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 22674eac08..835b86acbf 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 @@ -10,14 +10,17 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ProvidableCompositionLocal import androidx.compose.runtime.compositionLocalOf 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.intent.IntentManager -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManagerImpl 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.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager +import java.time.Clock /** * Helper [Composable] that wraps a [content] and provides manager classes via [CompositionLocal]. @@ -26,7 +29,9 @@ import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsMa fun LocalManagerProvider( activity: Activity = requireNotNull(LocalActivity.current), permissionsManager: PermissionsManager = PermissionsManagerImpl(activity), - intentManager: IntentManager = IntentManagerImpl(activity), + clock: Clock = Clock.systemDefaultZone(), + buildInfoManager: BuildInfoManager = AuthenticatorBuildInfoManagerImpl(), + intentManager: IntentManager = IntentManager.create(activity, clock, buildInfoManager), exitManager: ExitManager = ExitManagerImpl(activity), biometricsManager: BiometricsManager = BiometricsManagerImpl(activity), content: @Composable () -> Unit, @@ -40,13 +45,6 @@ fun LocalManagerProvider( ) } -/** - * Provides access to the intent manager throughout the app. - */ -val LocalIntentManager: ProvidableCompositionLocal = compositionLocalOf { - error("CompositionLocal LocalIntentManager not present") -} - /** * Provides access to the biometrics manager throughout the app. */ diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt index 5c40de907b..10b16527c4 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreen.kt @@ -56,10 +56,8 @@ import com.bitwarden.authenticator.ui.platform.components.row.BitwardenTextRow import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaffold import com.bitwarden.authenticator.ui.platform.components.toggle.BitwardenWideSwitch import com.bitwarden.authenticator.ui.platform.composition.LocalBiometricsManager -import com.bitwarden.authenticator.ui.platform.composition.LocalIntentManager import com.bitwarden.authenticator.ui.platform.feature.settings.data.model.DefaultSaveOption import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManager -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.authenticator.ui.platform.util.displayLabel import com.bitwarden.ui.platform.base.util.EventsEffect @@ -67,7 +65,9 @@ import com.bitwarden.ui.platform.base.util.annotatedStringResource import com.bitwarden.ui.platform.base.util.mirrorIfRtl import com.bitwarden.ui.platform.base.util.spanStyleOf import com.bitwarden.ui.platform.components.util.rememberVectorPainter +import com.bitwarden.ui.platform.composition.LocalIntentManager import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.Text diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/export/ExportScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/export/ExportScreen.kt index a156b5ac9d..50702aa565 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/export/ExportScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/export/ExportScreen.kt @@ -37,11 +37,11 @@ import com.bitwarden.authenticator.ui.platform.components.dialog.BitwardenTwoBut import com.bitwarden.authenticator.ui.platform.components.dialog.LoadingDialogState import com.bitwarden.authenticator.ui.platform.components.dropdown.BitwardenMultiSelectButton import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaffold -import com.bitwarden.authenticator.ui.platform.composition.LocalIntentManager import com.bitwarden.authenticator.ui.platform.feature.settings.export.model.ExportVaultFormat -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.util.displayLabel import com.bitwarden.ui.platform.base.util.EventsEffect +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import kotlinx.collections.immutable.toImmutableList diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/importing/ImportingScreen.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/importing/ImportingScreen.kt index 2a9033457e..a050f2064d 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/importing/ImportingScreen.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/importing/ImportingScreen.kt @@ -34,10 +34,10 @@ import com.bitwarden.authenticator.ui.platform.components.dialog.BitwardenTwoBut import com.bitwarden.authenticator.ui.platform.components.dialog.LoadingDialogState import com.bitwarden.authenticator.ui.platform.components.dropdown.BitwardenMultiSelectButton import com.bitwarden.authenticator.ui.platform.components.scaffold.BitwardenScaffold -import com.bitwarden.authenticator.ui.platform.composition.LocalIntentManager -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.util.displayLabel import com.bitwarden.ui.platform.base.util.EventsEffect +import com.bitwarden.ui.platform.composition.LocalIntentManager +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.model.FileData import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString @@ -72,7 +72,10 @@ fun ImportingScreen( ImportEvent.NavigateBack -> onNavigateBack() is ImportEvent.NavigateToSelectImportFile -> { launcher.launch( - intentManager.createFileChooserIntent(event.importFileFormat.mimeType), + intentManager.createFileChooserIntent( + withCameraIntents = false, + mimeType = event.importFileFormat.mimeType, + ), ) } diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManager.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManager.kt deleted file mode 100644 index b1b8551728..0000000000 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManager.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.bitwarden.authenticator.ui.platform.manager.intent - -import android.content.Intent -import android.net.Uri -import androidx.activity.compose.ManagedActivityResultLauncher -import androidx.activity.result.ActivityResult -import androidx.compose.runtime.Composable -import androidx.compose.runtime.Immutable -import com.bitwarden.ui.platform.model.FileData - -/** - * A manager class for simplifying the handling of Android Intents within a given context. - */ -@Immutable -interface IntentManager { - /** - * The package name for the current app, this can be used to generate an [Intent]. - */ - val packageName: String - - /** - * Start an activity using the provided [Intent]. - */ - fun startActivity(intent: Intent) - - /** - * Start an activity to view the given [uri] in an external browser. - */ - fun launchUri(uri: Uri) - - /** - * Start an activity using the provided [Intent] and provides a callback, via [onResult], for - * retrieving the [ActivityResult]. - */ - @Composable - fun getActivityResultLauncher( - onResult: (ActivityResult) -> Unit, - ): ManagedActivityResultLauncher - - /** - * Processes the [activityResult] and attempts to get the relevant file data from it. - */ - fun getFileDataFromActivityResult(activityResult: ActivityResult): FileData? - - /** - * Creates an intent for choosing a file saved to disk. - */ - fun createFileChooserIntent(mimeType: String): Intent - - /** - * Creates an intent to use when selecting to save an item with [fileName] to disk. - */ - fun createDocumentIntent(fileName: String): Intent -} diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManagerImpl.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManagerImpl.kt deleted file mode 100644 index 676bf7f5cf..0000000000 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/manager/intent/IntentManagerImpl.kt +++ /dev/null @@ -1,118 +0,0 @@ -package com.bitwarden.authenticator.ui.platform.manager.intent - -import android.app.Activity -import android.content.ActivityNotFoundException -import android.content.Context -import android.content.Intent -import android.net.Uri -import android.provider.MediaStore -import android.webkit.MimeTypeMap -import androidx.activity.compose.ManagedActivityResultLauncher -import androidx.activity.compose.rememberLauncherForActivityResult -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.compose.runtime.Composable -import androidx.core.content.ContextCompat -import com.bitwarden.annotation.OmitFromCoverage -import com.bitwarden.ui.platform.model.FileData -import com.bitwarden.ui.platform.resource.BitwardenString - -/** - * The default implementation of the [IntentManager] for simplifying the handling of Android - * Intents within a given context. - */ -@OmitFromCoverage -class IntentManagerImpl( - private val context: Context, -) : IntentManager { - override val packageName: String get() = context.packageName - - override fun startActivity(intent: Intent) { - try { - context.startActivity(intent) - } catch (_: ActivityNotFoundException) { - // no-op - } - } - - @Composable - override fun getActivityResultLauncher( - onResult: (ActivityResult) -> Unit, - ): ManagedActivityResultLauncher = - rememberLauncherForActivityResult( - contract = ActivityResultContracts.StartActivityForResult(), - onResult = onResult, - ) - - override fun getFileDataFromActivityResult( - activityResult: ActivityResult, - ): FileData? { - if (activityResult.resultCode != Activity.RESULT_OK) return null - val uri = activityResult.data?.data ?: return null - return getLocalFileData(uri) - } - - override fun createFileChooserIntent(mimeType: String): Intent { - val chooserIntent = Intent.createChooser( - Intent(Intent.ACTION_OPEN_DOCUMENT) - .addCategory(Intent.CATEGORY_OPENABLE) - .setType(mimeType), - ContextCompat.getString(context, BitwardenString.file_source), - ) - - return chooserIntent - } - - override fun createDocumentIntent(fileName: String): Intent = - Intent(Intent.ACTION_CREATE_DOCUMENT).apply { - // Attempt to get the MIME type from the file extension - val extension = MimeTypeMap.getFileExtensionFromUrl(fileName) - type = extension - ?.let { MimeTypeMap.getSingleton().getMimeTypeFromExtension(it) } - ?: "*/*" - - addCategory(Intent.CATEGORY_OPENABLE) - putExtra(Intent.EXTRA_TITLE, fileName) - } - - override fun launchUri(uri: Uri) { - val newUri = if (uri.scheme == null) { - uri.buildUpon().scheme("https").build() - } else { - uri.normalizeScheme() - } - startActivity(Intent(Intent.ACTION_VIEW, newUri)) - } - - private fun getLocalFileData(uri: Uri): FileData? = - context - .contentResolver - .query( - uri, - arrayOf( - MediaStore.MediaColumns.DISPLAY_NAME, - MediaStore.MediaColumns.SIZE, - ), - null, - null, - null, - ) - ?.use { cursor -> - if (!cursor.moveToFirst()) return@use null - val fileName = cursor - .getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME) - .takeIf { it >= 0 } - ?.let { cursor.getString(it) } - ?: return@use null - val fileSize = cursor - .getColumnIndex(MediaStore.MediaColumns.SIZE) - .takeIf { it >= 0 } - ?.let { cursor.getLong(it) } - ?: return@use null - FileData( - fileName = fileName, - uri = uri, - sizeBytes = fileSize, - ) - } -} diff --git a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/util/IntentManagerUtils.kt b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/util/IntentManagerUtils.kt index beecc99774..01a1c68dd8 100644 --- a/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/util/IntentManagerUtils.kt +++ b/authenticator/src/main/kotlin/com/bitwarden/authenticator/ui/platform/util/IntentManagerUtils.kt @@ -6,7 +6,7 @@ import android.content.Intent import android.provider.Settings import androidx.core.net.toUri import com.bitwarden.annotation.OmitFromCoverage -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager +import com.bitwarden.ui.platform.manager.IntentManager /** * Launches the authenticator app settings. diff --git a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt index a1188f5efe..cd320014a9 100644 --- a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt +++ b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingScreenTest.kt @@ -13,11 +13,11 @@ import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.Va import com.bitwarden.authenticator.ui.authenticator.feature.model.SharedCodesDisplayState import com.bitwarden.authenticator.ui.authenticator.feature.model.VerificationCodeDisplayItem import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.manager.permissions.FakePermissionManager import com.bitwarden.authenticator.ui.platform.util.startBitwardenAccountSettings import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.onNodeWithContentDescriptionAfterScroll import com.bitwarden.ui.util.onNodeWithTextAfterScroll diff --git a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt index b8997ec485..fecd35aa87 100644 --- a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt +++ b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/manualcodeentry/ManualCodeEntryScreenTest.kt @@ -9,9 +9,9 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.authenticator.ui.platform.manager.permissions.FakePermissionManager import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.assertNoDialogExists import com.bitwarden.ui.util.performCustomAccessibilityAction @@ -41,7 +41,7 @@ class ManualCodeEntryScreenTest : AuthenticatorComposeTest() { } private val intentManager: IntentManager = mockk { - every { startActivity(intent = any()) } just runs + every { startActivity(intent = any()) } returns true } private val permissionsManager = FakePermissionManager() 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 667e365bd6..dafc472846 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 @@ -4,11 +4,11 @@ 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.intent.IntentManager import com.bitwarden.authenticator.ui.platform.manager.permissions.PermissionsManager import com.bitwarden.authenticator.ui.platform.theme.AuthenticatorTheme import com.bitwarden.ui.platform.base.BaseComposeTest import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import io.mockk.mockk /** diff --git a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt index 2593883c11..76216aec55 100644 --- a/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt +++ b/authenticator/src/test/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsScreenTest.kt @@ -15,9 +15,9 @@ import com.bitwarden.authenticator.ui.platform.base.AuthenticatorComposeTest import com.bitwarden.authenticator.ui.platform.feature.settings.appearance.model.AppLanguage import com.bitwarden.authenticator.ui.platform.feature.settings.data.model.DefaultSaveOption import com.bitwarden.authenticator.ui.platform.manager.biometrics.BiometricsManager -import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow import com.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme +import com.bitwarden.ui.platform.manager.IntentManager import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText import com.bitwarden.ui.util.concat @@ -88,7 +88,7 @@ class SettingsScreenTest : AuthenticatorComposeTest() { @Test fun `on NavigateToBitwardenApp receive should launch bitwarden account security deep link`() { - every { intentManager.startActivity(any()) } just runs + every { intentManager.startActivity(any()) } returns true val intentSlot = slot() val expectedIntent = Intent( Intent.ACTION_VIEW, diff --git a/core/src/main/kotlin/com/bitwarden/core/util/IntExtensions.kt b/core/src/main/kotlin/com/bitwarden/core/util/IntExtensions.kt new file mode 100644 index 0000000000..0770c8c289 --- /dev/null +++ b/core/src/main/kotlin/com/bitwarden/core/util/IntExtensions.kt @@ -0,0 +1,16 @@ +package com.bitwarden.core.util + +import android.app.PendingIntent +import android.os.Build +import com.bitwarden.annotation.OmitFromCoverage + +/** + * Starting from an initial pending intent flag. (ex: [PendingIntent.FLAG_CANCEL_CURRENT]) + */ +@OmitFromCoverage +fun Int.toPendingIntentMutabilityFlag(): Int = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + this or PendingIntent.FLAG_MUTABLE + } else { + this + } diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 18048e61e2..fa7a56be3b 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -55,6 +55,8 @@ dependencies { implementation(libs.androidx.appcompat) implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.browser) implementation(libs.androidx.compose.animation) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material3.adaptive) @@ -64,6 +66,7 @@ dependencies { implementation(libs.androidx.compose.ui.tooling) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.core.ktx) + implementation(libs.androidx.credentials) implementation(libs.androidx.navigation.compose) implementation(libs.bumptech.glide) implementation(libs.kotlinx.serialization) diff --git a/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalIntentManagerProvider.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalIntentManagerProvider.kt new file mode 100644 index 0000000000..3c760dbb91 --- /dev/null +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/composition/LocalIntentManagerProvider.kt @@ -0,0 +1,12 @@ +package com.bitwarden.ui.platform.composition + +import androidx.compose.runtime.ProvidableCompositionLocal +import androidx.compose.runtime.compositionLocalOf +import com.bitwarden.ui.platform.manager.IntentManager + +/** + * Provides access to the intent manager throughout the app. + */ +val LocalIntentManager: ProvidableCompositionLocal = compositionLocalOf { + error("CompositionLocal LocalIntentManager not present") +} diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent/IntentManager.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/IntentManager.kt similarity index 98% rename from app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent/IntentManager.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/manager/IntentManager.kt index b84bc9296a..108202cbcf 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent/IntentManager.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/IntentManager.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.platform.manager.intent +package com.bitwarden.ui.platform.manager import android.content.Context import android.content.Intent diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent/IntentManagerImpl.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/IntentManagerImpl.kt similarity index 99% rename from app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent/IntentManagerImpl.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/manager/IntentManagerImpl.kt index d1518377cc..928d538b0a 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/intent/IntentManagerImpl.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/manager/IntentManagerImpl.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.platform.manager.intent +package com.bitwarden.ui.platform.manager import android.app.Activity import android.content.ActivityNotFoundException @@ -48,7 +48,7 @@ private const val TEMP_CAMERA_IMAGE_DIR: String = "camera_temp" */ @Suppress("TooManyFunctions") @OmitFromCoverage -class IntentManagerImpl( +internal class IntentManagerImpl( private val context: Context, private val clock: Clock, private val buildInfoManager: BuildInfoManager,