From 6ccdc102088bff469d75d1a352113b3012565725 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Fri, 23 Feb 2024 18:55:53 -0600 Subject: [PATCH] feat: add user level to comments --- .../dantotsu/media/comments/CommentItem.kt | 11 +++++++---- app/src/main/res/layout/item_comments.xml | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt b/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt index 1093a13a..9e4f8071 100644 --- a/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt +++ b/app/src/main/java/ani/dantotsu/media/comments/CommentItem.kt @@ -167,7 +167,10 @@ class CommentItem(val comment: Comment, viewBinding.commentUserAvatar comment.profilePictureUrl?.let { viewBinding.commentUserAvatar.loadImage(it) } viewBinding.commentUserName.text = comment.username - viewBinding.commentUserName.setTextColor(getAvatarColor(comment.upvotes - comment.downvotes, backgroundColor)) + val levelColor = getAvatarColor(comment.upvotes - comment.downvotes, backgroundColor) + viewBinding.commentUserName.setTextColor(levelColor.first) + viewBinding.commentUserLevel.text = "Lv. ${levelColor.second}" + viewBinding.commentUserLevel.setTextColor(levelColor.first) viewBinding.commentUserTime.text = "● ${formatTimestamp(comment.timestamp)}" } @@ -263,8 +266,8 @@ class CommentItem(val comment: Comment, return if (l1 > l2) (l1 + 0.05) / (l2 + 0.05) else (l2 + 0.05) / (l1 + 0.05) } - private fun getAvatarColor(voteCount: Int, backgroundColor: Int): Int { - val level = sqrt(abs(voteCount.toDouble()) / 0.8).toInt() + private fun getAvatarColor(voteCount: Int, backgroundColor: Int): Pair { + val level = if (voteCount < 0) 0 else sqrt(abs(voteCount.toDouble()) / 0.8).toInt() val colorString = if (level > usernameColors.size - 1) usernameColors[usernameColors.size - 1] else usernameColors[level] var color = Color.parseColor(colorString) val ratio = getContrastRatio(color, backgroundColor) @@ -272,7 +275,7 @@ class CommentItem(val comment: Comment, color = adjustColorForContrast(color, backgroundColor) } - return color + return Pair(color, level) } private fun adjustColorForContrast(originalColor: Int, backgroundColor: Int): Int { diff --git a/app/src/main/res/layout/item_comments.xml b/app/src/main/res/layout/item_comments.xml index 4b2b8a4c..5bf536c0 100644 --- a/app/src/main/res/layout/item_comments.xml +++ b/app/src/main/res/layout/item_comments.xml @@ -15,6 +15,12 @@ android:padding="6dp" android:orientation="horizontal"> + + + + + +