diff --git a/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt index 4f254fa88d343124836258b0e1cfe4614d0b7b97..e73b89b0369c419d6a3f65a9ca4580572c38bd6d 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/conversation/PrivateMessageScreen.kt @@ -1,16 +1,27 @@ package org.briarproject.briar.desktop.conversation +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.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Surface +import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import org.briarproject.briar.desktop.contact.ContactList import org.briarproject.briar.desktop.contact.ContactListViewModel import org.briarproject.briar.desktop.contact.RealContactIdWrapper -import org.briarproject.briar.desktop.ui.UiPlaceholder +import org.briarproject.briar.desktop.ui.BriarLogo import org.briarproject.briar.desktop.ui.VerticalDivider +import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n import org.briarproject.briar.desktop.viewmodel.viewModel @Composable @@ -31,8 +42,29 @@ fun PrivateMessageScreen( if (id != null && id is RealContactIdWrapper) { ConversationScreen(id.contactId) } else { - UiPlaceholder() + NoContactSelected() } } } } + +@Composable +fun NoContactSelected() = Surface(color = MaterialTheme.colors.background) { + Column( + modifier = Modifier.padding(16.dp).fillMaxSize(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + BriarLogo(modifier = Modifier.size(200.dp)) + Text( + text = i18n("contacts.none_selected.title"), + modifier = Modifier.padding(PaddingValues(top = 15.dp, bottom = 5.dp)), + style = MaterialTheme.typography.h5 + ) + Text( + text = i18n("contacts.none_selected.hint"), + modifier = Modifier.padding(PaddingValues(top = 5.dp, bottom = 15.dp)), + style = MaterialTheme.typography.body2 + ) + } +} diff --git a/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt index 3beb11fbd0af019842b8f2c0c14aaf7f9984087e..b4199c0b55fc814c5dbdf7c1452de8277e3be67b 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/login/LoginScreen.kt @@ -1,14 +1,11 @@ package org.briarproject.briar.desktop.login -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.Button @@ -21,7 +18,6 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.input.key.Key @@ -29,12 +25,12 @@ import androidx.compose.ui.input.key.KeyEventType import androidx.compose.ui.input.key.key import androidx.compose.ui.input.key.onPreviewKeyEvent import androidx.compose.ui.input.key.type -import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import org.briarproject.briar.desktop.login.LoginViewModel.LoginState.SIGNED_OUT +import org.briarproject.briar.desktop.ui.BriarLogo import org.briarproject.briar.desktop.ui.Loader import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n import org.briarproject.briar.desktop.viewmodel.viewModel @@ -93,7 +89,3 @@ fun LoginScreen( } } } - -@Composable -fun BriarLogo(modifier: Modifier = Modifier.fillMaxWidth().clip(shape = RoundedCornerShape(400.dp))) = - Image(painterResource("images/logo_circle.svg"), i18n("access.logo"), modifier) diff --git a/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt b/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt index 7e3251ad844ba725c5079638d39c313117f587c4..ab6058e58aaaefbe98e2eaaa0686444746c93f43 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/login/RegistrationScreen.kt @@ -33,6 +33,7 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp +import org.briarproject.briar.desktop.ui.BriarLogo import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n import org.briarproject.briar.desktop.viewmodel.viewModel import java.util.Locale diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarLogo.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarLogo.kt new file mode 100644 index 0000000000000000000000000000000000000000..42882a2239828a40c4e8765b672da2bf351c2e1d --- /dev/null +++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarLogo.kt @@ -0,0 +1,12 @@ +package org.briarproject.briar.desktop.ui + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n + +@Composable +fun BriarLogo(modifier: Modifier = Modifier.fillMaxWidth()) = + Image(painterResource("images/logo_circle.svg"), i18n("access.logo"), modifier) diff --git a/src/main/resources/strings/BriarDesktop.properties b/src/main/resources/strings/BriarDesktop.properties index 6cc54d9c9cf5be742ab96e80adc483df1e73594e..038922edf28accb623d93fa47885caad00ec8616 100644 --- a/src/main/resources/strings/BriarDesktop.properties +++ b/src/main/resources/strings/BriarDesktop.properties @@ -13,6 +13,8 @@ access.logo=Briar logo access.swap=Icon showing errors between two contacts # Contacts +contacts.none_selected.title=No contact selected +contacts.none_selected.hint=Select a contact to start chatting contacts.card.nothing=No messages. contacts.dropdown.connections=Connections contacts.dropdown.connections.title=Connections