mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Add setting for requesting user account data.
This commit is contained in:
96
core-ui/src/main/java/org/signal/core/ui/Dialogs.kt
Normal file
96
core-ui/src/main/java/org/signal/core/ui/Dialogs.kt
Normal file
@@ -0,0 +1,96 @@
|
||||
package org.signal.core.ui
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import org.signal.core.ui.Dialogs.SimpleAlertDialog
|
||||
import org.signal.core.ui.Dialogs.SimpleMessageDialog
|
||||
|
||||
object Dialogs {
|
||||
|
||||
@Composable
|
||||
fun SimpleMessageDialog(
|
||||
message: String,
|
||||
dismiss: String,
|
||||
onDismiss: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
dismissColor: Color = Color.Unspecified,
|
||||
properties: DialogProperties = DialogProperties()
|
||||
) {
|
||||
androidx.compose.material3.AlertDialog(
|
||||
onDismissRequest = onDismiss,
|
||||
text = { Text(text = message) },
|
||||
confirmButton = {
|
||||
TextButton(onClick = {
|
||||
onDismiss()
|
||||
}) {
|
||||
Text(text = dismiss, color = dismissColor)
|
||||
}
|
||||
},
|
||||
modifier = modifier,
|
||||
properties = properties
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SimpleAlertDialog(
|
||||
title: String,
|
||||
body: String,
|
||||
confirm: String,
|
||||
dismiss: String,
|
||||
onConfirm: () -> Unit,
|
||||
onDismiss: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
confirmColor: Color = Color.Unspecified,
|
||||
dismissColor: Color = Color.Unspecified,
|
||||
properties: DialogProperties = DialogProperties()
|
||||
) {
|
||||
androidx.compose.material3.AlertDialog(
|
||||
onDismissRequest = onDismiss,
|
||||
title = { Text(text = title) },
|
||||
text = { Text(text = body) },
|
||||
confirmButton = {
|
||||
TextButton(onClick = {
|
||||
onConfirm()
|
||||
onDismiss()
|
||||
}) {
|
||||
Text(text = confirm, color = confirmColor)
|
||||
}
|
||||
},
|
||||
dismissButton = {
|
||||
TextButton(onClick = onDismiss) {
|
||||
Text(text = dismiss, color = dismissColor)
|
||||
}
|
||||
},
|
||||
modifier = modifier,
|
||||
properties = properties
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
private fun AlertDialogPreview() {
|
||||
SimpleAlertDialog(
|
||||
title = "Title Text",
|
||||
body = "Body text message",
|
||||
confirm = "Confirm Button",
|
||||
dismiss = "Dismiss Button",
|
||||
onConfirm = {},
|
||||
onDismiss = {}
|
||||
)
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
private fun MessageDialogPreview() {
|
||||
SimpleMessageDialog(
|
||||
message = "Message here",
|
||||
dismiss = "OK",
|
||||
onDismiss = {}
|
||||
)
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.signal.core.ui
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
@@ -17,6 +18,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.dimensionResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import org.signal.core.ui.theme.SignalTheme
|
||||
|
||||
object Rows {
|
||||
@@ -28,7 +30,8 @@ object Rows {
|
||||
fun RadioRow(
|
||||
selected: Boolean,
|
||||
text: String,
|
||||
modifier: Modifier = Modifier
|
||||
modifier: Modifier = Modifier,
|
||||
label: String? = null
|
||||
) {
|
||||
Row(
|
||||
modifier = modifier
|
||||
@@ -45,10 +48,21 @@ object Rows {
|
||||
modifier = Modifier.padding(end = 24.dp)
|
||||
)
|
||||
|
||||
Text(
|
||||
text = text,
|
||||
style = MaterialTheme.typography.bodyLarge
|
||||
)
|
||||
Column {
|
||||
Text(
|
||||
text = text,
|
||||
style = MaterialTheme.typography.bodyLarge
|
||||
)
|
||||
|
||||
if (label != null) {
|
||||
Text(
|
||||
text = label,
|
||||
fontSize = 14.sp,
|
||||
lineHeight = 20.sp,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,6 +76,7 @@ private fun RadioRowPreview() {
|
||||
Rows.RadioRow(
|
||||
selected,
|
||||
"RadioRow",
|
||||
label = "RadioRow Label",
|
||||
modifier = Modifier.clickable {
|
||||
selected = !selected
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user