That fuck shit the fascists are using
at master 130 lines 6.5 kB view raw
1package org.tm.archive; 2 3import android.net.Uri; 4import android.view.View; 5 6import androidx.annotation.NonNull; 7import androidx.annotation.Nullable; 8import androidx.lifecycle.LifecycleOwner; 9import androidx.lifecycle.Observer; 10 11import com.bumptech.glide.RequestManager; 12 13import org.signal.ringrtc.CallLinkRootKey; 14import org.tm.archive.components.voice.VoiceNotePlaybackState; 15import org.tm.archive.contactshare.Contact; 16import org.tm.archive.conversation.ConversationItem; 17import org.tm.archive.conversation.ConversationItemDisplayMode; 18import org.tm.archive.conversation.ConversationMessage; 19import org.tm.archive.conversation.colors.Colorizable; 20import org.tm.archive.conversation.colors.Colorizer; 21import org.tm.archive.conversation.mutiselect.MultiselectPart; 22import org.tm.archive.conversation.mutiselect.Multiselectable; 23import org.tm.archive.database.model.InMemoryMessageRecord; 24import org.tm.archive.database.model.MessageRecord; 25import org.tm.archive.database.model.MmsMessageRecord; 26import org.tm.archive.giph.mp4.GiphyMp4Playable; 27import org.tm.archive.groups.GroupId; 28import org.tm.archive.groups.GroupMigrationMembershipChange; 29import org.tm.archive.linkpreview.LinkPreview; 30import org.tm.archive.mediapreview.MediaIntentFactory; 31import org.tm.archive.recipients.Recipient; 32import org.tm.archive.recipients.RecipientId; 33import org.tm.archive.stickers.StickerLocator; 34 35import java.util.List; 36import java.util.Locale; 37import java.util.Optional; 38import java.util.Set; 39 40public interface BindableConversationItem extends Unbindable, GiphyMp4Playable, Colorizable, Multiselectable { 41 void bind(@NonNull LifecycleOwner lifecycleOwner, 42 @NonNull ConversationMessage messageRecord, 43 @NonNull Optional<MessageRecord> previousMessageRecord, 44 @NonNull Optional<MessageRecord> nextMessageRecord, 45 @NonNull RequestManager requestManager, 46 @NonNull Locale locale, 47 @NonNull Set<MultiselectPart> batchSelected, 48 @NonNull Recipient recipients, 49 @Nullable String searchQuery, 50 boolean pulseMention, 51 boolean hasWallpaper, 52 boolean isMessageRequestAccepted, 53 boolean canPlayInline, 54 @NonNull Colorizer colorizer, 55 @NonNull ConversationItemDisplayMode displayMode); 56 57 @NonNull ConversationMessage getConversationMessage(); 58 59 void setEventListener(@Nullable EventListener listener); 60 61 default void setParentScrolling(boolean isParentScrolling) { 62 // Intentionally Blank. 63 } 64 65 default void updateTimestamps() { 66 // Intentionally Blank. 67 } 68 69 default void updateContactNameColor() { 70 // Intentionally Blank. 71 } 72 73 default void updateSelectedState() { 74 // Intentionally Blank. 75 } 76 77 interface EventListener { 78 void onQuoteClicked(MmsMessageRecord messageRecord); 79 void onLinkPreviewClicked(@NonNull LinkPreview linkPreview); 80 void onQuotedIndicatorClicked(@NonNull MessageRecord messageRecord); 81 void onMoreTextClicked(@NonNull RecipientId conversationRecipientId, long messageId, boolean isMms); 82 void onStickerClicked(@NonNull StickerLocator stickerLocator); 83 void onViewOnceMessageClicked(@NonNull MmsMessageRecord messageRecord); 84 void onSharedContactDetailsClicked(@NonNull Contact contact, @NonNull View avatarTransitionView); 85 void onAddToContactsClicked(@NonNull Contact contact); 86 void onMessageSharedContactClicked(@NonNull List<Recipient> choices); 87 void onInviteSharedContactClicked(@NonNull List<Recipient> choices); 88 void onReactionClicked(@NonNull MultiselectPart multiselectPart, long messageId, boolean isMms); 89 void onGroupMemberClicked(@NonNull RecipientId recipientId, @NonNull GroupId groupId); 90 void onMessageWithErrorClicked(@NonNull MessageRecord messageRecord); 91 void onMessageWithRecaptchaNeededClicked(@NonNull MessageRecord messageRecord); 92 void onIncomingIdentityMismatchClicked(@NonNull RecipientId recipientId); 93 void onRegisterVoiceNoteCallbacks(@NonNull Observer<VoiceNotePlaybackState> onPlaybackStartObserver); 94 void onUnregisterVoiceNoteCallbacks(@NonNull Observer<VoiceNotePlaybackState> onPlaybackStartObserver); 95 void onVoiceNotePause(@NonNull Uri uri); 96 void onVoiceNotePlay(@NonNull Uri uri, long messageId, double position); 97 void onVoiceNoteSeekTo(@NonNull Uri uri, double position); 98 void onVoiceNotePlaybackSpeedChanged(@NonNull Uri uri, float speed); 99 void onGroupMigrationLearnMoreClicked(@NonNull GroupMigrationMembershipChange membershipChange); 100 void onChatSessionRefreshLearnMoreClicked(); 101 void onBadDecryptLearnMoreClicked(@NonNull RecipientId author); 102 void onSafetyNumberLearnMoreClicked(@NonNull Recipient recipient); 103 void onJoinGroupCallClicked(); 104 void onInviteFriendsToGroupClicked(@NonNull GroupId.V2 groupId); 105 void onEnableCallNotificationsClicked(); 106 void onPlayInlineContent(ConversationMessage conversationMessage); 107 void onInMemoryMessageClicked(@NonNull InMemoryMessageRecord messageRecord); 108 void onViewGroupDescriptionChange(@Nullable GroupId groupId, @NonNull String description, boolean isMessageRequestAccepted); 109 void onChangeNumberUpdateContact(@NonNull Recipient recipient); 110 void onCallToAction(@NonNull String action); 111 void onDonateClicked(); 112 void onBlockJoinRequest(@NonNull Recipient recipient); 113 void onRecipientNameClicked(@NonNull RecipientId target); 114 void onInviteToSignalClicked(); 115 void onActivatePaymentsClicked(); 116 void onSendPaymentClicked(@NonNull RecipientId recipientId); 117 void onScheduledIndicatorClicked(@NonNull View view, @NonNull ConversationMessage conversationMessage); 118 /** @return true if handled, false if you want to let the normal url handling continue */ 119 boolean onUrlClicked(@NonNull String url); 120 void onViewGiftBadgeClicked(@NonNull MessageRecord messageRecord); 121 void onGiftBadgeRevealed(@NonNull MessageRecord messageRecord); 122 void goToMediaPreview(ConversationItem parent, View sharedElement, MediaIntentFactory.MediaPreviewArgs args); 123 void onEditedIndicatorClicked(@NonNull MessageRecord messageRecord); 124 void onShowGroupDescriptionClicked(@NonNull String groupName, @NonNull String description, boolean shouldLinkifyWebLinks); 125 void onJoinCallLink(@NonNull CallLinkRootKey callLinkRootKey); 126 void onShowSafetyTips(boolean forGroup); 127 void onReportSpamLearnMoreClicked(); 128 void onMessageRequestAcceptOptionsClicked(); 129 } 130}