mirror of
https://github.com/bitwarden/android.git
synced 2026-03-21 22:00:42 -05:00
Remove the language change dialog (#4658)
This commit is contained in:
@@ -14,10 +14,7 @@ import androidx.compose.material3.TopAppBarDefaults
|
|||||||
import androidx.compose.material3.rememberTopAppBarState
|
import androidx.compose.material3.rememberTopAppBarState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
|
||||||
import androidx.compose.runtime.setValue
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
@@ -30,7 +27,6 @@ import com.x8bit.bitwarden.R
|
|||||||
import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.standardHorizontalMargin
|
import com.x8bit.bitwarden.ui.platform.base.util.standardHorizontalMargin
|
||||||
import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar
|
import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar
|
||||||
import com.x8bit.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog
|
|
||||||
import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectButton
|
import com.x8bit.bitwarden.ui.platform.components.dropdown.BitwardenMultiSelectButton
|
||||||
import com.x8bit.bitwarden.ui.platform.components.model.CardStyle
|
import com.x8bit.bitwarden.ui.platform.components.model.CardStyle
|
||||||
import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
|
import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
|
||||||
@@ -128,7 +124,6 @@ private fun LanguageSelectionRow(
|
|||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
resources: Resources = LocalContext.current.resources,
|
resources: Resources = LocalContext.current.resources,
|
||||||
) {
|
) {
|
||||||
var languageChangedDialogOption: String? by rememberSaveable { mutableStateOf(value = null) }
|
|
||||||
BitwardenMultiSelectButton(
|
BitwardenMultiSelectButton(
|
||||||
label = stringResource(id = R.string.language),
|
label = stringResource(id = R.string.language),
|
||||||
options = AppLanguage.entries.map { it.text() }.toImmutableList(),
|
options = AppLanguage.entries.map { it.text() }.toImmutableList(),
|
||||||
@@ -137,19 +132,10 @@ private fun LanguageSelectionRow(
|
|||||||
onLanguageSelection(
|
onLanguageSelection(
|
||||||
AppLanguage.entries.first { selectedLanguage == it.text.toString(resources) },
|
AppLanguage.entries.first { selectedLanguage == it.text.toString(resources) },
|
||||||
)
|
)
|
||||||
languageChangedDialogOption = selectedLanguage
|
|
||||||
},
|
},
|
||||||
cardStyle = CardStyle.Full,
|
cardStyle = CardStyle.Full,
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
)
|
)
|
||||||
|
|
||||||
languageChangedDialogOption?.let {
|
|
||||||
BitwardenBasicDialog(
|
|
||||||
title = stringResource(id = R.string.language),
|
|
||||||
message = stringResource(id = R.string.language_change_x_description, it),
|
|
||||||
onDismissRequest = { languageChangedDialogOption = null },
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class AppearanceScreenTest : BaseComposeTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `on language selection dialog item click should send LanguageChange and show dialog`() {
|
fun `on language selection dialog item click should send LanguageChange`() {
|
||||||
// Clicking the Language row shows the language selection dialog
|
// Clicking the Language row shows the language selection dialog
|
||||||
composeTestRule
|
composeTestRule
|
||||||
.onNodeWithContentDescription(label = "Default (System). Language")
|
.onNodeWithContentDescription(label = "Default (System). Language")
|
||||||
@@ -80,17 +80,6 @@ class AppearanceScreenTest : BaseComposeTest() {
|
|||||||
.filterToOne(hasAnyAncestor(isDialog()))
|
.filterToOne(hasAnyAncestor(isDialog()))
|
||||||
.assertIsNotDisplayed()
|
.assertIsNotDisplayed()
|
||||||
|
|
||||||
// Should show confirmation dialog
|
|
||||||
composeTestRule
|
|
||||||
.onAllNodesWithText("Ok")
|
|
||||||
.filterToOne(hasAnyAncestor(isDialog()))
|
|
||||||
.assertIsDisplayed()
|
|
||||||
// Clicking "Ok" should dismiss confirmation dialog
|
|
||||||
composeTestRule.onAllNodesWithText("Ok")
|
|
||||||
.filterToOne(hasAnyAncestor(isDialog()))
|
|
||||||
.performClick()
|
|
||||||
composeTestRule.assertNoDialogExists()
|
|
||||||
|
|
||||||
verify {
|
verify {
|
||||||
viewModel.trySendAction(
|
viewModel.trySendAction(
|
||||||
AppearanceAction.LanguageChange(
|
AppearanceAction.LanguageChange(
|
||||||
|
|||||||
Reference in New Issue
Block a user