Skip to content

Commit 135ef44

Browse files
authored
style(direct-send): update unread indicator to be left aligned (#911)
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 26294b5 commit 135ef44

1 file changed

Lines changed: 47 additions & 39 deletions

File tree

  • apps/flipcash/features/direct-send/src/main/kotlin/com/flipcash/app/directsend/internal/screens

apps/flipcash/features/direct-send/src/main/kotlin/com/flipcash/app/directsend/internal/screens/ContactListScreen.kt

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.compose.animation.fadeIn
55
import androidx.compose.animation.fadeOut
66
import androidx.compose.animation.togetherWith
77
import androidx.compose.foundation.background
8+
import androidx.compose.foundation.clickable
89
import androidx.compose.foundation.layout.Arrangement
910
import androidx.compose.foundation.layout.Box
1011
import androidx.compose.foundation.layout.Column
@@ -15,6 +16,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
1516
import androidx.compose.foundation.layout.height
1617
import androidx.compose.foundation.layout.padding
1718
import androidx.compose.foundation.layout.requiredSize
19+
import androidx.compose.foundation.layout.requiredWidth
1820
import androidx.compose.foundation.layout.size
1921
import androidx.compose.foundation.lazy.LazyColumn
2022
import androidx.compose.foundation.lazy.itemsIndexed
@@ -41,6 +43,7 @@ import androidx.compose.ui.tooling.preview.PreviewWrapper
4143
import androidx.compose.ui.unit.dp
4244
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4345
import com.flipcash.app.contacts.device.DeviceContact
46+
import com.flipcash.app.contacts.ui.ContactAvatar
4447
import com.flipcash.app.core.AppRoute
4548
import com.flipcash.app.core.send.SendResult
4649
import com.flipcash.app.core.send.SendStep
@@ -59,13 +62,9 @@ import com.getcode.ui.components.AppBarDefaults
5962
import com.getcode.ui.components.AppBarWithTitle
6063
import com.getcode.ui.components.CircularIconButton
6164
import com.getcode.ui.components.SearchInput
62-
import androidx.compose.foundation.clickable
63-
import com.flipcash.app.contacts.ui.ContactAvatar
64-
import com.flipcash.app.core.chat.ChatIdentifier
6565
import com.getcode.ui.core.verticalScrollStateGradient
6666
import com.getcode.ui.theme.CodeScaffold
6767
import kotlinx.coroutines.flow.filterIsInstance
68-
import kotlinx.coroutines.flow.map
6968

7069

7170
@Composable
@@ -298,37 +297,50 @@ private fun ContactRowItem(
298297
modifier = Modifier
299298
.fillMaxWidth()
300299
.clickable(onClick = onClick)
301-
.padding(
302-
vertical = CodeTheme.dimens.inset,
303-
horizontal = CodeTheme.dimens.inset,
304-
),
300+
.padding(vertical = CodeTheme.dimens.inset)
301+
.padding(end = CodeTheme.dimens.inset),
305302
verticalAlignment = Alignment.CenterVertically,
306303
horizontalArrangement = Arrangement.spacedBy(CodeTheme.dimens.grid.x3),
307304
) {
308-
if (isNonContactDm && contact.photoUri == null) {
309-
Box(
310-
modifier = Modifier
311-
.requiredSize(CodeTheme.dimens.staticGrid.x8)
312-
.clip(CircleShape)
313-
.background(Brush.linearGradient(CodeTheme.colors.contactAvatar.colors)),
314-
contentAlignment = Alignment.Center,
315-
) {
316-
Icon(
317-
imageVector = Icons.Default.Person,
318-
contentDescription = null,
319-
tint = CodeTheme.colors.textSecondary,
320-
modifier = Modifier.size(CodeTheme.dimens.staticGrid.x5),
305+
Row(
306+
verticalAlignment = Alignment.CenterVertically,
307+
) {
308+
if (unreadCount > 0) {
309+
UnreadBadge(
310+
modifier = Modifier.padding(
311+
start = CodeTheme.dimens.grid.x1,
312+
end = CodeTheme.dimens.grid.x1,
313+
),
314+
count = unreadCount)
315+
} else {
316+
Box(modifier = Modifier.requiredWidth(CodeTheme.dimens.inset))
317+
}
318+
if (isNonContactDm && contact.photoUri == null) {
319+
Box(
320+
modifier = Modifier
321+
.requiredSize(CodeTheme.dimens.staticGrid.x8)
322+
.clip(CircleShape)
323+
.background(Brush.linearGradient(CodeTheme.colors.contactAvatar.colors)),
324+
contentAlignment = Alignment.Center,
325+
) {
326+
Icon(
327+
imageVector = Icons.Default.Person,
328+
contentDescription = null,
329+
tint = CodeTheme.colors.textSecondary,
330+
modifier = Modifier.size(CodeTheme.dimens.staticGrid.x5),
331+
)
332+
}
333+
} else {
334+
ContactAvatar(
335+
photoUri = contact.photoUri,
336+
displayName = contact.displayName,
337+
modifier = Modifier
338+
.requiredSize(CodeTheme.dimens.staticGrid.x8)
339+
.clip(CircleShape),
321340
)
322341
}
323-
} else {
324-
ContactAvatar(
325-
photoUri = contact.photoUri,
326-
displayName = contact.displayName,
327-
modifier = Modifier
328-
.requiredSize(CodeTheme.dimens.staticGrid.x8)
329-
.clip(CircleShape),
330-
)
331342
}
343+
332344
Column(modifier = Modifier.weight(1f)) {
333345
Text(
334346
text = contact.displayName,
@@ -349,15 +361,11 @@ private fun ContactRowItem(
349361
}
350362

351363
if (isOnFlipcash) {
352-
if (unreadCount > 0) {
353-
UnreadBadge(count = unreadCount)
354-
} else {
355-
Icon(
356-
painter = painterResource(id = R.drawable.ic_chevron_right),
357-
contentDescription = null,
358-
tint = CodeTheme.colors.textSecondary,
359-
)
360-
}
364+
Icon(
365+
painter = painterResource(id = R.drawable.ic_chevron_right),
366+
contentDescription = null,
367+
tint = CodeTheme.colors.textSecondary,
368+
)
361369
} else {
362370
Text(
363371
modifier = Modifier
@@ -394,7 +402,7 @@ private fun ContactRowItem(
394402
private fun UnreadBadge(count: Int, modifier: Modifier = Modifier) {
395403
Box(
396404
modifier = modifier
397-
.size(CodeTheme.dimens.grid.x4)
405+
.size(CodeTheme.dimens.grid.x2)
398406
.background(
399407
color = CodeTheme.colors.indicator,
400408
shape = CircleShape,

0 commit comments

Comments
 (0)