From 80a024f9dd2353c4dcbc687d985bc1fbc4a0c905 Mon Sep 17 00:00:00 2001 From: Oleg Semenenko <146032743+oleg-livefront@users.noreply.github.com> Date: Wed, 7 Feb 2024 14:49:42 -0600 Subject: [PATCH] BIT-1592 Update element ID location for search items (#970) --- .../ui/platform/feature/search/SearchContent.kt | 4 +++- .../ui/platform/feature/search/SearchEmptyContent.kt | 3 +++ .../bitwarden/ui/platform/feature/search/SearchScreen.kt | 1 + .../feature/search/util/SearchTypeDataExtensions.kt | 9 +++++++++ .../x8bit/bitwarden/ui/tools/feature/send/SendContent.kt | 1 - .../x8bit/bitwarden/ui/tools/feature/send/SendEmpty.kt | 3 --- 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchContent.kt index e2a4092a7..08827a141 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchContent.kt @@ -26,6 +26,7 @@ import com.x8bit.bitwarden.ui.platform.components.SelectionItemData import com.x8bit.bitwarden.ui.platform.components.model.toIconResources import com.x8bit.bitwarden.ui.platform.feature.search.handlers.SearchHandlers import com.x8bit.bitwarden.ui.platform.feature.search.model.AutofillSelectionOption +import com.x8bit.bitwarden.ui.platform.feature.search.util.searchItemTestTag import com.x8bit.bitwarden.ui.vault.feature.itemlisting.model.ListingItemOverflowAction import kotlinx.collections.immutable.toPersistentList @@ -37,6 +38,7 @@ import kotlinx.collections.immutable.toPersistentList fun SearchContent( viewState: SearchState.ViewState.Content, searchHandlers: SearchHandlers, + searchType: SearchTypeData, modifier: Modifier = Modifier, ) { var showConfirmationDialog: ListingItemOverflowAction? by rememberSaveable { @@ -153,7 +155,7 @@ fun SearchContent( } .toPersistentList(), modifier = Modifier - .semantics { testTag = "CipherCell" } + .semantics { testTag = searchType.searchItemTestTag } .fillMaxWidth() .padding( start = 16.dp, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt index 6a8f5b17e..430908ada 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchEmptyContent.kt @@ -15,6 +15,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R @@ -47,6 +49,7 @@ fun SearchEmptyContent( Text( textAlign = TextAlign.Center, modifier = Modifier + .semantics { testTag = "NoSearchResultsLabel" } .fillMaxWidth() .padding(horizontal = 16.dp), text = it(), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt index 47a2e021c..2b1a525e7 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt @@ -130,6 +130,7 @@ fun SearchScreen( is SearchState.ViewState.Content -> SearchContent( viewState = viewState, searchHandlers = searchHandlers, + searchType = state.searchType, modifier = innerModifier, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt index e8da7d98a..874864688 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt @@ -63,6 +63,15 @@ fun SearchTypeData.updateWithAdditionalDataIfNecessary( SearchTypeData.Vault.VerificationCodes -> this } +/** + * The semantic test tag to use for the search item. + */ +val SearchTypeData.searchItemTestTag: String + get() = when (this) { + is SearchTypeData.Sends -> "SendCell" + is SearchTypeData.Vault -> "CipherCell" + } + /** * Filters out any [CipherView]s that do not adhere to the [searchTypeData] and [searchTerm] and * sorts the remaining items. diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt index ed139325d..d1b649a9e 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendContent.kt @@ -108,7 +108,6 @@ fun SendContent( null }, modifier = Modifier - .semantics { testTag = "SendCell" } .padding( start = 16.dp, // There is some built-in padding to the menu button that makes up diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendEmpty.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendEmpty.kt index 03b6755cf..03d7e9a37 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendEmpty.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendEmpty.kt @@ -15,8 +15,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R @@ -52,7 +50,6 @@ fun SendEmpty( text = stringResource(id = R.string.no_sends), style = MaterialTheme.typography.bodyMedium, modifier = Modifier - .semantics { testTag = "NoSearchResultsLabel" } .fillMaxWidth() .padding(horizontal = 16.dp), )