diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/AboutDialog.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/AboutDialog.kt index 3f35d9dbe97d678b97eb3b2458b8ddab9f5005a9..4f2355162ab208fc60a3429b0973e49f19a5dccb 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/ui/AboutDialog.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/AboutDialog.kt @@ -1,6 +1,7 @@ package org.briarproject.briar.desktop.ui import androidx.compose.foundation.VerticalScrollbar +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.IntrinsicSize @@ -8,24 +9,22 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredSize -import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollbarAdapter -import androidx.compose.material.Divider +import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.material.MaterialTheme import androidx.compose.material.Text -import androidx.compose.material.TextField import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.max import org.briarproject.briar.desktop.BuildData +import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n import org.briarproject.briar.desktop.utils.PreviewUtils.preview import java.time.Instant import java.time.ZoneId @@ -52,14 +51,16 @@ fun AboutDialog( val buildTime = Instant.ofEpochMilli(BuildData.GIT_TIME).atZone(ZoneId.systemDefault()).toLocalDateTime() // rows displayed in table - val lines = buildList { - add(Pair("Copyright", "The Briar Project")) - add(Pair("License", "GNU Affero General Public License v3")) - add(Pair("Version", BuildData.VERSION)) - add(Pair("Git branch", BuildData.GIT_BRANCH)) - add(Pair("Git hash", BuildData.GIT_HASH)) - add(Pair("Commit time", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(buildTime))) - } + val lines = listOf( + i18n("about.copyright") to "The Briar Project", + i18n("about.license") to "GNU Affero General Public License v3", + i18n("about.version") to BuildData.VERSION, + "Git branch" to BuildData.GIT_BRANCH, + "Git hash" to BuildData.GIT_HASH, + "Commit time" to DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(buildTime), + i18n("about.website") to "https://briarproject.org", + i18n("about.contact") to "desktop@briarproject.org", + ) BriarDialog(onClose = onClose) { val box = this @@ -68,16 +69,25 @@ fun AboutDialog( box.maxWidth.times(0.8f), box.maxHeight.times(0.8f) ).padding(16.dp) ) { - Row(modifier = Modifier.padding(bottom = 8.dp), verticalAlignment = Alignment.CenterVertically) { - val minSize = 20.dp - BriarLogo(modifier = Modifier.heightIn(minSize, max(minSize, box.maxHeight.times(0.1f)))) - Text("Briar Desktop", style = MaterialTheme.typography.h4, modifier = Modifier.padding(start = 16.dp)) + Row( + modifier = Modifier.padding(bottom = 8.dp).fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center + ) { + BriarLogo(modifier = Modifier.height(48.dp)) + Text( + i18n("main.title"), + style = MaterialTheme.typography.h4, + modifier = Modifier.padding(start = 16.dp), + overflow = TextOverflow.Ellipsis, + maxLines = 1, + ) } val scrollState = rememberLazyListState() Box { LazyColumn(state = scrollState) { item { - Divider(modifier = Modifier.fillMaxWidth().height(1.dp)) + HorizontalDivider() } items(lines) { (key, value) -> // this is required for Divider between Boxes to have appropriate size @@ -85,22 +95,23 @@ fun AboutDialog( Box(modifier = Modifier.weight(colSizes[0]).fillMaxHeight()) { Text( text = key, - modifier = Modifier.padding(horizontal = 8.dp).padding(end = 8.dp) + modifier = Modifier.padding(horizontal = 8.dp) + .padding(vertical = 8.dp).padding(end = 8.dp) .align(Alignment.CenterStart) ) } - Divider(modifier = Modifier.fillMaxHeight().width(1.dp)) + VerticalDivider() Box(modifier = Modifier.weight(colSizes[1]).fillMaxHeight()) { - TextField( - value = value, - onValueChange = {}, - readOnly = true, - singleLine = true, - modifier = Modifier.fillMaxWidth() - ) + SelectionContainer { + Text( + text = value, + modifier = Modifier.fillMaxWidth().padding(vertical = 8.dp) + .padding(start = 8.dp) + ) + } } } - Divider(modifier = Modifier.fillMaxWidth().height(1.dp)) + HorizontalDivider() } } VerticalScrollbar( diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarDialog.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarDialog.kt index 2618c41312e62c7f40197f6b7f9887ee90f8dff6..f2929d55169c2b67b606b308889c0fe11333c7ae 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarDialog.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarDialog.kt @@ -26,9 +26,10 @@ fun BriarDialog( content: @Composable BoxWithConstraintsScope.() -> Unit, ) { BoxWithConstraints(Modifier.fillMaxSize()) { + // This adds a scrim that dims the background to make the dialog stand out visually Box( modifier = Modifier.requiredSize(maxWidth, maxHeight) - .background(MaterialTheme.colors.onSurface.copy(alpha = 0.4f)) + .background(MaterialTheme.colors.onSurface.copy(alpha = 0.32f)) .clickable( // prevent visual indication interactionSource = remember { MutableInteractionSource() }, diff --git a/src/main/resources/strings/BriarDesktop.properties b/src/main/resources/strings/BriarDesktop.properties index c236a5ddea38973fa75371ff669c95ce6913de4a..1f72e962271a4023d6878e58a2584ac4c85d0737 100644 --- a/src/main/resources/strings/BriarDesktop.properties +++ b/src/main/resources/strings/BriarDesktop.properties @@ -111,6 +111,13 @@ main.help.tor.port.control=Tor Control Port welcome.title=Welcome to Briar welcome.text=You don't have any contacts yet. Tap the + icon to add a contact: +# About +about.copyright=Copyright +about.license=License +about.version=Version +about.contact=Contact +about.website=Website + # Miscellaneous cancel=Cancel delete=Delete