Render custom emoji reactions in notifications tab

This commit is contained in:
fruye 2022-11-13 12:05:13 +01:00
parent c708451dc4
commit f1b3df55fb
4 changed files with 16 additions and 1 deletions

View File

@ -289,8 +289,11 @@ internal class StatusNotificationViewHolder(
displayNameIndex + displayName.length,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
val emojis = notificationViewData.account.emojis?.toMutableList() ?: mutableListOf()
if (notificationViewData.isCustomEmoji())
emojis.add(notificationViewData.makeCustomEmoji())
val emojifiedText = str.emojify(
notificationViewData.account.emojis,
emojis,
binding.notificationTopText,
animateEmojis
)

View File

@ -32,6 +32,7 @@ data class Notification(
val report: Report?,
val pleroma: PleromaNotification? = null,
val emoji: String? = null,
@SerializedName("emoji_url") val emojiUrl: String? = null,
) {
/** From https://docs.joinmastodon.org/entities/Notification/#type */

View File

@ -67,6 +67,7 @@ fun Notification.toViewData(
this.status?.toViewData(isShowingContent, isExpanded, isCollapsed),
this.report,
this.emoji,
this.emojiUrl,
)
}

View File

@ -42,4 +42,14 @@ data class NotificationViewData(
var statusViewData: StatusViewData.Concrete?,
val report: Report?,
val emoji: String?,
val emojiUrl: String?,
)
{
fun isCustomEmoji() = emojiUrl != null
fun makeCustomEmoji(): Emoji {
// Trim ':' characters to comply with CustomEmojiHelper rules.
val shortcode: String = emoji!!.substring(1, emoji.length - 1)
return Emoji(shortcode, emojiUrl!!, emojiUrl, false)
}
}