Skip to content

Commit b395094

Browse files
Merge pull request #1528 from session-foundation/fix/new-message-compose
Fix/new message compose
2 parents 53d34e2 + 21b6a34 commit b395094

File tree

12 files changed

+68
-17
lines changed

12 files changed

+68
-17
lines changed

app/src/main/java/org/thoughtcrime/securesms/home/startconversation/community/JoinCommunityScreen.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ private fun CommunityScreen(
183183
.fillMaxWidth()
184184
.qaTag(R.string.AccessibilityId_communityJoin),
185185
enabled = state.isJoinButtonEnabled,
186+
disabledColor = LocalColors.current.textSecondary,
186187
onClick = {
187188
sendCommand(JoinCommunityViewModel.Commands.JoinCommunity(
188189
state.communityUrl

app/src/main/java/org/thoughtcrime/securesms/home/startconversation/home/StartConversation.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ internal fun StartConversationScreen(
7474
text = annotatedStringResource(newMessageTitleTxt),
7575
textStyle = LocalType.current.xl,
7676
iconRes = R.drawable.ic_message_square,
77+
iconSize = LocalDimensions.current.iconMedium2,
7778
modifier = Modifier.qaTag(R.string.AccessibilityId_messageNew),
7879
onClick = {
7980
navigateTo(StartConversationDestination.NewMessage)
@@ -89,6 +90,7 @@ internal fun StartConversationScreen(
8990
text = annotatedStringResource(R.string.groupCreate),
9091
textStyle = LocalType.current.xl,
9192
iconRes = R.drawable.ic_users_group_custom,
93+
iconSize = LocalDimensions.current.iconMedium2,
9294
modifier = Modifier.qaTag(R.string.AccessibilityId_groupCreate),
9395
onClick = {
9496
navigateTo(StartConversationDestination.CreateGroup)
@@ -104,6 +106,7 @@ internal fun StartConversationScreen(
104106
text = annotatedStringResource(R.string.communityJoin),
105107
textStyle = LocalType.current.xl,
106108
iconRes = R.drawable.ic_globe,
109+
iconSize = LocalDimensions.current.iconMedium2,
107110
modifier = Modifier.qaTag(R.string.AccessibilityId_communityJoin),
108111
onClick = {
109112
navigateTo(StartConversationDestination.JoinCommunity)
@@ -119,6 +122,7 @@ internal fun StartConversationScreen(
119122
text = annotatedStringResource(R.string.sessionInviteAFriend),
120123
textStyle = LocalType.current.xl,
121124
iconRes = R.drawable.ic_user_round_plus,
125+
iconSize = LocalDimensions.current.iconMedium2,
122126
modifier = Modifier.qaTag(R.string.AccessibilityId_sessionInviteAFriendButton),
123127
onClick = {
124128
navigateTo(StartConversationDestination.InviteFriend)

app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessage.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ private fun EnterAccountId(
139139
.fillMaxWidth()
140140
.qaTag(R.string.next),
141141
enabled = state.isNextButtonEnabled,
142+
disabledColor = LocalColors.current.textSecondary,
142143
onClick = callbacks::onContinue
143144
) {
144145
LoadingArcOr(state.loading) {

app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsScreen.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import androidx.compose.ui.text.style.TextAlign
5959
import androidx.compose.ui.tooling.preview.Preview
6060
import androidx.compose.ui.tooling.preview.PreviewParameter
6161
import androidx.compose.ui.unit.dp
62+
import androidx.compose.ui.unit.sp
6263
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
6364
import com.bumptech.glide.integration.compose.GlideImage
6465
import network.loki.messenger.BuildConfig
@@ -107,6 +108,7 @@ import org.thoughtcrime.securesms.ui.ProBadgeText
107108
import org.thoughtcrime.securesms.ui.RadioOption
108109
import org.thoughtcrime.securesms.ui.components.AcccentOutlineCopyButton
109110
import org.thoughtcrime.securesms.ui.components.AccentOutlineButton
111+
import org.thoughtcrime.securesms.ui.components.AnnotatedTextWithIcon
110112
import org.thoughtcrime.securesms.ui.components.AppBarCloseIcon
111113
import org.thoughtcrime.securesms.ui.components.Avatar
112114
import org.thoughtcrime.securesms.ui.components.BaseBottomSheet
@@ -116,6 +118,7 @@ import org.thoughtcrime.securesms.ui.components.SessionOutlinedTextField
116118
import org.thoughtcrime.securesms.ui.components.SmallCircularProgressIndicator
117119
import org.thoughtcrime.securesms.ui.components.annotatedStringResource
118120
import org.thoughtcrime.securesms.ui.qaTag
121+
import org.thoughtcrime.securesms.ui.safeContentWidth
119122
import org.thoughtcrime.securesms.ui.theme.LocalColors
120123
import org.thoughtcrime.securesms.ui.theme.LocalDimensions
121124
import org.thoughtcrime.securesms.ui.theme.LocalType
@@ -252,16 +255,21 @@ fun Settings(
252255
Spacer(modifier = Modifier.height(LocalDimensions.current.spacing))
253256

254257
// name
255-
ProBadgeText(
258+
AnnotatedTextWithIcon(
256259
modifier = Modifier.qaTag(R.string.AccessibilityId_displayName)
260+
.fillMaxWidth()
261+
.safeContentWidth()
257262
.clickable(
258263
interactionSource = remember { MutableInteractionSource() },
259264
indication = null
260265
) {
261266
sendCommand(ShowUsernameDialog)
262267
},
263268
text = uiState.username,
264-
showBadge = uiState.showProBadge,
269+
iconRes = if(uiState.showProBadge) R.drawable.ic_pro_badge else null,
270+
onIconClick = null,
271+
iconSize = 53.sp to 24.sp,
272+
style = LocalType.current.h5,
265273
)
266274

267275
Spacer(modifier = Modifier.height(LocalDimensions.current.smallSpacing))

app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/ProSettingsHomeScreen.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ fun ProStats(
254254
verticalArrangement = Arrangement.spacedBy(LocalDimensions.current.smallSpacing)
255255
){
256256
Row(
257+
verticalAlignment = Alignment.CenterVertically,
257258
horizontalArrangement = Arrangement.spacedBy(LocalDimensions.current.xsSpacing)
258259
) {
259260
// groups updated
@@ -281,6 +282,7 @@ fun ProStats(
281282
}
282283

283284
Row(
285+
verticalAlignment = Alignment.CenterVertically,
284286
horizontalArrangement = Arrangement.spacedBy(LocalDimensions.current.xsSpacing)
285287
) {
286288
// Pro Badges
@@ -324,7 +326,7 @@ fun ProStatItem(
324326
Image(
325327
painter = painterResource(id = icon),
326328
contentDescription = null,
327-
modifier = Modifier.size(LocalDimensions.current.iconRowItem),
329+
modifier = Modifier.size(LocalDimensions.current.iconMedium2),
328330
colorFilter = ColorFilter.tint(LocalColors.current.accent)
329331
)
330332

app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ fun ItemButton(
264264
modifier: Modifier = Modifier,
265265
textStyle: TextStyle = LocalType.current.h8,
266266
iconTint: Color? = null,
267-
iconSize: Dp = LocalDimensions.current.iconRowItem,
267+
iconSize: Dp = LocalDimensions.current.iconMedium,
268268
subtitle: String? = null,
269269
@StringRes subtitleQaTag: Int? = null,
270270
enabled: Boolean = true,
@@ -1058,7 +1058,7 @@ fun IconActionRowItem(
10581058
textStyle: TextStyle = LocalType.current.h8,
10591059
subtitleStyle: TextStyle = LocalType.current.small,
10601060
iconColor: Color = LocalColors.current.text,
1061-
iconSize: Dp = LocalDimensions.current.iconRowItem,
1061+
iconSize: Dp = LocalDimensions.current.iconMedium,
10621062
minHeight: Dp = LocalDimensions.current.minItemButtonHeight,
10631063
paddingValues: PaddingValues = PaddingValues(horizontal = LocalDimensions.current.smallSpacing),
10641064
){

app/src/main/java/org/thoughtcrime/securesms/ui/components/BottomSheets.kt

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.thoughtcrime.securesms.ui.components
22

3+
import android.app.Activity
4+
import android.graphics.Color
5+
import android.os.Build
36
import androidx.annotation.DrawableRes
47
import androidx.annotation.StringRes
58
import androidx.compose.foundation.clickable
@@ -20,13 +23,18 @@ import androidx.compose.material3.Text
2023
import androidx.compose.material3.rememberModalBottomSheetState
2124
import androidx.compose.material3.rememberStandardBottomSheetState
2225
import androidx.compose.runtime.Composable
26+
import androidx.compose.runtime.DisposableEffect
27+
import androidx.compose.runtime.SideEffect
2328
import androidx.compose.ui.Alignment.Companion.CenterVertically
2429
import androidx.compose.ui.Modifier
30+
import androidx.compose.ui.platform.LocalView
2531
import androidx.compose.ui.res.painterResource
2632
import androidx.compose.ui.res.stringResource
2733
import androidx.compose.ui.text.style.TextAlign
2834
import androidx.compose.ui.tooling.preview.Preview
2935
import androidx.compose.ui.tooling.preview.PreviewParameter
36+
import androidx.compose.ui.window.DialogWindowProvider
37+
import androidx.core.view.WindowCompat
3038
import network.loki.messenger.R
3139
import org.thoughtcrime.securesms.ui.qaTag
3240
import org.thoughtcrime.securesms.ui.theme.LocalColors
@@ -58,9 +66,30 @@ fun BaseBottomSheet(
5866
topEnd = LocalDimensions.current.xsSpacing
5967
),
6068
dragHandle = dragHandle,
61-
containerColor = LocalColors.current.backgroundSecondary,
62-
content = content
63-
)
69+
containerColor = LocalColors.current.backgroundSecondary
70+
){
71+
// make sure the status and navigation bars follow our theme color's light vs dark
72+
val view = LocalView.current
73+
val isLight = LocalColors.current.isLight
74+
75+
DisposableEffect(Unit) {
76+
val window = (view.parent as? DialogWindowProvider)?.window
77+
if (window != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
78+
val prev = window.isNavigationBarContrastEnforced
79+
window.isNavigationBarContrastEnforced = false
80+
// Set status bar color
81+
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = isLight
82+
// Set navigation bar color
83+
WindowCompat.getInsetsController(window, view).isAppearanceLightNavigationBars = isLight
84+
85+
onDispose { window.isNavigationBarContrastEnforced = prev }
86+
} else {
87+
onDispose { }
88+
}
89+
}
90+
91+
content()
92+
}
6493
}
6594

6695

app/src/main/java/org/thoughtcrime/securesms/ui/components/Button.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,13 @@ fun Button(
162162
Button(text, onClick, ButtonType.Outline(LocalColors.current.accentText), modifier, enabled, minWidth = minWidth)
163163
}
164164

165-
@Composable fun AccentOutlineButton(modifier: Modifier = Modifier, enabled: Boolean = true, onClick: () -> Unit, content: @Composable RowScope.() -> Unit) {
166-
Button(onClick, ButtonType.Outline(LocalColors.current.accentText), modifier, enabled, content = content)
165+
@Composable fun AccentOutlineButton(modifier: Modifier = Modifier, enabled: Boolean = true,
166+
disabledColor: Color = LocalColors.current.disabled,
167+
onClick: () -> Unit, content: @Composable RowScope.() -> Unit) {
168+
Button(onClick, ButtonType.Outline(
169+
contentColor = LocalColors.current.accentText,
170+
disabledColor = disabledColor
171+
), modifier, enabled, content = content)
167172
}
168173

169174
@Composable fun SlimOutlineButton(modifier: Modifier = Modifier, color: Color = LocalColors.current.text, enabled: Boolean = true, onClick: () -> Unit, content: @Composable RowScope.() -> Unit) {

app/src/main/java/org/thoughtcrime/securesms/ui/components/ButtonType.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,19 @@ interface ButtonType {
2626

2727
class Outline(
2828
private val contentColor: Color,
29-
private val borderColor: Color = contentColor
29+
private val borderColor: Color = contentColor,
30+
private val disabledColor: Color? = null
3031
): ButtonType {
3132
@Composable
3233
override fun border(enabled: Boolean) = BorderStroke(
3334
width = LocalDimensions.current.borderStroke,
34-
color = if (enabled) borderColor else LocalColors.current.disabled
35+
color = if (enabled) borderColor else disabledColor ?: LocalColors.current.disabled
3536
)
3637
@Composable
3738
override fun buttonColors() = ButtonDefaults.buttonColors(
3839
contentColor = contentColor,
3940
containerColor = Color.Transparent,
40-
disabledContentColor = LocalColors.current.disabled,
41+
disabledContentColor = disabledColor ?: LocalColors.current.disabled,
4142
disabledContainerColor = Color.Transparent
4243
)
4344
}

app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ fun AnnotatedTextWithIcon(
259259
style: TextStyle = LocalType.current.base,
260260
color: Color = Color.Unspecified,
261261
iconSize: Pair<TextUnit, TextUnit> = 12.sp to 12.sp,
262-
iconPaddingValues: PaddingValues = PaddingValues(1.dp),
262+
iconPaddingValues: PaddingValues = PaddingValues(start = style.lineHeight.value.dp * 0.2f),
263263
onIconClick: (() -> Unit)? = null
264264
) {
265265
var inlineContent: Map<String, InlineTextContent> = mapOf()

0 commit comments

Comments
 (0)