diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenSegmentedButton.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenSegmentedButton.kt index ea72f9553..a05963b69 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenSegmentedButton.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenSegmentedButton.kt @@ -7,6 +7,8 @@ import androidx.compose.material3.SegmentedButtonDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTag /** * Displays a Bitwarden styled row of segmented buttons. @@ -32,6 +34,9 @@ fun BitwardenSegmentedButton( count = options.size, ), label = { Text(text = option.text) }, + modifier = Modifier.run { + option.testTag?.let { semantics { testTag = it } } ?: this + }, ) } } @@ -44,4 +49,5 @@ data class SegmentedButtonState( val text: String, val onClick: () -> Unit, val isChecked: Boolean, + val testTag: String? = null, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt index 26beb9de4..3aeb1a557 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendContent.kt @@ -125,11 +125,13 @@ fun AddSendContent( text = stringResource(id = R.string.file), onClick = addSendHandlers.onFileTypeSelect, isChecked = state.isFileType, + testTag = "SendFileButton", ), SegmentedButtonState( text = stringResource(id = R.string.text), onClick = addSendHandlers.onTextTypeSelect, isChecked = state.isTextType, + testTag = "SendTextButton", ), ), ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt index 40afa48c7..8a753d2ea 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/AddSendScreen.kt @@ -19,8 +19,6 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.semantics.testTag import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.x8bit.bitwarden.R @@ -46,7 +44,6 @@ import com.x8bit.bitwarden.ui.platform.theme.LocalIntentManager import com.x8bit.bitwarden.ui.platform.theme.LocalPermissionsManager import com.x8bit.bitwarden.ui.platform.util.persistentListOfNotNull import com.x8bit.bitwarden.ui.tools.feature.send.addsend.handlers.AddSendHandlers -import com.x8bit.bitwarden.ui.tools.feature.send.addsend.util.testTag /** * Displays new send UX. @@ -147,8 +144,6 @@ fun AddSendScreen( onClick = remember(viewModel) { { viewModel.trySendAction(AddSendAction.SaveClick) } }, - modifier = Modifier - .semantics { testTag = state.viewState.testTag }, ) if (!state.isAddMode) { BitwardenOverflowActionItem( diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/util/AddSendStateExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/util/AddSendStateExtensions.kt index 799fe5c67..9cce5b6f8 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/util/AddSendStateExtensions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/addsend/util/AddSendStateExtensions.kt @@ -57,15 +57,3 @@ private fun AddSendState.ViewState.Content.toSendTextView(): SendTextView? = hidden = it.isHideByDefaultChecked, ) } - -/** - * Extension function to get the semantic test tag based on the AddSendState.ViewState. - */ -val AddSendState.ViewState.testTag: String - get() = when (this) { - is AddSendState.ViewState.Content -> { - if (isFileType) "SendFileButton" else "SendTextButton" - } - is AddSendState.ViewState.Error -> "" - AddSendState.ViewState.Loading -> "" - }