diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index ef4f1b764da0f387cc8e23cf971a3be78405f4c8..ec09a9382294f23fd3267aab1b77737f8ea53f4a 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -68,6 +68,9 @@ </codeStyleSettings> <codeStyleSettings language="kotlin"> <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> + <indentOptions> + <option name="CONTINUATION_INDENT_SIZE" value="4" /> + </indentOptions> </codeStyleSettings> </code_scheme> -</component> +</component> \ No newline at end of file diff --git a/src/main/kotlin/androidx/compose/material/ExposedDropDownMenu.kt b/src/main/kotlin/androidx/compose/material/ExposedDropDownMenu.kt index ffbe92e8bdf00dbb2bb7e4d4424edd86eb77cf0a..0f4dc61f9fc6067c8ec0abbe5ced77e7cda76404 100644 --- a/src/main/kotlin/androidx/compose/material/ExposedDropDownMenu.kt +++ b/src/main/kotlin/androidx/compose/material/ExposedDropDownMenu.kt @@ -219,7 +219,7 @@ private fun ExposedDropDownMenuImpl( expanded = false } ) { - Text(v) + Text(v, style = MaterialTheme.typography.body1) } } } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactCard.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactCard.kt index a2a6a8faabbfdfc8d1cb69128d3c0d24376047e7..0e98b2bb6f26449763a98af6a3e678ec59d7eb70 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactCard.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactCard.kt @@ -118,7 +118,7 @@ private fun RealContactRow(contactItem: ContactItem, padding: PaddingValues) { Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.padding(padding)) { Row( - modifier = Modifier.align(Alignment.CenterVertically).padding(horizontal = 16.dp) + modifier = Modifier.align(Alignment.CenterVertically).padding(start = 16.dp, end = 8.dp) .weight(1f, fill = false) ) { Box(modifier = Modifier.align(Alignment.CenterVertically)) { @@ -134,7 +134,7 @@ private fun RealContactRow(contactItem: ContactItem, padding: PaddingValues) { ) } Canvas( - modifier = Modifier.padding(end = 18.dp).size(22.dp).align(Alignment.CenterVertically), + modifier = Modifier.size(24.dp).align(Alignment.CenterVertically), onDraw = { val size = 16.dp drawCircle(color = outlineColor, radius = size.toPx() / 2f) @@ -149,9 +149,9 @@ private fun RealContactRow(contactItem: ContactItem, padding: PaddingValues) { @Composable private fun PendingContactRow(contactItem: PendingContactItem, onRemove: () -> Unit, padding: PaddingValues) { - Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.padding(padding)) { + Row(horizontalArrangement = Arrangement.SpaceBetween) { Row( - modifier = Modifier.align(Alignment.CenterVertically).padding(horizontal = 16.dp) + modifier = Modifier.align(Alignment.CenterVertically).padding(start = 16.dp, end = 8.dp) .weight(1f, fill = false) ) { ProfileCircle(36.dp) @@ -162,7 +162,7 @@ private fun PendingContactRow(contactItem: PendingContactItem, onRemove: () -> U } IconButton( onClick = onRemove, - modifier = Modifier.padding(end = 4.dp).align(Alignment.CenterVertically), + modifier = Modifier.padding(end = 4.dp).align(Alignment.CenterVertically) ) { Icon(Icons.Filled.Delete, i18n("access.contacts.pending.remove")) } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt index a4d9e5960c2b03e7e751aaab0049d6e1aa65675c..b0324ffa504334e1c6e59874df4246b2e4a0c1c4 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ContactList.kt @@ -77,7 +77,7 @@ fun ContactList( onSel = { selectContact(contactItem) }, selected = isSelected(contactItem), onRemovePending = { if (contactItem is PendingContactItem) removePendingContact(contactItem) }, - padding = PaddingValues(end = 12.dp), + padding = PaddingValues(end = 16.dp), ) } } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/ProfileCircle.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/ProfileCircle.kt index 2fb9dbcc587f29db4d0169ecee7c1a2c25c171e2..b24a5653c82efa111b5beff9711809dde1f17495 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/ProfileCircle.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/ProfileCircle.kt @@ -70,7 +70,7 @@ fun ProfileCircle(size: Dp, contactItem: ContactItem) { */ @Composable fun ProfileCircle(size: Dp, input: ByteArray) { - Canvas(Modifier.size(size).clip(CircleShape).border(2.dp, MaterialTheme.colors.outline, CircleShape)) { + Canvas(Modifier.size(size).clip(CircleShape).border(1.dp, MaterialTheme.colors.outline, CircleShape)) { Identicon(input, this.size.width, this.size.height).draw(this) } } @@ -86,7 +86,7 @@ fun ProfileCircle(size: Dp, avatar: ImageBitmap) { bitmap = avatar, contentDescription = null, contentScale = ContentScale.FillBounds, - modifier = Modifier.size(size).clip(CircleShape).border(2.dp, MaterialTheme.colors.outline, CircleShape), + modifier = Modifier.size(size).clip(CircleShape).border(1.dp, MaterialTheme.colors.outline, CircleShape), ) } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/contact/SearchTextField.kt b/src/main/kotlin/org/briarproject/briar/desktop/contact/SearchTextField.kt index d9881f3b22dd02bbd23db5e876fd6336ba81cfef..fe45aedb62ea8fd8c82774f2bb8f2e19a926adc1 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/contact/SearchTextField.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/contact/SearchTextField.kt @@ -61,8 +61,9 @@ fun SearchTextField(searchValue: String, onValueChange: (String) -> Unit, onCont trailingIcon = { IconButton( onClick = onContactAdd, - modifier = Modifier.padding(end = 10.dp).size(32.dp) + modifier = Modifier.padding(end = 8.dp) .background(MaterialTheme.colors.primary, CircleShape).pointerHoverIcon(PointerIconDefaults.Default) + .then(Modifier.size(32.dp)) ) { Icon( Icons.Filled.PersonAdd, diff --git a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationInput.kt b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationInput.kt index 40a82c0cf25e24399aff676f97d589af196be472..0de396058942847051d565301ab5a28375648cb6 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationInput.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationInput.kt @@ -120,9 +120,10 @@ fun ConversationInput( updateImage(null) } }, - Modifier.padding(4.dp).size(32.dp) + Modifier.padding(4.dp) .background(MaterialTheme.colors.primary, CircleShape) - .pointerHoverIcon(PointerIconDefaults.Default), + .pointerHoverIcon(PointerIconDefaults.Default) + .then(Modifier.size(32.dp)), ) { if (image == null) { Icon(Icons.Filled.Add, i18n("access.attachment_add"), Modifier.size(24.dp), Color.White) @@ -133,7 +134,8 @@ fun ConversationInput( }, trailingIcon = { IconButton( - onClick = onSend, modifier = Modifier.padding(4.dp).size(32.dp).pointerHoverIcon(PointerIconDefaults.Default), + onClick = onSend, + modifier = Modifier.padding(4.dp).size(32.dp).pointerHoverIcon(PointerIconDefaults.Default), ) { Icon( Icons.Filled.Send, diff --git a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationList.kt b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationList.kt index 2764ecf3020c218412a22b97c43058b412dd66c2..cd7ff53c3802ee56d6cc6600f2b3434f71c1d641 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationList.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationList.kt @@ -183,7 +183,7 @@ fun ConversationList( Box(modifier = Modifier.padding(padding).fillMaxSize()) { LazyColumn( state = scrollState, - modifier = Modifier.fillMaxSize().padding(end = 12.dp, top = 8.dp, bottom = 8.dp) + modifier = Modifier.fillMaxSize().padding(end = 8.dp), ) { itemsIndexed(messages) { idx, m -> if (idx == initialFirstUnreadMessageIndex) { @@ -304,9 +304,10 @@ fun LazyListState.isScrolledToPenultimate(): Boolean { val LazyListState.lastVisibleItemIndex get() = layoutInfo.visibleItemsInfo.lastOrNull()?.index ?: -1 -val LazyListLayoutInfo.reallyVisibleItemsInfo get() = visibleItemsInfo.filter { - it.offset <= viewportEndOffset - 50 && it.offset + it.size >= viewportStartOffset + 50 -} +val LazyListLayoutInfo.reallyVisibleItemsInfo + get() = visibleItemsInfo.filter { + it.offset <= viewportEndOffset - 50 && it.offset + it.size >= viewportStartOffset + 50 + } val LazyListState.firstReallyVisibleItemIndex get() = layoutInfo.reallyVisibleItemsInfo.firstOrNull()?.index ?: -1 val LazyListState.lastReallyVisibleItemIndex get() = layoutInfo.reallyVisibleItemsInfo.lastOrNull()?.index ?: -1 diff --git a/src/main/kotlin/org/briarproject/briar/desktop/introduction/ContactDrawerMakeIntro.kt b/src/main/kotlin/org/briarproject/briar/desktop/introduction/ContactDrawerMakeIntro.kt index c616451dc5a4090c54bb43793b7b585aeb8e7944..ea12210b752777f5bb4ea3b2f8658df28a536cbe 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/introduction/ContactDrawerMakeIntro.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/introduction/ContactDrawerMakeIntro.kt @@ -20,6 +20,7 @@ package org.briarproject.briar.desktop.introduction import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -42,10 +43,12 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import org.briarproject.briar.desktop.contact.ContactCard import org.briarproject.briar.desktop.contact.ContactItem import org.briarproject.briar.desktop.contact.ProfileCircle +import org.briarproject.briar.desktop.theme.surfaceVariant import org.briarproject.briar.desktop.ui.Constants.HEADER_SIZE import org.briarproject.briar.desktop.ui.HorizontalDivider import org.briarproject.briar.desktop.utils.InternationalizationUtils @@ -62,13 +65,13 @@ fun ContactDrawerMakeIntro( LaunchedEffect(contactItem) { viewModel.setFirstContact(contactItem) } - Surface { + Surface(color = MaterialTheme.colors.surfaceVariant, contentColor = MaterialTheme.colors.onSurface) { Column { if (!viewModel.secondScreen.value) { Row(Modifier.fillMaxWidth().height(HEADER_SIZE)) { IconButton( onClick = { closeInfoDrawer(false) }, - Modifier.padding(start = 16.dp).size(32.dp).align(Alignment.CenterVertically) + Modifier.padding(start = 24.dp).size(24.dp).align(Alignment.CenterVertically) ) { Icon(Icons.Filled.Close, i18n("access.introduction.close")) } @@ -86,7 +89,8 @@ fun ContactDrawerMakeIntro( contactItem, onSel = { viewModel.setSecondContact(contactItem) }, selected = false, - onRemovePending = {} + onRemovePending = {}, + padding = PaddingValues(end = 16.dp), ) } } @@ -94,32 +98,40 @@ fun ContactDrawerMakeIntro( Row(Modifier.fillMaxWidth().height(HEADER_SIZE)) { IconButton( onClick = viewModel::backToFirstScreen, - Modifier.padding(horizontal = 11.dp).size(32.dp).align(Alignment.CenterVertically) + Modifier.padding(start = 24.dp).size(24.dp).align(Alignment.CenterVertically) ) { Icon(Icons.Filled.ArrowBack, i18n("access.introduction.back.contact")) } Text( text = i18n("introduction.title_second"), - modifier = Modifier.align(Alignment.CenterVertically), + modifier = Modifier.align(Alignment.CenterVertically).padding(start = 16.dp), style = MaterialTheme.typography.body1, ) } Row(Modifier.fillMaxWidth().padding(12.dp), horizontalArrangement = Arrangement.SpaceAround) { - Column(Modifier.align(Alignment.Top).weight(1f)) { + Column( + Modifier.align(Alignment.Top).weight(1f), + horizontalAlignment = Alignment.CenterHorizontally + ) { ProfileCircle(36.dp, viewModel.firstContact.value!!) Text( text = viewModel.firstContact.value!!.displayName, - modifier = Modifier.padding(top = 4.dp), + modifier = Modifier.padding(top = 4.dp).align(Alignment.CenterHorizontally), style = MaterialTheme.typography.body1, + textAlign = TextAlign.Center, ) } Icon(Icons.Filled.SwapHoriz, i18n("access.swap"), modifier = Modifier.size(48.dp)) - Column(Modifier.align(Alignment.Top).weight(1f)) { + Column( + Modifier.align(Alignment.Top).weight(1f), + horizontalAlignment = Alignment.CenterHorizontally + ) { ProfileCircle(36.dp, viewModel.secondContact.value!!) Text( text = viewModel.secondContact.value!!.displayName, - modifier = Modifier.padding(top = 4.dp), + modifier = Modifier.padding(top = 4.dp).align(Alignment.CenterHorizontally), style = MaterialTheme.typography.body1, + textAlign = TextAlign.Center, ) } } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/MessageCounter.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/MessageCounter.kt index b03a23dc810a486fd0577d0a816be9cc61bcdc27..07f2c8d71f9b64e85901401ff4f8b77bd39f40b0 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/ui/MessageCounter.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/MessageCounter.kt @@ -44,7 +44,7 @@ fun MessageCounter(unread: Int, modifier: Modifier = Modifier) { modifier = modifier .height(20.dp) .widthIn(min = 20.dp, max = Dp.Infinity) - .border(2.dp, outlineColor, CircleShape) + .border(1.dp, outlineColor, CircleShape) .background(briarSecondary, CircleShape) .padding(horizontal = 6.dp) ) {