-
Notifications
You must be signed in to change notification settings - Fork 64
Expand file tree
/
Copy pathEmojiCount.java
More file actions
49 lines (37 loc) · 1.28 KB
/
EmojiCount.java
File metadata and controls
49 lines (37 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package org.thoughtcrime.securesms.reactions;
import androidx.annotation.NonNull;
import com.annimon.stream.Stream;
import java.util.List;
import kotlin.collections.CollectionsKt;
public final class EmojiCount {
private final String baseEmoji;
private final String displayEmoji;
private final List<ReactionDetails> reactions;
private final boolean shouldAccumulateReactionCount;
EmojiCount(@NonNull String baseEmoji,
@NonNull String emoji,
@NonNull List<ReactionDetails> reactions,
boolean shouldAccumulateReactionCount)
{
this.baseEmoji = baseEmoji;
this.displayEmoji = emoji;
this.reactions = reactions;
this.shouldAccumulateReactionCount = shouldAccumulateReactionCount;
}
public @NonNull String getBaseEmoji() {
return baseEmoji;
}
public @NonNull String getDisplayEmoji() {
return displayEmoji;
}
public int getCount() {
if (shouldAccumulateReactionCount) {
return CollectionsKt.fold(reactions, 0, (count, reaction) -> count + reaction.getCount());
}
ReactionDetails first = CollectionsKt.getOrNull(reactions, 0);
return first == null ? 0 : first.getCount();
}
public @NonNull List<ReactionDetails> getReactions() {
return reactions;
}
}