diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 10e947798..1d5bed891 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -330,7 +330,7 @@ class Account( if (contactList != null && (followingUsers.isNotEmpty() || followingTags.isNotEmpty())) { val event = ContactListEvent.create( followingUsers, - followingTags.filter { it != tag }, + followingTags.filter { !it.equals(tag, ignoreCase = true) }, contactList.relays(), loggedIn.privKey!! ) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt index ada5bdde8..938810f21 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt @@ -257,6 +257,12 @@ class User(val pubkeyHex: String) { } ?: false } + fun isFollowingHashtagCached(tag: String): Boolean { + return latestContactList?.verifiedFollowTagSet?.let { + return tag.lowercase() in it + } ?: false + } + fun isFollowingCached(user: User): Boolean { return latestContactList?.verifiedFollowKeySet?.let { return user.pubkeyHex in it diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt index e374d6a89..addf0827e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HashtagScreen.kt @@ -107,7 +107,7 @@ fun HashtagHeader(tag: String, account: Account) { modifier = Modifier.weight(1f) ) - if (userFollows.isFollowingHashtag(tag)) { + if (userFollows.isFollowingHashtagCached(tag)) { UnfollowButton { coroutineScope.launch(Dispatchers.IO) { account.unfollow(tag) } } } else { FollowButton { coroutineScope.launch(Dispatchers.IO) { account.follow(tag) } }