From b46dbe782e3d1cee80d9b85d0498dc9f3879fcb1 Mon Sep 17 00:00:00 2001 From: Wing <44992537+wingio@users.noreply.github.com> Date: Mon, 4 Dec 2023 21:23:59 -0500 Subject: [PATCH] Add explanatory comments to certain lines in the utils package --- .../xyz/wingio/dimett/utils/CustomTabUtils.kt | 6 +++--- .../java/xyz/wingio/dimett/utils/EmojiUtils.kt | 12 +++++++----- .../java/xyz/wingio/dimett/utils/TextUtils.kt | 16 ++++++++++++---- .../main/java/xyz/wingio/dimett/utils/Utils.kt | 5 +++-- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/xyz/wingio/dimett/utils/CustomTabUtils.kt b/app/src/main/java/xyz/wingio/dimett/utils/CustomTabUtils.kt index 6b6dc41..613de8d 100644 --- a/app/src/main/java/xyz/wingio/dimett/utils/CustomTabUtils.kt +++ b/app/src/main/java/xyz/wingio/dimett/utils/CustomTabUtils.kt @@ -22,9 +22,9 @@ private val Context.defaultBrowserPackage: String? .queryIntentActivities( Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://")), 0 - ) - .firstOrNull() - ?.activityInfo?.packageName + ) // All apps that can open `http://` uris (Usually only browsers) + .firstOrNull() // The default browser app is usually first + ?.activityInfo?.packageName // We only need the package name mDefaultBrowserPackage } else mDefaultBrowserPackage diff --git a/app/src/main/java/xyz/wingio/dimett/utils/EmojiUtils.kt b/app/src/main/java/xyz/wingio/dimett/utils/EmojiUtils.kt index bc0bb2a..9597fc2 100644 --- a/app/src/main/java/xyz/wingio/dimett/utils/EmojiUtils.kt +++ b/app/src/main/java/xyz/wingio/dimett/utils/EmojiUtils.kt @@ -20,8 +20,8 @@ object EmojiUtils : KoinComponent { * Parses `assets/emoji.json` and returns a map of emoji codepoints to the Twemoji versions resource name located in `res/raw` */ val emojis by lazy { - val _json = String(context.assets.open("emoji.json").readBytes()) - json.decodeFromString(_json).emoji + val _json = String(context.assets.open("emoji.json").readBytes()) // Read emoji.json to a String + json.decodeFromString(_json).emoji // Decode the string into a more useful format } /** @@ -31,9 +31,11 @@ object EmojiUtils : KoinComponent { */ val regex by lazy { "^(${ - emojis.keys.sortedByDescending { it.length }.joinToString("|") { emoji -> - Pattern.quote(emoji) - } + emojis.keys + .sortedByDescending { it.length } // Ensure that we match emoji with modifiers (such as skin tone) before the default version of the emoji + .joinToString("|") { emoji -> + Pattern.quote(emoji) + } })" } diff --git a/app/src/main/java/xyz/wingio/dimett/utils/TextUtils.kt b/app/src/main/java/xyz/wingio/dimett/utils/TextUtils.kt index bedb056..559ab96 100644 --- a/app/src/main/java/xyz/wingio/dimett/utils/TextUtils.kt +++ b/app/src/main/java/xyz/wingio/dimett/utils/TextUtils.kt @@ -35,7 +35,7 @@ import xyz.wingio.syntakts.compose.rememberRendered fun inlineContent( textStyle: TextStyle = LocalTextStyle.current ): Map { - val emoteSize = remember(textStyle) { (textStyle.fontSize.value + 2f).sp } + val emoteSize = remember(textStyle) { (textStyle.fontSize.value + 2f).sp } // Make emojis a little bigger than the surrounding text val ctx = LocalContext.current return remember(emoteSize, ctx) { @@ -61,9 +61,16 @@ fun inlineContent( placeholderVerticalAlign = PlaceholderVerticalAlign.Center, ), ) { emoji -> - val emojiImage = BitmapDrawable(EmojiUtils.emojis[emoji]?.let { - ctx.getResId(it) - }?.let { ctx.resources.openRawResource(it) }).bitmap.asImageBitmap() + val emojiImage = BitmapDrawable( + /* res = */ ctx.resources, + /* is = */ EmojiUtils.emojis[emoji] + ?.let { rawResourceName -> + ctx.getResId(rawResourceName) + } + ?.let { rawResId -> + ctx.resources.openRawResource(rawResId) + } + ).bitmap.asImageBitmap() Image( bitmap = emojiImage, @@ -93,6 +100,7 @@ fun getString( actionHandler: (actionName: String) -> Unit = {} ): AnnotatedString { val _string = stringResource(string, *args) + return syntakts.rememberRendered( text = _string, context = DefaultRenderContext( diff --git a/app/src/main/java/xyz/wingio/dimett/utils/Utils.kt b/app/src/main/java/xyz/wingio/dimett/utils/Utils.kt index 565f24f..4980a5d 100644 --- a/app/src/main/java/xyz/wingio/dimett/utils/Utils.kt +++ b/app/src/main/java/xyz/wingio/dimett/utils/Utils.kt @@ -76,11 +76,12 @@ fun processPostContent(post: Post): String { val repliedTo = post.mentions.firstOrNull { mention -> mention.id == post.userRepliedTo } + return post.content?.plain?.run { if (repliedTo != null) this - .replaceFirst("@${repliedTo.username} ", "") - .replaceFirst("@${repliedTo.acct}", "") + .replaceFirst("@${repliedTo.username} ", "") // @username + .replaceFirst("@${repliedTo.acct}", "") // @username@instance.url else this } ?: ""