From 353e04bddd50f512e37f52212dddfb9cbae7d59d Mon Sep 17 00:00:00 2001 From: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com> Date: Tue, 22 Feb 2022 17:08:42 +0400 Subject: [PATCH] android: settings drawer, dark mode user profile view, dark mode previews (#347) --- .../java/chat/simplex/app/ui/theme/Theme.kt | 33 ++- .../java/chat/simplex/app/ui/theme/Type.kt | 1 - .../chat/simplex/app/views/TerminalView.kt | 6 + .../chat/simplex/app/views/chat/ChatView.kt | 6 + .../simplex/app/views/chat/SendMsgView.kt | 12 +- .../app/views/chatlist/ChatListView.kt | 62 +++--- .../app/views/helpers/CloseSheetBar.kt | 6 + .../app/views/usersettings/SettingsView.kt | 200 +++++++++++++++--- .../app/views/usersettings/UserProfileView.kt | 54 +++-- .../app/src/main/res/drawable/ic_github.xml | 22 ++ .../main/res/drawable/ic_outline_terminal.xml | 10 + 11 files changed, 316 insertions(+), 96 deletions(-) create mode 100644 apps/android/app/src/main/res/drawable/ic_github.xml create mode 100644 apps/android/app/src/main/res/drawable/ic_outline_terminal.xml diff --git a/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt b/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt index 5ec0745e02..3719e860a6 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Theme.kt @@ -3,39 +3,32 @@ package chat.simplex.app.ui.theme import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material.* import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color private val DarkColorPalette = darkColors( primary = SimplexBlue, primaryVariant = SimplexGreen, secondary = DarkGray, // background = Color.Black, -// surface = Color.Black - /* - background: Color = Color(0xFF121212), - surface: Color = Color(0xFF121212), - error: Color = Color(0xFFCF6679), - onPrimary: Color = Color.Black, - onSecondary: Color = Color.Black, - onBackground: Color = Color.White, - onSurface: Color = Color.White, - onError: Color = Color.Black - */ +// surface = Color.Black, +// background = Color(0xFF121212), +// surface = Color(0xFF121212), +// error = Color(0xFFCF6679), +// onPrimary = Color.Black, +// onSecondary = Color.Black, +// onBackground = Color.White, +// onSurface = Color.White, +// onError: Color = Color.Black, ) - private val LightColorPalette = lightColors( primary = SimplexBlue, primaryVariant = SimplexGreen, secondary = LightGray, // background = Color.White, // surface = Color.White - /* Other default colors to override - surface = Color.White, - onPrimary = Color.White, - onSecondary = Color.Black, - onBackground = Color.Black, - onSurface = Color.Black, - */ +// onPrimary = Color.White, +// onSecondary = Color.Black, +// onBackground = Color.Black, +// onSurface = Color.Black, ) @Composable diff --git a/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Type.kt b/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Type.kt index e60d0eee08..35c3661734 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Type.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/ui/theme/Type.kt @@ -1,6 +1,5 @@ package chat.simplex.app.ui.theme -import androidx.compose.material.MaterialTheme import androidx.compose.material.Typography import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontFamily diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/TerminalView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/TerminalView.kt index 09da357636..586029c957 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/TerminalView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/TerminalView.kt @@ -1,5 +1,6 @@ package chat.simplex.app.views +import android.content.res.Configuration import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.* @@ -92,6 +93,11 @@ fun DetailView(identifier: Long, terminalItems: List, navControlle } @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) @Composable fun PreviewTerminalLayout() { SimpleXTheme { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/ChatView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/ChatView.kt index c1215a5280..b775054b84 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/ChatView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/ChatView.kt @@ -1,5 +1,6 @@ package chat.simplex.app.views.chat +import android.content.res.Configuration import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -139,6 +140,11 @@ fun ChatItemsList(chatItems: List) { @ExperimentalAnimatedInsets @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) @Composable fun PreviewChatLayout() { SimpleXTheme { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/SendMsgView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/SendMsgView.kt index e0504cc7cc..d9df249303 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/SendMsgView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/SendMsgView.kt @@ -1,5 +1,6 @@ package chat.simplex.app.views.chat +import android.content.res.Configuration import androidx.compose.foundation.* import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape @@ -13,13 +14,11 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.focus.FocusState -import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.input.* +import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import chat.simplex.app.ui.theme.* +import chat.simplex.app.ui.theme.SimpleXTheme @Composable fun SendMsgView(sendMessage: (String) -> Unit) { @@ -76,6 +75,11 @@ fun SendMsgView(sendMessage: (String) -> Unit) { } @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) @Composable fun PreviewSendMsgView() { SimpleXTheme { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt index 397932bea5..0877037754 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt @@ -22,6 +22,7 @@ import chat.simplex.app.model.Chat import chat.simplex.app.model.ChatModel import chat.simplex.app.views.helpers.withApi import chat.simplex.app.views.newchat.NewChatSheet +import chat.simplex.app.views.usersettings.SettingsView import com.google.accompanist.permissions.ExperimentalPermissionsApi import kotlinx.coroutines.* @@ -33,6 +34,12 @@ class ScaffoldController(val state: BottomSheetScaffoldState, val scope: Corouti val s = state.bottomSheetState if (s.isExpanded) s.collapse() else s.expand() } + + fun toggleDrawer() = scope.launch { + state.drawerState.apply { + if (isClosed) open() else close() + } + } } @ExperimentalMaterialApi @@ -49,31 +56,37 @@ fun scaffoldController(): ScaffoldController { @ExperimentalMaterialApi @Composable fun ChatListView(chatModel: ChatModel, nav: NavController) { - val newChatCtrl = scaffoldController() + val scaffoldCtrl = scaffoldController() BottomSheetScaffold( - scaffoldState = newChatCtrl.state, - topBar = { ChatListToolbar(newChatCtrl, settings = { nav.navigate(Pages.Settings.route) }) }, + scaffoldState = scaffoldCtrl.state, + topBar = { + ChatListToolbar( + scaffoldCtrl, + settings = { scaffoldCtrl.toggleDrawer() } + ) + }, + drawerContent = { + SettingsView(chatModel, nav) + }, sheetPeekHeight = 0.dp, - sheetContent = { NewChatSheet(chatModel, newChatCtrl, nav) }, + sheetContent = { NewChatSheet(chatModel, scaffoldCtrl, nav) }, sheetShape = RoundedCornerShape(topStart = 18.dp, topEnd = 18.dp), ) { - Box { - Column( - modifier = Modifier - .padding(vertical = 8.dp) + Column( + modifier = Modifier + .padding(vertical = 8.dp) + .fillMaxSize() + .background(MaterialTheme.colors.background) + ) { + ChatList(chatModel, nav) + } + if (scaffoldCtrl.state.bottomSheetState.isExpanded) { + Surface( + Modifier .fillMaxSize() - .background(MaterialTheme.colors.background) - ) { - ChatList(chatModel, nav) - } - if (newChatCtrl.state.bottomSheetState.isExpanded) { - Surface( - Modifier - .fillMaxSize() - .clickable { newChatCtrl.collapse() }, - color = Color.Black.copy(alpha = 0.12F) - ) {} - } + .clickable { scaffoldCtrl.collapse() }, + color = Color.Black.copy(alpha = 0.12F) + ) {} } } } @@ -87,7 +100,8 @@ fun ChatListToolbar(newChatSheetCtrl: ScaffoldController, settings: () -> Unit) modifier = Modifier .fillMaxWidth() .padding(horizontal = 8.dp) - .height(60.dp)) { + .height(60.dp) + ) { IconButton(onClick = settings) { Icon( Icons.Outlined.Settings, @@ -118,7 +132,7 @@ fun goToChat(chatPreview: Chat, chatModel: ChatModel, navController: NavControll withApi { val cInfo = chatPreview.chatInfo val chat = chatModel.controller.apiGetChat(cInfo.chatType, cInfo.apiId) - if (chat != null ) { + if (chat != null) { chatModel.chatId.value = cInfo.id chatModel.chatItems = chat.chatItems.toMutableStateList() navController.navigate(Pages.Chat.route) @@ -135,12 +149,10 @@ fun ChatList(chatModel: ChatModel, navController: NavController) { modifier = Modifier.fillMaxWidth() ) { items(chatModel.chats) { chat -> - ChatPreviewView(chat) {goToChat(chat, chatModel, navController)} + ChatPreviewView(chat) { goToChat(chat, chatModel, navController) } } } } - - //@Preview //@Composable //fun PreviewChatListView() { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/helpers/CloseSheetBar.kt b/apps/android/app/src/main/java/chat/simplex/app/views/helpers/CloseSheetBar.kt index 1946536b14..0ee1884b67 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/helpers/CloseSheetBar.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/helpers/CloseSheetBar.kt @@ -1,5 +1,6 @@ package chat.simplex.app.views.helpers +import android.content.res.Configuration import androidx.compose.foundation.layout.* import androidx.compose.material.* import androidx.compose.material.icons.Icons @@ -32,6 +33,11 @@ fun CloseSheetBar(close: () -> Unit) { } @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) @Composable fun PreviewCloseSheetBar() { SimpleXTheme { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt index b0e3fde03e..a44c3b9664 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/SettingsView.kt @@ -1,16 +1,26 @@ package chat.simplex.app.views.usersettings +import android.content.res.Configuration +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.material.* +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.* import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.navigation.NavController import chat.simplex.app.Pages +import chat.simplex.app.R import chat.simplex.app.model.ChatModel import chat.simplex.app.model.Profile +import chat.simplex.app.ui.theme.HighOrLowlight import chat.simplex.app.ui.theme.SimpleXTheme @Composable @@ -19,62 +29,190 @@ fun SettingsView(chatModel: ChatModel, nav: NavController) { if (user != null) { SettingsLayout( profile = user.profile, - back = nav::popBackStack, navigate = nav::navigate ) } } -val simplexTeamUri = "simplex:/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23MCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%3D" +val simplexTeamUri = + "simplex:/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23MCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%3D" @Composable fun SettingsLayout( profile: Profile, - back: () -> Unit, navigate: (String) -> Unit ) { val uriHandler = LocalUriHandler.current - Column() { - Button(onClick = back) { - Text("Back") - } - Text("Your Settings") - Spacer(Modifier.height(4.dp)) + Column( + Modifier + .fillMaxSize() +// .background(MaterialTheme.colors.background) + .padding(8.dp) + ) { + Text( + "Your Settings", + style = MaterialTheme.typography.h1, + color = MaterialTheme.colors.onBackground + ) + Spacer(Modifier.height(30.dp)) - Text("YOU", style = MaterialTheme.typography.h4) - Button(onClick = { navigate(Pages.UserProfile.route) }) { - Text(profile.displayName) - } + SettingsSectionView( + content = { + Icon( + Icons.Outlined.AccountCircle, + contentDescription = "Avatar Placeholder", + tint = MaterialTheme.colors.onBackground, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Column { + Text( + profile.displayName, + style = MaterialTheme.typography.caption, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.onBackground + ) + Text( + profile.fullName, + color = MaterialTheme.colors.onBackground + ) + } + }, + func = { navigate(Pages.UserProfile.route) }, + height = 60.dp + ) + Divider(Modifier.padding(horizontal = 8.dp)) + SettingsSectionView( + content = { + Icon( + Icons.Outlined.QrCode, + contentDescription = "Address", + tint = HighOrLowlight, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Text( + "Your SimpleX contact address", + color = HighOrLowlight + ) + }, + func = { println("navigate to address") } + ) + Spacer(Modifier.height(24.dp)) - Text("HELP", style = MaterialTheme.typography.h4) - Button(onClick = { println("navigate to help") }) { - Text("How to use SimpleX Chat") - } - Button(onClick = { uriHandler.openUri(simplexTeamUri) }) { - Text("Get help & advice via chat") - } - Button(onClick = { uriHandler.openUri("mailto:chat@simplex.chat") }) { - Text("Ask questions via email") - } - Spacer(Modifier.height(10.dp)) + SettingsSectionView( + content = { + Icon( + Icons.Outlined.HelpOutline, + contentDescription = "Help", + tint = MaterialTheme.colors.onBackground, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Text( + "How to use SimpleX Chat", + color = MaterialTheme.colors.onBackground + ) + }, + func = { println("navigate to help") } + ) + Divider(Modifier.padding(horizontal = 8.dp)) + SettingsSectionView( + content = { + Icon( + Icons.Outlined.Tag, + contentDescription = "SimpleX Team", + tint = MaterialTheme.colors.onBackground, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Text( + "Get help & advice via chat", + color = MaterialTheme.colors.primary + ) + }, + func = { uriHandler.openUri(simplexTeamUri) } + ) + Divider(Modifier.padding(horizontal = 8.dp)) + SettingsSectionView( + content = { + Icon( + Icons.Outlined.Email, + contentDescription = "Email", + tint = MaterialTheme.colors.onBackground, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Text( + "Ask questions via email", + color = MaterialTheme.colors.primary + ) + }, + func = { uriHandler.openUri("mailto:chat@simplex.chat") } + ) + Spacer(Modifier.height(24.dp)) - Text("DEVELOP", style = MaterialTheme.typography.h4) - Button(onClick = { navigate(Pages.Terminal.route) }) { - Text("Chat console") - } - Button(onClick = { uriHandler.openUri("https://github.com/simplex-chat/simplex-chat") }) { - Text("Install SimpleX for terminal") + SettingsSectionView( + content = { + Icon( + painter = painterResource(id = R.drawable.ic_outline_terminal), + contentDescription = "Chat console", + tint = MaterialTheme.colors.onBackground, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Text( + "Chat console", + color = MaterialTheme.colors.onBackground + ) + }, + func = { navigate(Pages.Terminal.route) } + ) + Divider(Modifier.padding(horizontal = 8.dp)) + SettingsSectionView( + content = { + Icon( + painter = painterResource(id = R.drawable.ic_github), + contentDescription = "GitHub", + tint = MaterialTheme.colors.onBackground, + ) + Spacer(Modifier.padding(horizontal = 4.dp)) + Text( + "Install ", + color = MaterialTheme.colors.onBackground + ) + Text( + "SimpleX Chat for terminal", + color = MaterialTheme.colors.primary + ) + }, + func = { uriHandler.openUri("https://github.com/simplex-chat/simplex-chat") } + ) + } +} + +@Composable +fun SettingsSectionView(content: (@Composable () -> Unit), func: () -> Unit, height: Dp = 48.dp) { + Surface( + modifier = Modifier + .fillMaxWidth() + .clickable(onClick = func) + .height(height), + ) { + Row( + Modifier.padding(start = 8.dp), + verticalAlignment = Alignment.CenterVertically + ) { + content.invoke() } } } @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) @Composable fun PreviewSettingsLayout() { SimpleXTheme { SettingsLayout( profile = Profile.sampleData, - back = {}, navigate = {} ) } diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfileView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfileView.kt index dc646d3246..dffa108ce0 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfileView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfileView.kt @@ -1,19 +1,20 @@ package chat.simplex.app.views.usersettings +import android.content.res.Configuration +import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.* +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import androidx.navigation.NavController import chat.simplex.app.model.ChatModel import chat.simplex.app.model.Profile @@ -60,19 +61,23 @@ fun UserProfileLayout( ) { Column( modifier = Modifier - .padding(horizontal = 8.dp) - .fillMaxWidth(), + .fillMaxSize() + .background(MaterialTheme.colors.background) + .padding(horizontal = 8.dp), horizontalAlignment = Alignment.Start ) { CloseSheetBar(back) - Text("Your chat profile", + Text( + "Your chat profile", Modifier.padding(bottom = 24.dp), - style = MaterialTheme.typography.h1 + style = MaterialTheme.typography.h1, + color = MaterialTheme.colors.onBackground ) Text( "Your profile is stored on your device and shared only with your contacts.\n" + "SimpleX servers cannot see your profile.", - Modifier.padding(bottom = 24.dp) + Modifier.padding(bottom = 24.dp), + color = MaterialTheme.colors.onBackground ) if (editProfile) { var displayName by remember { mutableStateOf(profile.displayName) } @@ -88,7 +93,7 @@ fun UserProfileLayout( modifier = Modifier .padding(bottom = 24.dp) .fillMaxWidth(), - textStyle = TextStyle(fontSize = 16.sp), + textStyle = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.onBackground), keyboardOptions = KeyboardOptions( capitalization = KeyboardCapitalization.None, autoCorrect = false @@ -101,7 +106,7 @@ fun UserProfileLayout( modifier = Modifier .padding(bottom = 24.dp) .fillMaxWidth(), - textStyle = TextStyle(fontSize = 16.sp), + textStyle = MaterialTheme.typography.body1.copy(color = MaterialTheme.colors.onBackground), keyboardOptions = KeyboardOptions( capitalization = KeyboardCapitalization.None, autoCorrect = false @@ -113,7 +118,7 @@ fun UserProfileLayout( "Cancel", color = MaterialTheme.colors.primary, modifier = Modifier - .clickable(onClick = editProfileOff) + .clickable(onClick = editProfileOff), ) Spacer(Modifier.padding(horizontal = 8.dp)) Text( @@ -132,21 +137,29 @@ fun UserProfileLayout( Row( Modifier.padding(bottom = 24.dp) ) { - Text("Display name:") + Text( + "Display name:", + color = MaterialTheme.colors.onBackground + ) Spacer(Modifier.padding(horizontal = 4.dp)) Text( profile.displayName, - fontWeight = FontWeight.Bold + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.onBackground ) } Row( Modifier.padding(bottom = 24.dp) ) { - Text("Full name:") + Text( + "Full name:", + color = MaterialTheme.colors.onBackground + ) Spacer(Modifier.padding(horizontal = 4.dp)) Text( profile.fullName, - fontWeight = FontWeight.Bold + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.onBackground ) } Text( @@ -161,6 +174,12 @@ fun UserProfileLayout( } @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) + @Composable fun PreviewUserProfileLayoutEditOff() { SimpleXTheme { @@ -176,6 +195,11 @@ fun PreviewUserProfileLayoutEditOff() { } @Preview(showBackground = true) +@Preview( + uiMode = Configuration.UI_MODE_NIGHT_YES, + showBackground = true, + name = "Dark Mode" +) @Composable fun PreviewUserProfileLayoutEditOn() { SimpleXTheme { diff --git a/apps/android/app/src/main/res/drawable/ic_github.xml b/apps/android/app/src/main/res/drawable/ic_github.xml new file mode 100644 index 0000000000..1c7032037a --- /dev/null +++ b/apps/android/app/src/main/res/drawable/ic_github.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/apps/android/app/src/main/res/drawable/ic_outline_terminal.xml b/apps/android/app/src/main/res/drawable/ic_outline_terminal.xml new file mode 100644 index 0000000000..e03f112d70 --- /dev/null +++ b/apps/android/app/src/main/res/drawable/ic_outline_terminal.xml @@ -0,0 +1,10 @@ + + +