mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-24 10:35:19 +00:00
Moving recovery password dialogs to compose for QA
This commit is contained in:
parent
390757fe50
commit
d257a1a072
@ -26,7 +26,10 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.ui.AlertDialog
|
||||
import org.thoughtcrime.securesms.ui.Cell
|
||||
import org.thoughtcrime.securesms.ui.DialogButtonModel
|
||||
import org.thoughtcrime.securesms.ui.GetString
|
||||
import org.thoughtcrime.securesms.ui.SessionShieldIcon
|
||||
import org.thoughtcrime.securesms.ui.components.QrImage
|
||||
import org.thoughtcrime.securesms.ui.components.SlimOutlineButton
|
||||
@ -45,8 +48,8 @@ import org.thoughtcrime.securesms.ui.theme.monospace
|
||||
internal fun RecoveryPasswordScreen(
|
||||
mnemonic: String,
|
||||
seed: String? = null,
|
||||
copyMnemonic:() -> Unit = {},
|
||||
onHide:() -> Unit = {}
|
||||
confirmHideRecovery: () -> Unit,
|
||||
copyMnemonic:() -> Unit = {}
|
||||
) {
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(LocalDimensions.current.smallSpacing),
|
||||
@ -57,7 +60,7 @@ internal fun RecoveryPasswordScreen(
|
||||
.padding(horizontal = LocalDimensions.current.spacing)
|
||||
) {
|
||||
RecoveryPasswordCell(mnemonic, seed, copyMnemonic)
|
||||
HideRecoveryPasswordCell(onHide)
|
||||
HideRecoveryPasswordCell(confirmHideRecovery = confirmHideRecovery)
|
||||
}
|
||||
}
|
||||
|
||||
@ -151,7 +154,12 @@ private fun RecoveryPassword(mnemonic: String) {
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun HideRecoveryPasswordCell(onHide: () -> Unit = {}) {
|
||||
private fun HideRecoveryPasswordCell(
|
||||
confirmHideRecovery:() -> Unit
|
||||
) {
|
||||
var showHideRecoveryDialog by remember { mutableStateOf(false) }
|
||||
var showHideRecoveryConfirmationDialog by remember { mutableStateOf(false) }
|
||||
|
||||
Cell {
|
||||
Row(
|
||||
modifier = Modifier.padding(LocalDimensions.current.smallSpacing)
|
||||
@ -176,10 +184,44 @@ private fun HideRecoveryPasswordCell(onHide: () -> Unit = {}) {
|
||||
.align(Alignment.CenterVertically)
|
||||
.contentDescription(R.string.AccessibilityId_recoveryPasswordHideRecoveryPassword),
|
||||
color = LocalColors.current.danger,
|
||||
onClick = onHide
|
||||
onClick = { showHideRecoveryDialog = true }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// recovery hide dialog
|
||||
if(showHideRecoveryDialog) {
|
||||
AlertDialog(
|
||||
onDismissRequest = { showHideRecoveryDialog = false },
|
||||
title = stringResource(R.string.recoveryPasswordHidePermanently),
|
||||
text = stringResource(R.string.recoveryPasswordHidePermanentlyDescription1),
|
||||
buttons = listOf(
|
||||
DialogButtonModel(
|
||||
GetString(R.string.theContinue),
|
||||
color = LocalColors.current.danger,
|
||||
onClick = { showHideRecoveryConfirmationDialog = true }
|
||||
),
|
||||
DialogButtonModel(GetString(android.R.string.cancel))
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// recovery hide confirmation dialog
|
||||
if(showHideRecoveryConfirmationDialog) {
|
||||
AlertDialog(
|
||||
onDismissRequest = { showHideRecoveryConfirmationDialog = false },
|
||||
title = stringResource(R.string.recoveryPasswordHidePermanently),
|
||||
text = stringResource(R.string.recoveryPasswordHidePermanentlyDescription2),
|
||||
buttons = listOf(
|
||||
DialogButtonModel(
|
||||
GetString(R.string.yes),
|
||||
color = LocalColors.current.danger,
|
||||
onClick = confirmHideRecovery
|
||||
),
|
||||
DialogButtonModel(GetString(android.R.string.cancel))
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ -188,6 +230,9 @@ private fun PreviewRecoveryPasswordScreen(
|
||||
@PreviewParameter(SessionColorsParameterProvider::class) colors: ThemeColors
|
||||
) {
|
||||
PreviewTheme(colors) {
|
||||
RecoveryPasswordScreen(mnemonic = "voyage urban toyed maverick peculiar tuxedo penguin tree grass building listen speak withdraw terminal plane")
|
||||
RecoveryPasswordScreen(
|
||||
mnemonic = "voyage urban toyed maverick peculiar tuxedo penguin tree grass building listen speak withdraw terminal plane",
|
||||
confirmHideRecovery = {}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -24,33 +24,12 @@ class RecoveryPasswordActivity : BaseActionBarActivity() {
|
||||
RecoveryPasswordScreen(
|
||||
mnemonic = mnemonic,
|
||||
seed = seed,
|
||||
copyMnemonic = viewModel::copyMnemonic,
|
||||
onHide = ::onHide
|
||||
confirmHideRecovery = {
|
||||
viewModel.permanentlyHidePassword()
|
||||
finish()
|
||||
},
|
||||
copyMnemonic = viewModel::copyMnemonic
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun onHide() {
|
||||
showSessionDialog {
|
||||
title(R.string.recoveryPasswordHidePermanently)
|
||||
text(R.string.recoveryPasswordHidePermanentlyDescription1)
|
||||
dangerButton(R.string.theContinue, R.string.AccessibilityId_theContinue) { onHideConfirm() }
|
||||
cancelButton()
|
||||
}
|
||||
}
|
||||
|
||||
private fun onHideConfirm() {
|
||||
showSessionDialog {
|
||||
title(R.string.recoveryPasswordHidePermanently)
|
||||
text(R.string.recoveryPasswordHidePermanentlyDescription2)
|
||||
cancelButton()
|
||||
dangerButton(
|
||||
R.string.yes,
|
||||
contentDescription = R.string.AccessibilityId_recoveryPasswordHidePermanentlyConfirm
|
||||
) {
|
||||
viewModel.permanentlyHidePassword()
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user