package org.thoughtcrime.securesms; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import android.view.View; import org.thoughtcrime.securesms.contactshare.Contact; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.stickers.StickerLocator; import org.whispersystems.libsignal.util.guava.Optional; import java.util.List; import java.util.Locale; import java.util.Set; public interface BindableConversationItem extends Unbindable { void bind(@NonNull MessageRecord messageRecord, @NonNull Optional previousMessageRecord, @NonNull Optional nextMessageRecord, @NonNull GlideRequests glideRequests, @NonNull Locale locale, @NonNull Set batchSelected, @NonNull Recipient recipients, @Nullable String searchQuery, boolean pulseHighlight); MessageRecord getMessageRecord(); void setEventListener(@Nullable EventListener listener); interface EventListener { void onQuoteClicked(MmsMessageRecord messageRecord); void onLinkPreviewClicked(@NonNull LinkPreview linkPreview); void onMoreTextClicked(@NonNull RecipientId conversationRecipientId, long messageId, boolean isMms); void onStickerClicked(@NonNull StickerLocator stickerLocator); void onViewOnceMessageClicked(@NonNull MmsMessageRecord messageRecord); void onSharedContactDetailsClicked(@NonNull Contact contact, @NonNull View avatarTransitionView); void onAddToContactsClicked(@NonNull Contact contact); void onMessageSharedContactClicked(@NonNull List choices); void onInviteSharedContactClicked(@NonNull List choices); void onReactionClicked(long messageId, boolean isMms); } }