diff --git a/app/src/main/java/chat/revolt/composables/emoji/EmojiPicker.kt b/app/src/main/java/chat/revolt/composables/emoji/EmojiPicker.kt
index 7a3e36a7..1b2dc4c0 100644
--- a/app/src/main/java/chat/revolt/composables/emoji/EmojiPicker.kt
+++ b/app/src/main/java/chat/revolt/composables/emoji/EmojiPicker.kt
@@ -422,19 +422,19 @@ fun EmojiPicker(
modifier = Modifier.fillMaxWidth()
) {
Text(
- text = "Recently Used",
- style = MaterialTheme.typography.labelMedium,
- modifier = Modifier.padding(start = 8.dp, bottom = 4.dp)
+ text = stringResource(R.string.emoji_picker_recently_used),
+ style = MaterialTheme.typography.labelSmall,
+ modifier = Modifier.padding(start = 8.dp, bottom = 2.dp)
)
Row(
modifier = Modifier
.horizontalScroll(rememberScrollState())
- .padding(horizontal = 8.dp, vertical = 4.dp)
+ .padding(horizontal = 8.dp, vertical = 2.dp)
.fillMaxWidth(),
- horizontalArrangement = Arrangement.spacedBy(8.dp)
+ horizontalArrangement = Arrangement.spacedBy(4.dp)
) {
- recentEmojis.forEach { emoji ->
+ recentEmojis.take(8).forEach { emoji ->
if (emoji.matches(Regex(":[0-9A-Z]{26}:"))) {
val emojiId = emoji.removeSurrounding(":", ":")
RemoteImage(
@@ -448,13 +448,13 @@ fun EmojiPicker(
EmojiUsageTracker.recordUsage(emoji)
onEmojiSelected(emoji)
}
- .padding(8.dp)
- .size(32.dp)
+ .padding(4.dp)
+ .size(28.dp)
)
} else {
Text(
text = emoji,
- fontSize = 20.sp,
+ fontSize = 18.sp,
modifier = Modifier
.clip(CircleShape)
.clickable {
@@ -462,15 +462,15 @@ fun EmojiPicker(
EmojiUsageTracker.recordUsage(emoji)
onEmojiSelected(emoji)
}
- .padding(8.dp)
- .size(32.dp),
+ .padding(4.dp)
+ .size(28.dp),
textAlign = TextAlign.Center
)
}
}
}
- Spacer(Modifier.height(8.dp))
+ Spacer(Modifier.height(4.dp))
}
}
diff --git a/app/src/main/java/chat/revolt/composables/generic/EmojiAwareText.kt b/app/src/main/java/chat/revolt/composables/generic/EmojiAwareText.kt
index 54166958..284f24b5 100644
--- a/app/src/main/java/chat/revolt/composables/generic/EmojiAwareText.kt
+++ b/app/src/main/java/chat/revolt/composables/generic/EmojiAwareText.kt
@@ -1,14 +1,12 @@
package chat.revolt.composables.generic
import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.text.InlineTextContent
import androidx.compose.foundation.text.appendInlineContent
import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.Placeholder
import androidx.compose.ui.text.PlaceholderVerticalAlign
@@ -17,6 +15,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.unit.isUnspecified
import chat.revolt.api.REVOLT_FILES
+import chat.revolt.composables.generic.RemoteImage
/**
* Text composable that automatically detects and renders custom emojis in the format :ULID:
@@ -31,7 +30,7 @@ fun EmojiAwareText(
onTextLayout: ((androidx.compose.ui.text.TextLayoutResult) -> Unit)? = null
) {
val fontSize = LocalTextStyle.current.fontSize
- val emojiSize = if (fontSize.isUnspecified) 16.sp else fontSize
+ val emojiSize = if (fontSize.isUnspecified) 24.sp else (fontSize * 1.5f)
val customEmojiRegex = Regex(":([0-9A-HJKMNP-TV-Z]{26}):")
val matches = customEmojiRegex.findAll(text.text).toList()
@@ -42,6 +41,15 @@ fun EmojiAwareText(
modifier = modifier,
maxLines = maxLines,
inlineContent = inlineContent,
+ style = LocalTextStyle.current.copy(
+ lineHeight = if (LocalTextStyle.current.lineHeight.isUnspecified) {
+ (LocalTextStyle.current.fontSize * 1.5f)
+ } else {
+ val currentLineHeight = LocalTextStyle.current.lineHeight
+ val minLineHeight = LocalTextStyle.current.fontSize * 1.5f
+ if (currentLineHeight.value < minLineHeight.value) minLineHeight else currentLineHeight
+ }
+ ),
onTextLayout = onTextLayout ?: {}
)
return
@@ -98,7 +106,7 @@ fun EmojiAwareText(
placeholderKey to InlineTextContent(
placeholder = Placeholder(
width = emojiSize,
- height = emojiSize,
+ height = emojiSize * 1.5f,
placeholderVerticalAlign = PlaceholderVerticalAlign.Center
)
) {
@@ -106,8 +114,7 @@ fun EmojiAwareText(
url = "$REVOLT_FILES/emojis/$emojiId",
description = ":$emojiId:",
modifier = Modifier
- .size(emojiSize.value.dp)
- .clip(CircleShape)
+ .size(width = emojiSize.value.dp, height = (emojiSize.value * 1.5f).dp)
)
}
}
@@ -119,6 +126,15 @@ fun EmojiAwareText(
inlineContent = mergedInlineContent,
modifier = modifier,
maxLines = maxLines,
+ style = LocalTextStyle.current.copy(
+ lineHeight = if (LocalTextStyle.current.lineHeight.isUnspecified) {
+ (LocalTextStyle.current.fontSize * 1.5f)
+ } else {
+ val currentLineHeight = LocalTextStyle.current.lineHeight
+ val minLineHeight = LocalTextStyle.current.fontSize * 1.5f
+ if (currentLineHeight.value < minLineHeight.value) minLineHeight else currentLineHeight
+ }
+ ),
onTextLayout = onTextLayout ?: {}
)
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6e89fee9..4e143372 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -620,6 +620,7 @@
Dark skin tone
Search results
Clear search
+ Recently Used
Join the voice channel
Start the call