android, desktop: consistent colors in themes (#3649)
This commit is contained in:
parent
9e87fe73a5
commit
fe865c5e11
@ -97,7 +97,8 @@ fun IncomingCallActivityView(m: ChatModel) {
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier
|
Modifier
|
||||||
.fillMaxSize(),
|
.fillMaxSize(),
|
||||||
color = MaterialTheme.colors.background
|
color = MaterialTheme.colors.background,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
if (showCallView) {
|
if (showCallView) {
|
||||||
Box {
|
Box {
|
||||||
@ -200,7 +201,8 @@ private fun SimpleXLogo() {
|
|||||||
private fun LockScreenCallButton(text: String, icon: Painter, color: Color, action: () -> Unit) {
|
private fun LockScreenCallButton(text: String, icon: Painter, color: Color, action: () -> Unit) {
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(10.dp),
|
shape = RoundedCornerShape(10.dp),
|
||||||
color = Color.Transparent
|
color = Color.Transparent,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
@ -227,7 +229,8 @@ fun PreviewIncomingCallLockScreenAlert() {
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier
|
Modifier
|
||||||
.fillMaxSize(),
|
.fillMaxSize(),
|
||||||
color = MaterialTheme.colors.background
|
color = MaterialTheme.colors.background,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
IncomingCallLockScreenAlertLayout(
|
IncomingCallLockScreenAlertLayout(
|
||||||
invitation = RcvCallInvitation(
|
invitation = RcvCallInvitation(
|
||||||
|
@ -44,7 +44,7 @@ data class SettingsViewState(
|
|||||||
fun AppScreen() {
|
fun AppScreen() {
|
||||||
SimpleXTheme {
|
SimpleXTheme {
|
||||||
ProvideWindowInsets(windowInsetsAnimationsEnabled = true) {
|
ProvideWindowInsets(windowInsetsAnimationsEnabled = true) {
|
||||||
Surface(color = MaterialTheme.colors.background) {
|
Surface(color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
MainScreen()
|
MainScreen()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -85,7 +85,7 @@ fun MainScreen() {
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AuthView() {
|
fun AuthView() {
|
||||||
Surface(color = MaterialTheme.colors.background) {
|
Surface(color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
Box(
|
Box(
|
||||||
Modifier.fillMaxSize(),
|
Modifier.fillMaxSize(),
|
||||||
contentAlignment = Alignment.Center
|
contentAlignment = Alignment.Center
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package chat.simplex.common
|
package chat.simplex.common
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.material.MaterialTheme
|
import androidx.compose.material.*
|
||||||
import androidx.compose.material.Surface
|
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import chat.simplex.common.model.*
|
import chat.simplex.common.model.*
|
||||||
@ -107,7 +106,7 @@ object AppLock {
|
|||||||
private fun setPasscode() {
|
private fun setPasscode() {
|
||||||
val appPrefs = ChatController.appPrefs
|
val appPrefs = ChatController.appPrefs
|
||||||
ModalManager.fullscreen.showCustomModal { close ->
|
ModalManager.fullscreen.showCustomModal { close ->
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
SetAppPasscodeView(
|
SetAppPasscodeView(
|
||||||
submit = {
|
submit = {
|
||||||
ChatModel.performLA.value = true
|
ChatModel.performLA.value = true
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package chat.simplex.common.ui.theme
|
package chat.simplex.common.ui.theme
|
||||||
|
|
||||||
|
import androidx.compose.material.LocalContentColor
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
|
||||||
val Purple200 = Color(0xFFBB86FC)
|
val Purple200 = Color(0xFFBB86FC)
|
||||||
@ -25,4 +27,5 @@ val WarningOrange = Color(255, 127, 0, 255)
|
|||||||
val WarningYellow = Color(255, 192, 0, 255)
|
val WarningYellow = Color(255, 192, 0, 255)
|
||||||
val FileLight = Color(183, 190, 199, 255)
|
val FileLight = Color(183, 190, 199, 255)
|
||||||
val FileDark = Color(101, 101, 106, 255)
|
val FileDark = Color(101, 101, 106, 255)
|
||||||
val MenuTextColorDark = Color.White.copy(alpha = 0.8f)
|
|
||||||
|
val MenuTextColor: Color @Composable get () = if (isInDarkTheme()) LocalContentColor.current.copy(alpha = 0.8f) else Color.Black
|
||||||
|
@ -283,27 +283,10 @@ fun SimpleXTheme(darkTheme: Boolean? = null, content: @Composable () -> Unit) {
|
|||||||
val theme by CurrentColors.collectAsState()
|
val theme by CurrentColors.collectAsState()
|
||||||
MaterialTheme(
|
MaterialTheme(
|
||||||
colors = theme.colors,
|
colors = theme.colors,
|
||||||
typography = Typography.copy(
|
typography = Typography,
|
||||||
h1 = Typography.h1.copy(color = theme.colors.onBackground),
|
|
||||||
h2 = Typography.h2.copy(color = theme.colors.onBackground),
|
|
||||||
h3 = Typography.h3.copy(color = theme.colors.onBackground),
|
|
||||||
h4 = Typography.h4.copy(color = theme.colors.onBackground),
|
|
||||||
h5 = Typography.h5.copy(color = theme.colors.onBackground),
|
|
||||||
h6 = Typography.h6.copy(color = theme.colors.onBackground),
|
|
||||||
subtitle1 = Typography.subtitle1.copy(color = theme.colors.onBackground),
|
|
||||||
subtitle2 = Typography.subtitle2.copy(color = theme.colors.onBackground),
|
|
||||||
body1 = Typography.body1.copy(color = theme.colors.onBackground),
|
|
||||||
body2 = Typography.body2.copy(color = theme.colors.onBackground),
|
|
||||||
button = Typography.button.copy(color = theme.colors.onBackground),
|
|
||||||
caption = Typography.caption.copy(color = theme.colors.onBackground),
|
|
||||||
overline = Typography.overline.copy(color = theme.colors.onBackground)
|
|
||||||
),
|
|
||||||
shapes = Shapes,
|
shapes = Shapes,
|
||||||
content = {
|
content = {
|
||||||
ProvideTextStyle(
|
CompositionLocalProvider(LocalContentColor provides MaterialTheme.colors.onBackground, content = content)
|
||||||
value = TextStyle(color = theme.colors.onBackground),
|
|
||||||
content = content
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package chat.simplex.common.views
|
package chat.simplex.common.views
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.material.MaterialTheme
|
import androidx.compose.material.*
|
||||||
import androidx.compose.material.Surface
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
|
||||||
@ -11,7 +10,8 @@ fun SplashView() {
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier
|
Modifier
|
||||||
.fillMaxSize(),
|
.fillMaxSize(),
|
||||||
color = MaterialTheme.colors.background
|
color = MaterialTheme.colors.background,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
// Image(
|
// Image(
|
||||||
// painter = painterResource(MR.images.logo),
|
// painter = painterResource(MR.images.logo),
|
||||||
|
@ -101,13 +101,16 @@ fun TerminalLayout(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
contentColor = LocalContentColor.current,
|
||||||
|
drawerContentColor = LocalContentColor.current,
|
||||||
modifier = Modifier.navigationBarsWithImePadding()
|
modifier = Modifier.navigationBarsWithImePadding()
|
||||||
) { contentPadding ->
|
) { contentPadding ->
|
||||||
Surface(
|
Surface(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(contentPadding)
|
.padding(contentPadding)
|
||||||
.fillMaxWidth(),
|
.fillMaxWidth(),
|
||||||
color = MaterialTheme.colors.background
|
color = MaterialTheme.colors.background,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
TerminalLog()
|
TerminalLog()
|
||||||
}
|
}
|
||||||
|
@ -239,7 +239,7 @@ fun OnboardingButtons(displayName: MutableState<String>, close: () -> Unit) {
|
|||||||
val enabled = canCreateProfile(displayName.value)
|
val enabled = canCreateProfile(displayName.value)
|
||||||
val createModifier: Modifier = Modifier.clickable(enabled) { createProfileOnboarding(chatModel, displayName.value, close) }.padding(8.dp)
|
val createModifier: Modifier = Modifier.clickable(enabled) { createProfileOnboarding(chatModel, displayName.value, close) }.padding(8.dp)
|
||||||
val createColor: Color = if (enabled) MaterialTheme.colors.primary else MaterialTheme.colors.secondary
|
val createColor: Color = if (enabled) MaterialTheme.colors.primary else MaterialTheme.colors.secondary
|
||||||
Surface(shape = RoundedCornerShape(20.dp), color = Color.Transparent) {
|
Surface(shape = RoundedCornerShape(20.dp), color = Color.Transparent, contentColor = LocalContentColor.current) {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically, modifier = createModifier) {
|
Row(verticalAlignment = Alignment.CenterVertically, modifier = createModifier) {
|
||||||
Text(stringResource(MR.strings.create_profile_button), style = MaterialTheme.typography.caption, color = createColor, fontWeight = FontWeight.Medium)
|
Text(stringResource(MR.strings.create_profile_button), style = MaterialTheme.typography.caption, color = createColor, fontWeight = FontWeight.Medium)
|
||||||
Icon(painterResource(MR.images.ic_arrow_forward_ios), stringResource(MR.strings.create_profile_button), tint = createColor)
|
Icon(painterResource(MR.images.ic_arrow_forward_ios), stringResource(MR.strings.create_profile_button), tint = createColor)
|
||||||
|
@ -85,7 +85,8 @@ fun IncomingCallInfo(invitation: RcvCallInvitation, chatModel: ChatModel) {
|
|||||||
private fun CallButton(text: String, icon: Painter, color: Color, action: () -> Unit) {
|
private fun CallButton(text: String, icon: Painter, color: Color, action: () -> Unit) {
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(10.dp),
|
shape = RoundedCornerShape(10.dp),
|
||||||
color = Color.Transparent
|
color = Color.Transparent,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
|
@ -570,6 +570,8 @@ fun ChatLayout(
|
|||||||
bottomBar = composeView,
|
bottomBar = composeView,
|
||||||
modifier = Modifier.navigationBarsWithImePadding(),
|
modifier = Modifier.navigationBarsWithImePadding(),
|
||||||
floatingActionButton = { floatingButton.value() },
|
floatingActionButton = { floatingButton.value() },
|
||||||
|
contentColor = LocalContentColor.current,
|
||||||
|
drawerContentColor = LocalContentColor.current,
|
||||||
) { contentPadding ->
|
) { contentPadding ->
|
||||||
BoxWithConstraints(Modifier
|
BoxWithConstraints(Modifier
|
||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
|
@ -258,7 +258,8 @@ private fun CustomDisappearingMessageDialog(
|
|||||||
|
|
||||||
DefaultDialog(onDismissRequest = { setShowDialog(false) }) {
|
DefaultDialog(onDismissRequest = { setShowDialog(false) }) {
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(corner = CornerSize(25.dp))
|
shape = RoundedCornerShape(corner = CornerSize(25.dp)),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
contentAlignment = Alignment.Center
|
contentAlignment = Alignment.Center
|
||||||
|
@ -131,7 +131,8 @@ fun CIFileView(
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier.drawRingModifier(angle, strokeColor, strokeWidth),
|
Modifier.drawRingModifier(angle, strokeColor, strokeWidth),
|
||||||
color = Color.Transparent,
|
color = Color.Transparent,
|
||||||
shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50))
|
shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50)),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(Modifier.size(32.dp))
|
Box(Modifier.size(32.dp))
|
||||||
}
|
}
|
||||||
|
@ -88,6 +88,7 @@ fun CIGroupInvitationView(
|
|||||||
}) else Modifier,
|
}) else Modifier,
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
color = if (sent) sentColor else receivedColor,
|
color = if (sent) sentColor else receivedColor,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
Modifier
|
Modifier
|
||||||
|
@ -142,6 +142,7 @@ fun DecryptionErrorItemFixButton(
|
|||||||
Modifier.clickable(onClick = onClick),
|
Modifier.clickable(onClick = onClick),
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
color = receivedColor,
|
color = receivedColor,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
Modifier.padding(vertical = 6.dp, horizontal = 12.dp),
|
Modifier.padding(vertical = 6.dp, horizontal = 12.dp),
|
||||||
@ -188,6 +189,7 @@ fun DecryptionErrorItem(
|
|||||||
Modifier.clickable(onClick = onClick),
|
Modifier.clickable(onClick = onClick),
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
color = receivedColor,
|
color = receivedColor,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
Modifier.padding(vertical = 6.dp, horizontal = 12.dp),
|
Modifier.padding(vertical = 6.dp, horizontal = 12.dp),
|
||||||
|
@ -153,7 +153,8 @@ private fun BoxScope.PlayButton(error: Boolean = false, onLongClick: () -> Unit,
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier.align(Alignment.Center),
|
Modifier.align(Alignment.Center),
|
||||||
color = Color.Black.copy(alpha = 0.25f),
|
color = Color.Black.copy(alpha = 0.25f),
|
||||||
shape = RoundedCornerShape(percent = 50)
|
shape = RoundedCornerShape(percent = 50),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
Modifier
|
Modifier
|
||||||
@ -264,7 +265,8 @@ private fun progressCircle(progress: Long, total: Long) {
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier.drawRingModifier(angle, strokeColor, strokeWidth),
|
Modifier.drawRingModifier(angle, strokeColor, strokeWidth),
|
||||||
color = Color.Transparent,
|
color = Color.Transparent,
|
||||||
shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50))
|
shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50)),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(Modifier.size(16.dp))
|
Box(Modifier.size(16.dp))
|
||||||
}
|
}
|
||||||
|
@ -225,7 +225,8 @@ private fun PlayPauseButton(
|
|||||||
Surface(
|
Surface(
|
||||||
Modifier.drawRingModifier(angle, strokeColor, strokeWidth),
|
Modifier.drawRingModifier(angle, strokeColor, strokeWidth),
|
||||||
color = if (sent) sentColor else receivedColor,
|
color = if (sent) sentColor else receivedColor,
|
||||||
shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50))
|
shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50)),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
Modifier
|
Modifier
|
||||||
|
@ -613,7 +613,7 @@ private fun ShrinkItemAction(revealed: MutableState<Boolean>, showMenu: MutableS
|
|||||||
@Composable
|
@Composable
|
||||||
fun ItemAction(text: String, icon: Painter, color: Color = Color.Unspecified, onClick: () -> Unit) {
|
fun ItemAction(text: String, icon: Painter, color: Color = Color.Unspecified, onClick: () -> Unit) {
|
||||||
val finalColor = if (color == Color.Unspecified) {
|
val finalColor = if (color == Color.Unspecified) {
|
||||||
if (isInDarkTheme()) MenuTextColorDark else Color.Black
|
MenuTextColor
|
||||||
} else color
|
} else color
|
||||||
DropdownMenuItem(onClick, contentPadding = PaddingValues(horizontal = DEFAULT_PADDING * 1.5f)) {
|
DropdownMenuItem(onClick, contentPadding = PaddingValues(horizontal = DEFAULT_PADDING * 1.5f)) {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
@ -633,7 +633,7 @@ fun ItemAction(text: String, icon: Painter, color: Color = Color.Unspecified, on
|
|||||||
@Composable
|
@Composable
|
||||||
fun ItemAction(text: String, icon: ImageVector, onClick: () -> Unit, color: Color = Color.Unspecified) {
|
fun ItemAction(text: String, icon: ImageVector, onClick: () -> Unit, color: Color = Color.Unspecified) {
|
||||||
val finalColor = if (color == Color.Unspecified) {
|
val finalColor = if (color == Color.Unspecified) {
|
||||||
if (isInDarkTheme()) MenuTextColorDark else Color.Black
|
MenuTextColor
|
||||||
} else color
|
} else color
|
||||||
DropdownMenuItem(onClick, contentPadding = PaddingValues(horizontal = DEFAULT_PADDING * 1.5f)) {
|
DropdownMenuItem(onClick, contentPadding = PaddingValues(horizontal = DEFAULT_PADDING * 1.5f)) {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
|
@ -23,6 +23,7 @@ fun DeletedItemView(ci: ChatItem, timedMessagesTTL: Int?) {
|
|||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
color = if (sent) sentColor else receivedColor,
|
color = if (sent) sentColor else receivedColor,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
||||||
|
@ -56,6 +56,7 @@ fun CIMsgError(ci: ChatItem, timedMessagesTTL: Int?, onClick: () -> Unit) {
|
|||||||
Modifier.clickable(onClick = onClick),
|
Modifier.clickable(onClick = onClick),
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
color = receivedColor,
|
color = receivedColor,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
||||||
|
@ -26,6 +26,7 @@ fun MarkedDeletedItemView(ci: ChatItem, timedMessagesTTL: Int?, revealed: Mutabl
|
|||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
color = if (ci.chatDir.sent) sentColor else receivedColor,
|
color = if (ci.chatDir.sent) sentColor else receivedColor,
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
Modifier.padding(horizontal = 12.dp, vertical = 6.dp),
|
||||||
|
@ -75,6 +75,8 @@ fun ChatListView(chatModel: ChatModel, settingsState: SettingsViewState, setPerf
|
|||||||
SettingsView(chatModel, setPerformLA, scaffoldState.drawerState)
|
SettingsView(chatModel, setPerformLA, scaffoldState.drawerState)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
contentColor = LocalContentColor.current,
|
||||||
|
drawerContentColor = LocalContentColor.current,
|
||||||
drawerScrimColor = MaterialTheme.colors.onSurface.copy(alpha = if (isInDarkTheme()) 0.16f else 0.32f),
|
drawerScrimColor = MaterialTheme.colors.onSurface.copy(alpha = if (isInDarkTheme()) 0.16f else 0.32f),
|
||||||
drawerGesturesEnabled = appPlatform.isAndroid,
|
drawerGesturesEnabled = appPlatform.isAndroid,
|
||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
|
@ -30,6 +30,8 @@ fun ShareListView(chatModel: ChatModel, settingsState: SettingsViewState, stoppe
|
|||||||
val endPadding = if (appPlatform.isDesktop) 56.dp else 0.dp
|
val endPadding = if (appPlatform.isDesktop) 56.dp else 0.dp
|
||||||
Scaffold(
|
Scaffold(
|
||||||
Modifier.padding(end = endPadding),
|
Modifier.padding(end = endPadding),
|
||||||
|
contentColor = LocalContentColor.current,
|
||||||
|
drawerContentColor = LocalContentColor.current,
|
||||||
scaffoldState = scaffoldState,
|
scaffoldState = scaffoldState,
|
||||||
topBar = { Column { ShareListToolbar(chatModel, userPickerState, stopped) { searchInList = it.trim() } } },
|
topBar = { Column { ShareListToolbar(chatModel, userPickerState, stopped) { searchInList = it.trim() } } },
|
||||||
) {
|
) {
|
||||||
|
@ -31,7 +31,6 @@ import chat.simplex.common.views.remote.*
|
|||||||
import chat.simplex.common.views.usersettings.doWithAuth
|
import chat.simplex.common.views.usersettings.doWithAuth
|
||||||
import chat.simplex.res.MR
|
import chat.simplex.res.MR
|
||||||
import dev.icerock.moko.resources.compose.stringResource
|
import dev.icerock.moko.resources.compose.stringResource
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
@ -303,7 +302,7 @@ fun UserProfileRow(u: User) {
|
|||||||
u.displayName,
|
u.displayName,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(start = 10.dp, end = 8.dp),
|
.padding(start = 10.dp, end = 8.dp),
|
||||||
color = if (isInDarkTheme()) MenuTextColorDark else Color.Black,
|
color = MenuTextColor,
|
||||||
fontWeight = if (u.activeUser) FontWeight.Medium else FontWeight.Normal
|
fontWeight = if (u.activeUser) FontWeight.Medium else FontWeight.Normal
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -346,7 +345,7 @@ fun RemoteHostRow(h: RemoteHostInfo) {
|
|||||||
Text(
|
Text(
|
||||||
h.hostDeviceName,
|
h.hostDeviceName,
|
||||||
modifier = Modifier.padding(start = 26.dp, end = 8.dp),
|
modifier = Modifier.padding(start = 26.dp, end = 8.dp),
|
||||||
color = if (h.activeHost) MaterialTheme.colors.onBackground else if (isInDarkTheme()) MenuTextColorDark else Color.Black,
|
color = if (h.activeHost) MaterialTheme.colors.onBackground else MenuTextColor,
|
||||||
fontSize = 14.sp,
|
fontSize = 14.sp,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -387,7 +386,7 @@ fun LocalDeviceRow(active: Boolean) {
|
|||||||
Text(
|
Text(
|
||||||
stringResource(MR.strings.this_device),
|
stringResource(MR.strings.this_device),
|
||||||
modifier = Modifier.padding(start = 26.dp, end = 8.dp),
|
modifier = Modifier.padding(start = 26.dp, end = 8.dp),
|
||||||
color = if (active) MaterialTheme.colors.onBackground else if (isInDarkTheme()) MenuTextColorDark else Color.Black,
|
color = if (active) MaterialTheme.colors.onBackground else MenuTextColor,
|
||||||
fontSize = 14.sp,
|
fontSize = 14.sp,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -399,7 +398,7 @@ private fun UseFromDesktopPickerItem(onClick: () -> Unit) {
|
|||||||
val text = generalGetString(MR.strings.settings_section_title_use_from_desktop).lowercase().capitalize(Locale.current)
|
val text = generalGetString(MR.strings.settings_section_title_use_from_desktop).lowercase().capitalize(Locale.current)
|
||||||
Icon(painterResource(MR.images.ic_desktop), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
Icon(painterResource(MR.images.ic_desktop), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
||||||
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
||||||
Text(text, color = if (isInDarkTheme()) MenuTextColorDark else Color.Black)
|
Text(text, color = MenuTextColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -409,7 +408,7 @@ private fun LinkAMobilePickerItem(onClick: () -> Unit) {
|
|||||||
val text = generalGetString(MR.strings.link_a_mobile)
|
val text = generalGetString(MR.strings.link_a_mobile)
|
||||||
Icon(painterResource(MR.images.ic_smartphone_300), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
Icon(painterResource(MR.images.ic_smartphone_300), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
||||||
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
||||||
Text(text, color = if (isInDarkTheme()) MenuTextColorDark else Color.Black)
|
Text(text, color = MenuTextColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,7 +418,7 @@ private fun CreateInitialProfile(onClick: () -> Unit) {
|
|||||||
val text = generalGetString(MR.strings.create_chat_profile)
|
val text = generalGetString(MR.strings.create_chat_profile)
|
||||||
Icon(painterResource(MR.images.ic_manage_accounts), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
Icon(painterResource(MR.images.ic_manage_accounts), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
||||||
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
||||||
Text(text, color = if (isInDarkTheme()) MenuTextColorDark else Color.Black)
|
Text(text, color = MenuTextColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,7 +428,7 @@ private fun SettingsPickerItem(onClick: () -> Unit) {
|
|||||||
val text = generalGetString(MR.strings.settings_section_title_settings).lowercase().capitalize(Locale.current)
|
val text = generalGetString(MR.strings.settings_section_title_settings).lowercase().capitalize(Locale.current)
|
||||||
Icon(painterResource(MR.images.ic_settings), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
Icon(painterResource(MR.images.ic_settings), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
||||||
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
||||||
Text(text, color = if (isInDarkTheme()) MenuTextColorDark else Color.Black)
|
Text(text, color = MenuTextColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -439,7 +438,7 @@ private fun CancelPickerItem(onClick: () -> Unit) {
|
|||||||
val text = generalGetString(MR.strings.cancel_verb)
|
val text = generalGetString(MR.strings.cancel_verb)
|
||||||
Icon(painterResource(MR.images.ic_close), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
Icon(painterResource(MR.images.ic_close), text, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
|
||||||
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
Spacer(Modifier.width(DEFAULT_PADDING + 6.dp))
|
||||||
Text(text, color = if (isInDarkTheme()) MenuTextColorDark else Color.Black)
|
Text(text, color = MenuTextColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,8 @@ fun CustomTimePickerDialog(
|
|||||||
) {
|
) {
|
||||||
DefaultDialog(onDismissRequest = cancel) {
|
DefaultDialog(onDismissRequest = cancel) {
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(corner = CornerSize(25.dp))
|
shape = RoundedCornerShape(corner = CornerSize(25.dp)),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
contentAlignment = Alignment.Center
|
contentAlignment = Alignment.Center
|
||||||
|
@ -70,7 +70,7 @@ fun <T> ExposedDropDownSetting(
|
|||||||
selectionOption.second + (if (label != null) " $label" else ""),
|
selectionOption.second + (if (label != null) " $label" else ""),
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis,
|
overflow = TextOverflow.Ellipsis,
|
||||||
color = if (isInDarkTheme()) MenuTextColorDark else Color.Black,
|
color = MenuTextColor,
|
||||||
fontSize = fontSize,
|
fontSize = fontSize,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package chat.simplex.common.views.helpers
|
package chat.simplex.common.views.helpers
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.material.MaterialTheme
|
import androidx.compose.material.*
|
||||||
import androidx.compose.material.Surface
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import chat.simplex.common.model.ChatController
|
import chat.simplex.common.model.ChatController
|
||||||
import chat.simplex.common.model.ChatModel
|
import chat.simplex.common.model.ChatModel
|
||||||
@ -50,7 +49,7 @@ fun authenticateWithPasscode(
|
|||||||
close()
|
close()
|
||||||
completed(LAResult.Error(generalGetString(MR.strings.authentication_cancelled)))
|
completed(LAResult.Error(generalGetString(MR.strings.authentication_cancelled)))
|
||||||
}
|
}
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
LocalAuthView(ChatModel, LocalAuthRequest(promptTitle, promptSubtitle, password, selfDestruct && ChatController.appPrefs.selfDestruct.get()) {
|
LocalAuthView(ChatModel, LocalAuthRequest(promptTitle, promptSubtitle, password, selfDestruct && ChatController.appPrefs.selfDestruct.get()) {
|
||||||
close()
|
close()
|
||||||
completed(it)
|
completed(it)
|
||||||
|
@ -26,7 +26,7 @@ fun ModalView(
|
|||||||
if (showClose) {
|
if (showClose) {
|
||||||
BackHandler(onBack = close)
|
BackHandler(onBack = close)
|
||||||
}
|
}
|
||||||
Surface(Modifier.fillMaxSize()) {
|
Surface(Modifier.fillMaxSize(), contentColor = LocalContentColor.current) {
|
||||||
Column(if (background != MaterialTheme.colors.background) Modifier.background(background) else Modifier.themedBackground()) {
|
Column(if (background != MaterialTheme.colors.background) Modifier.background(background) else Modifier.themedBackground()) {
|
||||||
CloseSheetBar(close, showClose, endButtons)
|
CloseSheetBar(close, showClose, endButtons)
|
||||||
Box(modifier) { content() }
|
Box(modifier) { content() }
|
||||||
|
@ -175,7 +175,7 @@ fun ActionButton(
|
|||||||
disabled: Boolean = false,
|
disabled: Boolean = false,
|
||||||
click: () -> Unit = {}
|
click: () -> Unit = {}
|
||||||
) {
|
) {
|
||||||
Surface(shape = RoundedCornerShape(18.dp), color = Color.Transparent) {
|
Surface(shape = RoundedCornerShape(18.dp), color = Color.Transparent, contentColor = LocalContentColor.current) {
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
.clickable(onClick = click)
|
.clickable(onClick = click)
|
||||||
@ -220,7 +220,7 @@ fun ActionButton(
|
|||||||
disabled: Boolean = false,
|
disabled: Boolean = false,
|
||||||
click: () -> Unit = {}
|
click: () -> Unit = {}
|
||||||
) {
|
) {
|
||||||
Surface(modifier, shape = RoundedCornerShape(18.dp)) {
|
Surface(modifier, shape = RoundedCornerShape(18.dp), contentColor = LocalContentColor.current) {
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
|
@ -380,7 +380,8 @@ fun SettingsSectionFooter(revert: () -> Unit, save: () -> Unit, disabled: Boolea
|
|||||||
fun FooterButton(icon: Painter, title: String, action: () -> Unit, disabled: Boolean) {
|
fun FooterButton(icon: Painter, title: String, action: () -> Unit, disabled: Boolean) {
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(20.dp),
|
shape = RoundedCornerShape(20.dp),
|
||||||
color = Color.Black.copy(alpha = 0f)
|
color = Color.Black.copy(alpha = 0f),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
val modifier = if (disabled) Modifier else Modifier.clickable { action() }
|
val modifier = if (disabled) Modifier else Modifier.clickable { action() }
|
||||||
Row(
|
Row(
|
||||||
|
@ -383,7 +383,7 @@ fun SimplexLockView(
|
|||||||
}
|
}
|
||||||
LAMode.PASSCODE -> {
|
LAMode.PASSCODE -> {
|
||||||
ModalManager.fullscreen.showCustomModal { close ->
|
ModalManager.fullscreen.showCustomModal { close ->
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
SetAppPasscodeView(
|
SetAppPasscodeView(
|
||||||
submit = {
|
submit = {
|
||||||
laLockDelay.set(30)
|
laLockDelay.set(30)
|
||||||
@ -427,7 +427,7 @@ fun SimplexLockView(
|
|||||||
when (laResult) {
|
when (laResult) {
|
||||||
LAResult.Success -> {
|
LAResult.Success -> {
|
||||||
ModalManager.fullscreen.showCustomModal { close ->
|
ModalManager.fullscreen.showCustomModal { close ->
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
SetAppPasscodeView(
|
SetAppPasscodeView(
|
||||||
reason = generalGetString(MR.strings.la_app_passcode),
|
reason = generalGetString(MR.strings.la_app_passcode),
|
||||||
submit = {
|
submit = {
|
||||||
@ -451,7 +451,7 @@ fun SimplexLockView(
|
|||||||
when (laResult) {
|
when (laResult) {
|
||||||
LAResult.Success -> {
|
LAResult.Success -> {
|
||||||
ModalManager.fullscreen.showCustomModal { close ->
|
ModalManager.fullscreen.showCustomModal { close ->
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
SetAppPasscodeView(
|
SetAppPasscodeView(
|
||||||
passcodeKeychain = ksSelfDestructPassword,
|
passcodeKeychain = ksSelfDestructPassword,
|
||||||
reason = generalGetString(MR.strings.self_destruct),
|
reason = generalGetString(MR.strings.self_destruct),
|
||||||
@ -487,7 +487,7 @@ fun SimplexLockView(
|
|||||||
}
|
}
|
||||||
LAMode.PASSCODE -> {
|
LAMode.PASSCODE -> {
|
||||||
ModalManager.fullscreen.showCustomModal { close ->
|
ModalManager.fullscreen.showCustomModal { close ->
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
SetAppPasscodeView(
|
SetAppPasscodeView(
|
||||||
submit = {
|
submit = {
|
||||||
laLockDelay.set(30)
|
laLockDelay.set(30)
|
||||||
@ -598,7 +598,7 @@ private fun EnableSelfDestruct(
|
|||||||
selfDestruct: SharedPreference<Boolean>,
|
selfDestruct: SharedPreference<Boolean>,
|
||||||
close: () -> Unit
|
close: () -> Unit
|
||||||
) {
|
) {
|
||||||
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
|
Surface(Modifier.fillMaxSize(), color = MaterialTheme.colors.background, contentColor = LocalContentColor.current) {
|
||||||
SetAppPasscodeView(
|
SetAppPasscodeView(
|
||||||
passcodeKeychain = ksSelfDestructPassword, title = generalGetString(MR.strings.set_passcode), reason = generalGetString(MR.strings.enabled_self_destruct_passcode),
|
passcodeKeychain = ksSelfDestructPassword, title = generalGetString(MR.strings.set_passcode), reason = generalGetString(MR.strings.enabled_self_destruct_passcode),
|
||||||
submit = {
|
submit = {
|
||||||
|
@ -155,7 +155,8 @@ fun RTCServersLayout(
|
|||||||
.height(160.dp)
|
.height(160.dp)
|
||||||
.fillMaxWidth(),
|
.fillMaxWidth(),
|
||||||
shape = RoundedCornerShape(10.dp),
|
shape = RoundedCornerShape(10.dp),
|
||||||
border = BorderStroke(1.dp, MaterialTheme.colors.secondaryVariant)
|
border = BorderStroke(1.dp, MaterialTheme.colors.secondaryVariant),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
SelectionContainer(
|
SelectionContainer(
|
||||||
Modifier.verticalScroll(rememberScrollState())
|
Modifier.verticalScroll(rememberScrollState())
|
||||||
|
@ -155,7 +155,7 @@ fun UserAddressView(
|
|||||||
contentAlignment = Alignment.Center
|
contentAlignment = Alignment.Center
|
||||||
) {
|
) {
|
||||||
if (userAddress.value != null) {
|
if (userAddress.value != null) {
|
||||||
Surface(Modifier.size(50.dp), color = MaterialTheme.colors.background.copy(0.9f), shape = RoundedCornerShape(50)){}
|
Surface(Modifier.size(50.dp), color = MaterialTheme.colors.background.copy(0.9f), contentColor = LocalContentColor.current, shape = RoundedCornerShape(50)){}
|
||||||
}
|
}
|
||||||
CircularProgressIndicator(
|
CircularProgressIndicator(
|
||||||
Modifier
|
Modifier
|
||||||
|
@ -167,7 +167,8 @@ actual fun PlatformTextField(
|
|||||||
decorationBox = { innerTextField ->
|
decorationBox = { innerTextField ->
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(18.dp),
|
shape = RoundedCornerShape(18.dp),
|
||||||
border = BorderStroke(1.dp, MaterialTheme.colors.secondary)
|
border = BorderStroke(1.dp, MaterialTheme.colors.secondary),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
Modifier.background(MaterialTheme.colors.background),
|
Modifier.background(MaterialTheme.colors.background),
|
||||||
|
@ -2,8 +2,7 @@ package chat.simplex.common.views.helpers
|
|||||||
|
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.MaterialTheme
|
import androidx.compose.material.*
|
||||||
import androidx.compose.material.Surface
|
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.input.key.*
|
import androidx.compose.ui.input.key.*
|
||||||
@ -39,7 +38,8 @@ actual fun DefaultDialog(
|
|||||||
) {
|
) {
|
||||||
Surface(
|
Surface(
|
||||||
Modifier
|
Modifier
|
||||||
.border(border = BorderStroke(1.dp, MaterialTheme.colors.secondary.copy(alpha = 0.3F)), shape = RoundedCornerShape(8))
|
.border(border = BorderStroke(1.dp, MaterialTheme.colors.secondary.copy(alpha = 0.3F)), shape = RoundedCornerShape(8)),
|
||||||
|
contentColor = LocalContentColor.current
|
||||||
) {
|
) {
|
||||||
content()
|
content()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user