That fuck shit the fascists are using
at master 76 lines 5.5 kB view raw
1package org.tm.archive.util 2 3import org.tm.archive.database.MessageTable 4import org.tm.archive.database.MessageTypes 5import org.tm.archive.database.SignalDatabase 6import org.tm.archive.database.model.MessageRecord 7 8/** 9 * Helper methods for interacting with [MessageTable] in tests. 10 */ 11object MessageTableTestUtils { 12 13 fun getMessages(threadId: Long): List<MessageRecord> { 14 return MessageTable.mmsReaderFor(SignalDatabase.messages.getConversation(threadId)).use { 15 it.toList() 16 } 17 } 18 19 fun typeColumnToString(type: Long): String { 20 return """ 21 isOutgoingMessageType:${MessageTypes.isOutgoingMessageType(type)} 22 isForcedSms:${type and MessageTypes.MESSAGE_FORCE_SMS_BIT != 0L} 23 isDraftMessageType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_DRAFT_TYPE} 24 isFailedMessageType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_SENT_FAILED_TYPE} 25 isPendingMessageType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_OUTBOX_TYPE || type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_SENDING_TYPE} 26 isSentType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_SENT_TYPE} 27 isPendingSmsFallbackType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_PENDING_INSECURE_SMS_FALLBACK || type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_PENDING_SECURE_SMS_FALLBACK} 28 isPendingSecureSmsFallbackType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_PENDING_SECURE_SMS_FALLBACK} 29 isPendingInsecureSmsFallbackType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_PENDING_INSECURE_SMS_FALLBACK} 30 isInboxType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BASE_INBOX_TYPE} 31 isJoinedType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.JOINED_TYPE} 32 isUnsupportedMessageType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.UNSUPPORTED_MESSAGE_TYPE} 33 isInvalidMessageType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.INVALID_MESSAGE_TYPE} 34 isBadDecryptType:${type and MessageTypes.BASE_TYPE_MASK == MessageTypes.BAD_DECRYPT_TYPE} 35 isSecureType:${type and MessageTypes.SECURE_MESSAGE_BIT != 0L} 36 isPushType:${type and MessageTypes.PUSH_MESSAGE_BIT != 0L} 37 isEndSessionType:${type and MessageTypes.END_SESSION_BIT != 0L} 38 isKeyExchangeType:${type and MessageTypes.KEY_EXCHANGE_BIT != 0L} 39 isIdentityVerified:${type and MessageTypes.KEY_EXCHANGE_IDENTITY_VERIFIED_BIT != 0L} 40 isIdentityDefault:${type and MessageTypes.KEY_EXCHANGE_IDENTITY_DEFAULT_BIT != 0L} 41 isInvalidVersionKeyExchange:${type and MessageTypes.KEY_EXCHANGE_INVALID_VERSION_BIT != 0L} 42 isBundleKeyExchange:${type and MessageTypes.KEY_EXCHANGE_BUNDLE_BIT != 0L} 43 isIdentityUpdate:${type and MessageTypes.KEY_EXCHANGE_IDENTITY_UPDATE_BIT != 0L} 44 isRateLimited:${type and MessageTypes.MESSAGE_RATE_LIMITED_BIT != 0L} 45 isExpirationTimerUpdate:${type and MessageTypes.EXPIRATION_TIMER_UPDATE_BIT != 0L} 46 isIncomingAudioCall:${type == MessageTypes.INCOMING_AUDIO_CALL_TYPE} 47 isIncomingVideoCall:${type == MessageTypes.INCOMING_VIDEO_CALL_TYPE} 48 isOutgoingAudioCall:${type == MessageTypes.OUTGOING_AUDIO_CALL_TYPE} 49 isOutgoingVideoCall:${type == MessageTypes.OUTGOING_VIDEO_CALL_TYPE} 50 isMissedAudioCall:${type == MessageTypes.MISSED_AUDIO_CALL_TYPE} 51 isMissedVideoCall:${type == MessageTypes.MISSED_VIDEO_CALL_TYPE} 52 isGroupCall:${type == MessageTypes.GROUP_CALL_TYPE} 53 isGroupUpdate:${type and MessageTypes.GROUP_UPDATE_BIT != 0L} 54 isGroupV2:${type and MessageTypes.GROUP_V2_BIT != 0L} 55 isGroupQuit:${type and MessageTypes.GROUP_LEAVE_BIT != 0L && type and MessageTypes.GROUP_V2_BIT == 0L} 56 isChatSessionRefresh:${type and MessageTypes.ENCRYPTION_REMOTE_FAILED_BIT != 0L} 57 isDuplicateMessageType:${type and MessageTypes.ENCRYPTION_REMOTE_DUPLICATE_BIT != 0L} 58 isDecryptInProgressType:${type and 0x40000000 != 0L} 59 isNoRemoteSessionType:${type and MessageTypes.ENCRYPTION_REMOTE_NO_SESSION_BIT != 0L} 60 isLegacyType:${type and MessageTypes.ENCRYPTION_REMOTE_LEGACY_BIT != 0L || type and MessageTypes.ENCRYPTION_REMOTE_BIT != 0L} 61 isProfileChange:${type == MessageTypes.PROFILE_CHANGE_TYPE} 62 isGroupV1MigrationEvent:${type == MessageTypes.GV1_MIGRATION_TYPE} 63 isChangeNumber:${type == MessageTypes.CHANGE_NUMBER_TYPE} 64 isBoostRequest:${type == MessageTypes.BOOST_REQUEST_TYPE} 65 isThreadMerge:${type == MessageTypes.THREAD_MERGE_TYPE} 66 isSmsExport:${type == MessageTypes.SMS_EXPORT_TYPE} 67 isGroupV2LeaveOnly:${type and MessageTypes.GROUP_V2_LEAVE_BITS == MessageTypes.GROUP_V2_LEAVE_BITS} 68 isSpecialType:${type and MessageTypes.SPECIAL_TYPES_MASK != 0L} 69 isStoryReaction:${type and MessageTypes.SPECIAL_TYPES_MASK == MessageTypes.SPECIAL_TYPE_STORY_REACTION} 70 isGiftBadge:${type and MessageTypes.SPECIAL_TYPES_MASK == MessageTypes.SPECIAL_TYPE_GIFT_BADGE} 71 isPaymentsNotificaiton:${type and MessageTypes.SPECIAL_TYPES_MASK == MessageTypes.SPECIAL_TYPE_PAYMENTS_NOTIFICATION} 72 isRequestToActivatePayments:${type and MessageTypes.SPECIAL_TYPES_MASK == MessageTypes.SPECIAL_TYPE_PAYMENTS_ACTIVATE_REQUEST} 73 isPaymentsActivated:${type and MessageTypes.SPECIAL_TYPES_MASK == MessageTypes.SPECIAL_TYPE_PAYMENTS_ACTIVATED} 74 """.trimIndent().replace(Regex("is[A-Z][A-Za-z0-9]*:false\n?"), "").replace("\n", "") 75 } 76}