mirror of
https://github.com/bitwarden/android.git
synced 2026-08-26 22:04:07 -05:00
Update Compose BOM to 2025.04.01 (#5134)
This commit is contained in:
@@ -5,7 +5,7 @@ package com.x8bit.bitwarden.ui.platform.base.util
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
@@ -103,7 +103,7 @@ fun String?.orNullIfBlank(): String? = this?.takeUnless { it.isBlank() }
|
||||
*/
|
||||
@Composable
|
||||
fun String.lowercaseWithCurrentLocal(): String {
|
||||
return lowercase(LocalContext.current.resources.configuration.locales[0])
|
||||
return lowercase(LocalConfiguration.current.locales[0])
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
-2
@@ -13,7 +13,6 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.testTag
|
||||
@@ -41,7 +40,6 @@ import kotlinx.collections.immutable.persistentListOf
|
||||
* @param menuItemDataList The list of [OverflowMenuItemData] that will populate the overflow
|
||||
* dropdown menu.
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenOverflowActionItem(
|
||||
menuItemDataList: ImmutableList<OverflowMenuItemData>,
|
||||
|
||||
-2
@@ -3,7 +3,6 @@ package com.x8bit.bitwarden.ui.platform.components.dialog
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -31,7 +30,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* @param onDismissRequest A lambda that is invoked when the user has requested to dismiss the
|
||||
* dialog, whether by tapping "OK", tapping outside the dialog, or pressing the back button.
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Suppress("LongMethod")
|
||||
@Composable
|
||||
fun BitwardenBasicDialog(
|
||||
|
||||
-2
@@ -11,7 +11,6 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -36,7 +35,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* tapping outside of it).
|
||||
*/
|
||||
@Suppress("LongMethod")
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenClientCertificateDialog(
|
||||
onConfirmClick: (alias: String, password: String) -> Unit,
|
||||
|
||||
+1
-2
@@ -18,7 +18,6 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -60,7 +59,7 @@ import java.time.ZonedDateTime
|
||||
* @param modifier A [Modifier] that you can use to apply custom modifications to the composable.
|
||||
*/
|
||||
@Suppress("LongMethod")
|
||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class)
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun BitwardenDateSelectButton(
|
||||
label: String,
|
||||
|
||||
-2
@@ -3,7 +3,6 @@ package com.x8bit.bitwarden.ui.platform.components.dialog
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.semantics.testTag
|
||||
@@ -28,7 +27,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
*
|
||||
* @param text The text to display in the dialog.
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenLoadingDialog(
|
||||
text: String,
|
||||
|
||||
-2
@@ -11,7 +11,6 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -32,7 +31,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* @param onDismissRequest called when the user attempts to dismiss the dialog (for example by
|
||||
* tapping outside of it).
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenMasterPasswordDialog(
|
||||
onConfirmClick: (masterPassword: String) -> Unit,
|
||||
|
||||
-2
@@ -8,7 +8,6 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -28,7 +27,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* @param onDismissRequest called when the user attempts to dismiss the dialog (for example by
|
||||
* tapping outside of it).
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenPinDialog(
|
||||
onConfirmClick: (pin: String) -> Unit,
|
||||
|
||||
+13
-4
@@ -10,8 +10,12 @@ import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.testTag
|
||||
@@ -37,7 +41,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* [BitwardenSelectionRow].
|
||||
*/
|
||||
@Suppress("LongMethod")
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenSelectionDialog(
|
||||
title: String,
|
||||
@@ -49,6 +52,12 @@ fun BitwardenSelectionDialog(
|
||||
) {
|
||||
val configuration = LocalConfiguration.current
|
||||
val scrollState = rememberScrollState()
|
||||
var canScrollForward by remember { mutableStateOf(value = false) }
|
||||
var canScrollBackward by remember { mutableStateOf(value = false) }
|
||||
LaunchedEffect(scrollState.canScrollForward, scrollState.canScrollForward) {
|
||||
canScrollForward = scrollState.canScrollForward
|
||||
canScrollBackward = scrollState.canScrollBackward
|
||||
}
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.semantics {
|
||||
@@ -74,7 +83,7 @@ fun BitwardenSelectionDialog(
|
||||
color = BitwardenTheme.colorScheme.text.primary,
|
||||
style = BitwardenTheme.typography.headlineSmall,
|
||||
)
|
||||
if (scrollState.canScrollBackward) {
|
||||
if (canScrollBackward) {
|
||||
BitwardenHorizontalDivider()
|
||||
}
|
||||
Column(
|
||||
@@ -83,7 +92,7 @@ fun BitwardenSelectionDialog(
|
||||
.verticalScroll(scrollState),
|
||||
content = selectionItems,
|
||||
)
|
||||
if (scrollState.canScrollForward) {
|
||||
if (canScrollForward) {
|
||||
BitwardenHorizontalDivider()
|
||||
}
|
||||
BitwardenTextButton(
|
||||
|
||||
-2
@@ -9,7 +9,6 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
@@ -35,7 +34,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* @param autoFocus When set to true, the view will request focus after the first recomposition.
|
||||
* @param initialText The text that will be visible at the start of text entry.
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenTextEntryDialog(
|
||||
title: String?,
|
||||
|
||||
-2
@@ -22,7 +22,6 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -129,7 +128,6 @@ private fun bitwardenTimePickerColors(): TimePickerColors = TimePickerColors(
|
||||
timeSelectorUnselectedContentColor = BitwardenTheme.colorScheme.text.primary,
|
||||
)
|
||||
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
private fun TimePickerDialog(
|
||||
onDismissRequest: () -> Unit,
|
||||
|
||||
-3
@@ -3,7 +3,6 @@ package com.x8bit.bitwarden.ui.platform.components.dialog
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
||||
import androidx.compose.foundation.layout.FlowRow
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
@@ -16,7 +15,6 @@ import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
@@ -47,7 +45,6 @@ import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
* @param confirmTextColor The color of the confirm text.
|
||||
* @param dismissTextColor The color of the dismiss text.
|
||||
*/
|
||||
@OptIn(ExperimentalLayoutApi::class, ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
@Suppress("LongMethod")
|
||||
fun BitwardenTwoButtonDialog(
|
||||
|
||||
+1
-2
@@ -31,7 +31,6 @@ import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.layout.onGloballyPositioned
|
||||
@@ -60,7 +59,7 @@ import com.x8bit.bitwarden.ui.platform.util.rememberWindowSize
|
||||
* The [overlay] is a nonstandard [Composable] that is placed over top the `utilityBar` and
|
||||
* `content`.
|
||||
*/
|
||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class)
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Suppress("LongMethod")
|
||||
@Composable
|
||||
fun BitwardenScaffold(
|
||||
|
||||
-2
@@ -18,7 +18,6 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.testTag
|
||||
@@ -50,7 +49,6 @@ private const val MINIMUM_PIN_LENGTH: Int = 4
|
||||
* want to restrict PINs to numeric values but also support any existing PINs with non-numeric
|
||||
* characters.
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Suppress("LongMethod")
|
||||
@Composable
|
||||
fun PinInputDialog(
|
||||
|
||||
+38
-21
@@ -28,10 +28,10 @@ import androidx.compose.ui.test.performSemanticsAction
|
||||
import androidx.compose.ui.test.performTextInput
|
||||
import androidx.core.net.toUri
|
||||
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.createMockCipherView
|
||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||
import com.bitwarden.ui.util.asText
|
||||
import com.x8bit.bitwarden.ui.platform.components.model.IconData
|
||||
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
|
||||
import com.x8bit.bitwarden.ui.util.assertNoDialogExists
|
||||
@@ -2546,14 +2546,14 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
|
||||
@Test
|
||||
fun `in identity state, on copy identity name field click should send CopyIdentityNameClick`() {
|
||||
|
||||
val identityName = "the identity name"
|
||||
mutableStateFlow.update { it.copy(viewState = DEFAULT_IDENTITY_VIEW_STATE) }
|
||||
composeTestRule.onNodeWithTextAfterScroll(identityName)
|
||||
// We scroll to username, which is right after the identity to avoid clicking on the FAB
|
||||
composeTestRule.onNodeWithTextAfterScroll("Username")
|
||||
|
||||
composeTestRule
|
||||
.onNodeWithTag("IdentityCopyNameButton")
|
||||
.performSemanticsAction(SemanticsActions.OnClick)
|
||||
.onNodeWithContentDescriptionAfterScroll("Copy identity name")
|
||||
.assertIsDisplayed()
|
||||
.performClick()
|
||||
|
||||
verify {
|
||||
viewModel.trySendAction(VaultItemAction.ItemType.Identity.CopyIdentityNameClick)
|
||||
@@ -2567,7 +2567,8 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
composeTestRule.onNodeWithTextAfterScroll("Company")
|
||||
|
||||
composeTestRule
|
||||
.onNodeWithTag("IdentityCopyUsernameButton")
|
||||
.onNodeWithContentDescriptionAfterScroll("Copy username")
|
||||
.assertIsDisplayed()
|
||||
.performClick()
|
||||
|
||||
verify {
|
||||
@@ -2580,10 +2581,10 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
mutableStateFlow.update { it.copy(viewState = DEFAULT_IDENTITY_VIEW_STATE) }
|
||||
|
||||
// Scroll to ssn so we can see the Copy company button but not have it covered by the FAB
|
||||
composeTestRule.onNodeWithTextAfterScroll("the SSN")
|
||||
|
||||
composeTestRule.onNodeWithTextAfterScroll("Social Security number")
|
||||
composeTestRule
|
||||
.onNodeWithTag("IdentityCopyCompanyButton")
|
||||
.onNodeWithContentDescriptionAfterScroll("Copy company")
|
||||
.assertIsDisplayed()
|
||||
.performClick()
|
||||
|
||||
verify {
|
||||
@@ -2593,12 +2594,15 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
|
||||
@Test
|
||||
fun `in identity state, on copy SSN field click should send CopySsnClick`() {
|
||||
val ssn = "the SSN"
|
||||
mutableStateFlow.update { it.copy(viewState = DEFAULT_IDENTITY_VIEW_STATE) }
|
||||
composeTestRule.onNodeWithTextAfterScroll(ssn)
|
||||
// Scroll to passport so we can see the Copy ssn button but not have it covered by the FAB
|
||||
composeTestRule.onNodeWithTextAfterScroll("Passport number")
|
||||
|
||||
composeTestRule
|
||||
.onNodeWithTag("IdentityCopySsnButton")
|
||||
.onNodeWithTextAfterScroll("Social Security number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Copy social security number"))
|
||||
.assertIsDisplayed()
|
||||
.performClick()
|
||||
|
||||
verify {
|
||||
@@ -2639,8 +2643,9 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
@Test
|
||||
fun `in identity state, on copy email field click should send CopyEmailClick`() {
|
||||
mutableStateFlow.update { it.copy(viewState = DEFAULT_IDENTITY_VIEW_STATE) }
|
||||
composeTestRule.onFirstNodeWithTextAfterScroll("the address")
|
||||
|
||||
// Scroll to passport so we can see the Copy email button but not have it covered by the FAB
|
||||
composeTestRule.onNodeWithTextAfterScroll("Phone")
|
||||
composeTestRule
|
||||
.onNodeWithContentDescriptionAfterScroll("Copy email")
|
||||
.performClick()
|
||||
@@ -2718,10 +2723,14 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
.assertTextEquals("Number", "••••••")
|
||||
.assertIsEnabled()
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Copy number")
|
||||
.onNodeWithTextAfterScroll("Number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Copy number"))
|
||||
.assertIsDisplayed()
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Show")
|
||||
.onNodeWithTextAfterScroll("Number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Show"))
|
||||
.assertIsDisplayed()
|
||||
.performClick()
|
||||
|
||||
@@ -2754,10 +2763,14 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
.assertTextEquals("Number", "••••••")
|
||||
.assertIsEnabled()
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Copy number")
|
||||
.onNodeWithTextAfterScroll("Number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Copy number"))
|
||||
.assertIsDisplayed()
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Show")
|
||||
.onNodeWithTextAfterScroll("Number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Show"))
|
||||
.assertIsDisplayed()
|
||||
|
||||
mutableStateFlow.update {
|
||||
@@ -2778,10 +2791,14 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
.assertTextEquals("Number", "number")
|
||||
.assertIsEnabled()
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Copy number")
|
||||
.onNodeWithTextAfterScroll("Number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Copy number"))
|
||||
.assertIsDisplayed()
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Hide")
|
||||
.onNodeWithTextAfterScroll("Number")
|
||||
.onChildren()
|
||||
.filterToOne(hasContentDescription("Hide"))
|
||||
.assertIsDisplayed()
|
||||
}
|
||||
|
||||
@@ -3043,7 +3060,7 @@ class VaultItemScreenTest : BaseComposeTest() {
|
||||
// We scroll to notes, which is right after the fingerprint to avoid clicking on the FAB
|
||||
composeTestRule.onNodeWithTextAfterScroll("Notes")
|
||||
composeTestRule
|
||||
.onNodeWithContentDescription("Copy fingerprint")
|
||||
.onNodeWithContentDescriptionAfterScroll("Copy fingerprint")
|
||||
.performClick()
|
||||
|
||||
verify(exactly = 1) {
|
||||
|
||||
-2
@@ -3,7 +3,6 @@ package com.bitwarden.authenticator.ui.authenticator.feature.qrcodescan
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
||||
import androidx.compose.foundation.layout.FlowRow
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
@@ -41,7 +40,6 @@ import com.bitwarden.authenticator.ui.platform.components.util.maxDialogWidth
|
||||
* parameter is true if the user checked "Save option as default".
|
||||
*/
|
||||
@Composable
|
||||
@OptIn(ExperimentalLayoutApi::class)
|
||||
@Suppress("LongMethod")
|
||||
fun ChooseSaveLocationDialog(
|
||||
onSaveHereClick: (Boolean) -> Unit,
|
||||
|
||||
-2
@@ -15,7 +15,6 @@ import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -40,7 +39,6 @@ import com.bitwarden.authenticator.ui.platform.components.util.maxDialogHeight
|
||||
* [BitwardenSelectionRow].
|
||||
*/
|
||||
@Suppress("LongMethod")
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenSelectionDialog(
|
||||
title: String,
|
||||
|
||||
-2
@@ -11,7 +11,6 @@ import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.ScaffoldDefaults
|
||||
import androidx.compose.material3.contentColorFor
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
@@ -21,7 +20,6 @@ import androidx.compose.ui.semantics.testTagsAsResourceId
|
||||
* Direct passthrough to [Scaffold] but contains a few specific override values. Everything is
|
||||
* still overridable if necessary.
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun BitwardenScaffold(
|
||||
modifier: Modifier = Modifier,
|
||||
|
||||
@@ -13,7 +13,7 @@ androidxActivity = "1.10.1"
|
||||
androidXBiometrics = "1.2.0-alpha05"
|
||||
androidxBrowser = "1.8.0"
|
||||
androidxCamera = "1.4.2"
|
||||
androidxComposeBom = "2025.04.00"
|
||||
androidxComposeBom = "2025.04.01"
|
||||
androidxCore = "1.16.0"
|
||||
androidxCredentials = "1.5.0"
|
||||
androidxHiltNavigationCompose = "1.2.0"
|
||||
|
||||
Reference in New Issue
Block a user