Hide bubble for jumbomoji.

This commit is contained in:
Cody Henthorne
2022-01-06 13:36:58 -05:00
committed by Alex Hart
parent 4e67752850
commit 3922bfacf5
7 changed files with 63 additions and 7 deletions

View File

@@ -35,6 +35,8 @@ import org.signal.core.util.logging.Log;
import org.signal.storageservice.protos.groups.local.DecryptedGroup;
import org.signal.storageservice.protos.groups.local.DecryptedGroupChange;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.emoji.EmojiProvider;
import org.thoughtcrime.securesms.components.emoji.parsing.EmojiParser;
import org.thoughtcrime.securesms.database.MmsSmsColumns;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
@@ -42,6 +44,8 @@ import org.thoughtcrime.securesms.database.documents.NetworkFailure;
import org.thoughtcrime.securesms.database.model.databaseprotos.DecryptedGroupV2Context;
import org.thoughtcrime.securesms.database.model.databaseprotos.GroupCallUpdateDetails;
import org.thoughtcrime.securesms.database.model.databaseprotos.ProfileChangeDetails;
import org.thoughtcrime.securesms.emoji.EmojiSource;
import org.thoughtcrime.securesms.emoji.JumboEmoji;
import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange;
import org.thoughtcrime.securesms.profiles.ProfileName;
import org.thoughtcrime.securesms.recipients.Recipient;
@@ -92,6 +96,8 @@ public abstract class MessageRecord extends DisplayRecord {
private final long notifiedTimestamp;
private final long receiptTimestamp;
protected Boolean isJumboji = null;
MessageRecord(long id, String body, Recipient conversationRecipient,
Recipient individualRecipient, int recipientDeviceId,
long dateSent, long dateReceived, long dateServer, long threadId,
@@ -602,6 +608,18 @@ public abstract class MessageRecord extends DisplayRecord {
}
}
public boolean isJumbomoji(Context context) {
if (isJumboji == null) {
if (getBody().length() <= EmojiSource.getLatest().getMaxEmojiLength() * JumboEmoji.MAX_JUMBOJI_COUNT) {
EmojiParser.CandidateList candidates = EmojiProvider.getCandidates(getDisplayBody(context));
isJumboji = candidates != null && candidates.allEmojis && candidates.size() <= JumboEmoji.MAX_JUMBOJI_COUNT;
} else {
isJumboji = false;
}
}
return isJumboji;
}
public static final class InviteAddState {
private final boolean invited;