From 4a18e57ccaa926f4265784e04b459db7419d1422 Mon Sep 17 00:00:00 2001 From: David Perez Date: Tue, 19 Aug 2025 15:58:03 -0500 Subject: [PATCH] PM-25003: Migrate bottom sheet to the UI module (#5751) --- .../pendingrequests/PendingRequestsScreen.kt | 2 +- .../ui/vault/feature/addedit/VaultAddEditScreen.kt | 2 +- .../ui/vault/feature/importlogins/ImportLoginsScreen.kt | 2 +- .../com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt | 9 --------- .../ui/vault/feature/addedit/VaultAddEditScreenTest.kt | 2 +- .../vault/feature/importlogins/ImportLoginsScreenTest.kt | 2 +- .../components/bottomsheet/BitwardenModalBottomSheet.kt | 2 +- .../kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt | 9 +++++++++ 8 files changed, 15 insertions(+), 15 deletions(-) rename {app/src/main/kotlin/com/x8bit => ui/src/main/kotlin/com}/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt (98%) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt index 15b50f12e7..d7b497a9e6 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt @@ -45,6 +45,7 @@ import com.bitwarden.ui.platform.base.util.cardStyle import com.bitwarden.ui.platform.base.util.standardHorizontalMargin import com.bitwarden.ui.platform.base.util.toListItemCardStyle import com.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar +import com.bitwarden.ui.platform.components.bottomsheet.BitwardenModalBottomSheet import com.bitwarden.ui.platform.components.button.BitwardenFilledButton import com.bitwarden.ui.platform.components.button.BitwardenOutlinedButton import com.bitwarden.ui.platform.components.content.BitwardenErrorContent @@ -59,7 +60,6 @@ import com.bitwarden.ui.platform.components.util.rememberVectorPainter 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.composition.LocalPermissionsManager import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager 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 6e86d8ce7b..25c6c7cfe7 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 @@ -46,6 +46,7 @@ import com.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.bitwarden.ui.platform.components.appbar.NavigationIcon import com.bitwarden.ui.platform.components.appbar.action.BitwardenOverflowActionItem import com.bitwarden.ui.platform.components.appbar.model.OverflowMenuItemData +import com.bitwarden.ui.platform.components.bottomsheet.BitwardenModalBottomSheet import com.bitwarden.ui.platform.components.button.BitwardenTextButton import com.bitwarden.ui.platform.components.content.BitwardenErrorContent import com.bitwarden.ui.platform.components.content.BitwardenLoadingContent @@ -67,7 +68,6 @@ import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.platform.theme.BitwardenTheme import com.bitwarden.ui.util.Text import com.x8bit.bitwarden.ui.credentials.manager.CredentialProviderCompletionManager -import com.x8bit.bitwarden.ui.platform.components.bottomsheet.BitwardenModalBottomSheet import com.x8bit.bitwarden.ui.platform.components.coachmark.CoachMarkContainer import com.x8bit.bitwarden.ui.platform.components.coachmark.rememberLazyListCoachMarkState import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenMasterPasswordDialog 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 f2702629c6..7aab9b9447 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 @@ -45,6 +45,7 @@ import com.bitwarden.ui.platform.base.util.standardHorizontalMargin import com.bitwarden.ui.platform.base.util.toAnnotatedString import com.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar import com.bitwarden.ui.platform.components.appbar.NavigationIcon +import com.bitwarden.ui.platform.components.bottomsheet.BitwardenModalBottomSheet import com.bitwarden.ui.platform.components.button.BitwardenFilledButton import com.bitwarden.ui.platform.components.button.BitwardenOutlinedButton import com.bitwarden.ui.platform.components.card.BitwardenContentCard @@ -58,7 +59,6 @@ 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.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/test/kotlin/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt index 27948c1022..3b2a8c6a9d 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/util/ComposeTextHelper.kt @@ -2,17 +2,8 @@ package com.x8bit.bitwarden.ui.util import androidx.compose.ui.semantics.getOrNull import androidx.compose.ui.test.SemanticsMatcher -import com.x8bit.bitwarden.ui.platform.components.bottomsheet.IsBottomSheetKey import com.x8bit.bitwarden.ui.platform.components.coachmark.IsCoachMarkToolTipKey -/** - * A [SemanticsMatcher] user to find nodes used specifically inside a bottom sheet. - */ -val isBottomSheet: SemanticsMatcher - get() = SemanticsMatcher("Node is used to to indicate it is a bottom sheet.") { - it.config.getOrNull(IsBottomSheetKey) == true - } - /** * A [SemanticsMatcher] user to find Popup nodes used specifically for CoachMarkToolTips */ 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 2506b6d932..851ee65bf4 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 @@ -45,6 +45,7 @@ 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 +import com.bitwarden.ui.util.isBottomSheet import com.bitwarden.ui.util.isProgressBar import com.bitwarden.ui.util.onAllNodesWithContentDescriptionAfterScroll import com.bitwarden.ui.util.onAllNodesWithTextAfterScroll @@ -60,7 +61,6 @@ import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager import com.x8bit.bitwarden.ui.platform.manager.exit.ExitManager import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode -import com.x8bit.bitwarden.ui.util.isBottomSheet import com.x8bit.bitwarden.ui.util.isCoachMarkToolTip import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldAction import com.x8bit.bitwarden.ui.vault.feature.addedit.model.CustomFieldType 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 a2c773dcf9..6d3990363b 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 @@ -19,9 +19,9 @@ 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.isBottomSheet import com.x8bit.bitwarden.data.util.advanceTimeByAndRunCurrent import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest -import com.x8bit.bitwarden.ui.util.isBottomSheet import io.mockk.every import io.mockk.just import io.mockk.mockk diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt similarity index 98% rename from app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt rename to ui/src/main/kotlin/com/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt index c48f584a72..5b2923443f 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/components/bottomsheet/BitwardenModalBottomSheet.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.ui.platform.components.bottomsheet +package com.bitwarden.ui.platform.components.bottomsheet import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.WindowInsets diff --git a/ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt b/ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt index 500fae9030..6201b0d365 100644 --- a/ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt +++ b/ui/src/testFixtures/kotlin/com/bitwarden/ui/util/ComposeTestHelpers.kt @@ -24,10 +24,19 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performScrollToNode import androidx.compose.ui.test.printToString import androidx.compose.ui.text.LinkAnnotation +import com.bitwarden.ui.platform.components.bottomsheet.IsBottomSheetKey import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.jupiter.api.assertThrows +/** + * A [SemanticsMatcher] user to find nodes used specifically inside a bottom sheet. + */ +val isBottomSheet: SemanticsMatcher + get() = SemanticsMatcher("Node is used to to indicate it is a bottom sheet.") { + it.config.getOrNull(IsBottomSheetKey) == true + } + /** * A [SemanticsMatcher] used to find editable text nodes. */