Private
Public Access
1
0

adds some clues about how to implement tapbacks

This commit is contained in:
James Magahern
2024-10-02 17:18:44 -07:00
parent 9007b4503f
commit d0e1f51b6b
2 changed files with 103 additions and 1 deletions

View File

@@ -1754,10 +1754,13 @@ __attribute__((visibility("default"))) @interface IMService : NSObject { }
@property(nonatomic) BOOL chatInScrutinyMode; // @synthesize chatInScrutinyMode=_chatInScrutinyMode;
@property(readonly, nonatomic) NSArray *messageEditChatItems; // @synthesize messageEditChatItems=_messageEditChatItems;
@property(retain, nonatomic, setter=_setVisibleAssociatedMessageChatItems:) NSArray *visibleAssociatedMessageChatItems; // @synthesize visibleAssociatedMessageChatItems=_visibleAssociatedMessageChatItems;
@property(nonatomic) struct _NSRange messagePartRange; // @synthesize messagePartRange=_messagePartRange;
@property(nonatomic) long long index; // @synthesize index=_index;
@property(readonly, copy, nonatomic) NSAttributedString *text; // @synthesize text=_text;
@property (nonatomic, copy, readonly) NSString *threadIdentifier;
@property(nonatomic) struct _NSRange messagePartRange; // @synthesize messagePartRange=_messagePartRange;
- (BOOL)canSendMessageAcknowledgment;
- (void)_setMessageEditChatItems:(id)arg1;
- (id)_initWithItem:(id)arg1 text:(id)arg2 index:(long long)arg3 messagePartRange:(struct _NSRange)arg4 visibleAssociatedMessageChatItems:(id)arg5;
@@ -3689,6 +3692,58 @@ typedef NS_ENUM(NSInteger, IMMessageDescriptionType) {
IMMessageDescriptionSPI,
};
typedef NS_ENUM(int64_t, IMAssociatedMessageType) {
IMAssociatedMessageTypeUnspecified = 0,
IMAssociatedMessageTypeBreadcrumbUnconsumed = 2,
IMAssociatedMessageTypeBreadcrumbConsumed = 3,
IMAssociatedMessageTypeSticker = 1000,
IMAssociatedMessageTypeEmojiSticker = 1001,
IMAssociatedMessageTypeAcknowledgmentHeart = 2000,
IMAssociatedMessageTypeAcknowledgmentThumbsUp = 2001,
IMAssociatedMessageTypeAcknowledgmentThumbsDown = 2002,
IMAssociatedMessageTypeAcknowledgmentHa = 2003,
IMAssociatedMessageTypeAcknowledgmentExclamation = 2004,
IMAssociatedMessageTypeAcknowledgmentQuestionMark = 2005,
IMAssociatedMessageTypeAcknowledgmentHeartRemoved = 3000,
IMAssociatedMessageTypeAcknowledgmentThumbsUpRemoved = 3001,
IMAssociatedMessageTypeAcknowledgmentThumbsDownRemoved = 3002,
IMAssociatedMessageTypeAcknowledgmentHaRemoved = 3003,
IMAssociatedMessageTypeAcknowledgmentExclamationRemoved = 3004,
IMAssociatedMessageTypeAcknowledgmentQuestionMarkRemoved = 3005,
};
extern NSString * const IMMessageSummaryInfoSummary;
extern NSString * const IMMessageSummaryInfoContentType;
extern NSString * const IMMessageSummaryInfoPluginBundleID;
extern NSString * const IMMessageSummaryInfoPluginDisplayName;
extern NSString * const IMMessageSummaryInfoAssociatedBalloonBundleID;
extern NSString * const IMMessageSummaryInfoSourceApplicationID;
extern NSString * const IMMessageSummaryInfoUpdatedDateWithServerTime;
extern NSString * const IMMessageSummaryInfoHasBeenRetried;
extern NSString * const IMMessageSummaryInfoTapbackRepresentationKey;
extern NSString * const IMMessageSummaryInfoStickerRepositioningKey;
extern NSString * const IMMessageSummaryInfoTranscriptSharingMessageTypeKey;
extern NSString * const IMMessageSummaryInfoTranscriptSharingMessageFirstItemKey;
extern NSString * const IMMessageSummaryInfoEditedPartIndexes;
extern NSString * const IMMessageSummaryInfoRetractedPartIndexes;
extern NSString * const IMMessageSummaryInfoOriginalTextRangesByPartIndex;
extern NSString * const IMMessageSummaryInfoOriginalTextRangeLocationSubKey;
extern NSString * const IMMessageSummaryInfoOriginalTextRangeLengthSubKey;
extern NSString * const IMMessageSummaryInfoEditDeliveryFailedForPartIndexes;
extern NSString * const IMMessageSummaryInfoRetractDeliveryFailedForPartIndexes;
extern NSString * const IMMessageSummaryInfoEditUnsupportedByHandleIDs;
extern NSString * const IMMessageSummaryInfoTranslatedText;
extern NSString * const IMMessageSummaryInfoDetectedLanguage;
extern NSString * const IMMessageSummaryInfoCMMState;
extern NSString * const IMMessageSummaryInfoCMMAssetOffset;
extern NSString * const IMMessageItemErrorDomain;
extern NSString * const IMMessageSentDistributedNotification;
extern NSString * const IMMessageSentDistributedNotificationUserInfoMessageGUIDKey;
extern NSString * const IMMessageSentDistributedNotificationUserInfoSucessKey;
@interface IMMessage : NSObject <NSCopying>
{
@@ -3745,6 +3800,22 @@ typedef NS_ENUM(NSInteger, IMMessageDescriptionType) {
+ (id)breadcrumbMessageWithText:(id)arg1 associatedMessageGUID:(id)arg2 balloonBundleID:(id)arg3 fileTransferGUIDs:(id)arg4 payloadData:(id)arg5;
+ (id)editedMessageWithOriginalMessage:(id)arg1 originalPrefixedGUID:(id)arg2 newBody:(id)arg3;
+ (id)instantMessageWithAssociatedMessageContent:(id)arg1 flags:(unsigned long long)arg2 associatedMessageGUID:(id)arg3 associatedMessageType:(long long)arg4 associatedMessageRange:(struct _NSRange)arg5 messageSummaryInfo:(id)arg6;
+ (instancetype)instantMessageWithAssociatedMessageContent:(NSAttributedString *) content
flags:(IMMessageFlags)flags
associatedMessageGUID:(NSString*) associatedMessageGUID
associatedMessageType:(IMAssociatedMessageType) associatedMessageType
associatedMessageRange:(NSRange) associatedMessageRange
messageSummaryInfo:(NSDictionary*) messageSummaryInfo
threadIdentifier:(NSString *)threadIdentifier;
+ (instancetype)breadcrumbMessageWithText:(NSAttributedString *)text
associatedMessageGUID:(NSString *)messageGUID
balloonBundleID:(NSString *)balloonBundleID
fileTransferGUIDs:(NSArray<NSString *> *)fileTransferGUIDs
payloadData:(NSData *)payloadData
threadIdentifier:(NSString *)threadIdentifier;
@property(nonatomic) unsigned long long sortID; // @synthesize sortID=_sortID;
@property(nonatomic) BOOL isSOS; // @synthesize isSOS=_isSOS;
@property(retain, nonatomic) NSString *notificationIDSTokenURI; // @synthesize notificationIDSTokenURI=_notificationIDSTokenURI;

View File

@@ -57,6 +57,26 @@
return result;
}
#if 0
- (NSDictionary *)adjustMessageSummaryInfoForSending:(NSDictionary *)messageSummaryInfo
{
NSMutableDictionary *adjustedInfo = [messageSummaryInfo mutableCopy];
if (!adjustedInfo) {
adjustedInfo = [NSMutableDictionary dictionary];
}
if ([fullText length] > 50) {
summary = [[summary substringToIndex:[summary rangeOfComposedCharacterSequenceAtIndex:kMaxSummaryLength].location] stringByAppendingString:@"…"];
adjustedInfo[IMMessageSummaryInfoSummary] = summary;
}
adjustedInfo[IMMessageSummaryInfoTapbackRepresentationKey] = @"Loved";
return adjustedInfo;
}
#endif
- (void)main
{
NSObject<HTTPResponse> *response = [[HTTPErrorResponse alloc] initWithErrorCode:500];
@@ -75,6 +95,17 @@
return;
}
// tapbacks
#if 0
IMMessage *acknowledgment = [IMMessage instantMessageWithAssociatedMessageContent: /* [NSString stringWithFormat:@"%@ \"%%@\"", tapbackAction] */
flags:0
associatedMessageGUID:guid
associatedMessageType:IMAssociatedMessageTypeAcknowledgmentHeart
associatedMessageRange:[imMessage messagePartRange]
messageSummaryInfo:[self adjustMessageSummaryInfoForSending:message]
threadIdentifier:[imMessage threadIdentifier]];
#endif
NSArray *transferGUIDs = [args objectForKey:@"fileTransferGUIDs"];
if (!transferGUIDs) {
transferGUIDs = @[];