diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt index 18cdd60e9..b7c82f3fa 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt @@ -37,6 +37,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -146,7 +147,7 @@ private fun RenderTopRouteBar( baseChannel = it, showVideo = true, showBottomDiviser = true, - modifier = Modifier.padding(vertical = 8.dp, horizontal = 10.dp), + modifier = Modifier.padding(vertical = 8.dp, horizontal = 11.dp), accountViewModel = accountViewModel, nav = nav ) @@ -155,7 +156,7 @@ private fun RenderTopRouteBar( if (it != null) { ChatroomHeader( baseUser = it, - modifier = Modifier.padding(vertical = 4.dp, horizontal = 10.dp), + modifier = Modifier.padding(vertical = 4.dp, horizontal = 11.dp), accountViewModel = accountViewModel, nav = nav ) @@ -338,7 +339,8 @@ private fun LoggedInUserPictureDrawer( robot = pubkeyHex, model = profilePicture, contentDescription = stringResource(id = R.string.profile_image), - modifier = HeaderPictureModifier + modifier = HeaderPictureModifier, + contentScale = ContentScale.Crop ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt index 661dfe236..dc78166eb 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt @@ -33,12 +33,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.graphics.compositeOver import androidx.compose.ui.layout.onSizeChanged -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import androidx.lifecycle.map import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Note @@ -58,6 +56,7 @@ import com.vitorpamplona.amethyst.ui.theme.ChatBubbleMaxSizeModifier import com.vitorpamplona.amethyst.ui.theme.ChatBubbleShapeMe import com.vitorpamplona.amethyst.ui.theme.ChatBubbleShapeThem import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer +import com.vitorpamplona.amethyst.ui.theme.Font12SP import com.vitorpamplona.amethyst.ui.theme.ReactionRowHeightChat import com.vitorpamplona.amethyst.ui.theme.Size15dp import com.vitorpamplona.amethyst.ui.theme.Size25dp @@ -68,6 +67,8 @@ import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.subtleBorder import kotlinx.collections.immutable.persistentSetOf import kotlinx.collections.immutable.toImmutableSet +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch @OptIn(ExperimentalFoundationApi::class) @Composable @@ -575,18 +576,18 @@ private fun StatusRow( @Composable fun ChatTimeAgo(baseNote: Note) { - val context = LocalContext.current + val nowStr = stringResource(id = R.string.now) - val timeStr by remember(baseNote) { + val time by remember(baseNote) { derivedStateOf { - timeAgoShort(baseNote.createdAt() ?: 0, context = context) + timeAgoShort(baseNote.createdAt() ?: 0, nowStr) } } Text( - text = timeStr, + text = time, color = MaterialTheme.colors.placeholderText, - fontSize = 12.sp, + fontSize = Font12SP, maxLines = 1 ) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt index fccdf7ba8..9b3333e46 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt @@ -27,7 +27,7 @@ fun timeAgo(mills: Long?, context: Context): String { .replace("Yesterday", "1" + context.getString(R.string.d)) } -fun timeAgoShort(mills: Long?, context: Context): String { +fun timeAgoShort(mills: Long?, stringForNow: String): String { if (mills == null) return " " var humanReadable = DateUtils.getRelativeTimeSpanString( @@ -37,7 +37,7 @@ fun timeAgoShort(mills: Long?, context: Context): String { DateUtils.FORMAT_ABBREV_ALL ).toString() if (humanReadable.startsWith("In") || humanReadable.startsWith("0")) { - humanReadable = context.getString(R.string.now) + humanReadable = stringForNow } return humanReadable diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt index e4435cdef..b63b74840 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt @@ -3,6 +3,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.itemsIndexed @@ -11,6 +12,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.note.ChatroomMessageCompose @@ -86,6 +88,7 @@ fun ChatroomFeedLoaded( top = 10.dp, bottom = 10.dp ), + modifier = Modifier.fillMaxSize(), reverseLayout = true, state = listState ) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt index f82d36062..4123cf550 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt @@ -106,8 +106,8 @@ val UserNameMaxRowHeight = Modifier.fillMaxWidth() val Height4dpModifier = Modifier.height(4.dp) -val AccountPictureModifier = Modifier.width(55.dp).height(55.dp).clip(shape = CircleShape) -val HeaderPictureModifier = Modifier.width(34.dp).height(34.dp).clip(shape = CircleShape) +val AccountPictureModifier = Modifier.size(55.dp).clip(shape = CircleShape) +val HeaderPictureModifier = Modifier.size(34.dp).clip(shape = CircleShape) val ShowMoreRelaysButtonIconButtonModifier = Modifier.size(24.dp) val ShowMoreRelaysButtonIconModifier = Modifier.size(15.dp) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt index 57e8ed17f..828320955 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt @@ -30,6 +30,7 @@ val Typography = Typography( */ ) +val Font12SP = 12.sp val Font14SP = 14.sp val Font17SP = 17.sp