diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootReaction.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootReaction.kt index d10b3b3f..3845c19f 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootReaction.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootReaction.kt @@ -34,8 +34,8 @@ class TootReaction( val announcement_id: EntityId? = null, // (fedibird絵文字リアクション) userストリームのemoji_reactionイベントで設定される。 - val status_id : EntityId? = null, - ) { + val status_id: EntityId? = null, +) { companion object { fun appendDomain(name: String, domain: String?) = @@ -181,11 +181,11 @@ class TootReactionSet(val isMisskey: Boolean) : LinkedList() { private fun getRaw(name: String?): TootReaction? = find { it.name == name } - operator fun get(name: String?): TootReaction? = - if (name == null || name.isEmpty()) - null - else - getRaw(name) ?: getRaw(TootReaction.getAnotherExpression(name)) + operator fun get(name: String?): TootReaction? = when { + name == null || name.isEmpty() -> null + isMisskey -> getRaw(name) ?: getRaw(TootReaction.getAnotherExpression(name)) + else -> getRaw(name) + } companion object { fun parseMisskey(src: JsonObject?, myReactionCode: String? = null) = diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt index eb131352..f1bbf7c8 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt @@ -968,11 +968,15 @@ class TootStatus(parser: TootParser, src: JsonObject) : TimelineItem() { this.reactionSet = reactionSet } - val old = reactionSet[newReaction.name] - if( old != null){ - old.count = newReaction.count - }else{ - reactionSet.add(newReaction) + when(val old = reactionSet[newReaction.name]) { + null -> reactionSet.add(newReaction) + + // 同一オブジェクトならマージは不要 + newReaction -> { + } + + // 異なるオブジェクトの場合はmeを壊さないようにカウントだけ更新する + else -> old.count = newReaction.count } } reactionSet?.myReaction = reactionSet?.find { it.me }