Skip to content

Commit a8588ff

Browse files
LucasDerReisendeantonykamprgwohlbold
authored
Beim Klick auf "Reply" scrollen (#504)
* Adds scroll reply message by click loading messages if necessary Co-authored-by: antonykamp <[email protected]> * Add Tests Co-authored-by: antonykamp <[email protected]> * Fix lint Co-authored-by: lucasderreisende <[email protected]> * Revert UI tests deletion Co-authored-by: lucasderreisende <[email protected]> * Fix lint (again) * adapt to new tdlib version Co-authored-by: lucasderreisende <[email protected]> Co-authored-by: antonykamp <[email protected]> Co-authored-by: Antony Kmap <[email protected]> Co-authored-by: Richard Wohlbold <[email protected]>
1 parent 9b71702 commit a8588ff

File tree

73 files changed

+420
-95
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+420
-95
lines changed

packages/TelegramClient-Core.package/TCCChat.class/instance/chatHistoryReceived..st

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ loading
22
chatHistoryReceived: anEvent
33

44
(anEvent at: 'messages') do:
5-
[:message | self addOldestMessage: (TCCMessage newFromMessageEvent: message in: self with: self core)].
5+
[:message | self addOldestMessage: (TCCMessage newFromMessageEvent: message in: self with: self core).
6+
self fulfillMessageRequest: (message at: 'id').
7+
].
8+
9+
(self requestedMessages isEmpty) ifFalse: [self increaseNumberOfRequestedMessages.].
610

711
self waitingForUpdate: false.
812

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
loading
2+
fulfillMessageRequest: aMessageId
3+
4+
| fulfilledMessageRequests |
5+
6+
fulfilledMessageRequests := self requestedMessages select: [:req | req messageId = aMessageId].
7+
fulfilledMessageRequests do: [:messageRequest | messageRequest completeRequest.].
8+
9+
self requestedMessages removeAll: fulfilledMessageRequests.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
controlling
2+
handleMessageRequest: aMessageRequest
3+
4+
((self messageIds occurrencesOf: (aMessageRequest messageId)) ~= 0) ifTrue:
5+
[aMessageRequest completeRequest.]
6+
ifFalse:
7+
[self requestedMessages add: aMessageRequest.
8+
self loadChatHistory.]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
loading
2+
increaseNumberOfRequestedMessages
3+
4+
self numberOfRequestedMessages: self numberOfRequestedMessages + self class defaultMessageLimit.

packages/TelegramClient-Core.package/TCCChat.class/instance/initialize.st

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ initialize
1111
position: self class defaultUnknownPosition;
1212
numberOfRequestedMessages: self class defaultNumberOfRequestedMessages;
1313
selectedReplyToMessageId: self class defaultSelectedReplyToMessageId;
14-
isPinned: false.
14+
requestedMessages: OrderedCollection new;
15+
isPinned: false.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
requestedMessages: aList
3+
4+
requestedMessages := aList
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
requestedMessages
3+
4+
^ requestedMessages
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
accessing
22
stillRequestedMessages
3-
3+
44
^ self numberOfRequestedMessages - self numberOfMessages

packages/TelegramClient-Core.package/TCCChat.class/methodProperties.json

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,20 @@
99
"instance" : {
1010
"addAnsweredMessage:" : "JS 5/26/2022 16:41",
1111
"addNewestMessage:" : "JS 5/26/2022 14:22",
12-
"addOldestMessage:" : "JS 5/26/2022 14:23",
12+
"addOldestMessage:" : "LR 6/11/2022 16:17",
1313
"canSendMessages" : "5/11/2021 10:09:15",
1414
"canSendMessages:" : "JB 8/4/2021 00:08",
15-
"chatHistoryReceived:" : "rgw 5/12/2022 14:04",
15+
"chatHistoryReceived:" : "aka 6/15/2022 11:52",
1616
"core" : "per 6/4/2021 16:00",
1717
"core:" : "per 6/4/2021 15:58",
18+
"fulfillMessageRequest:" : "LR 6/15/2022 10:11",
1819
"getMessageById:" : "JS 5/26/2022 14:49",
20+
"handleMessageRequest:" : "LR 6/15/2022 11:14",
1921
"hasPhoto" : "rgw 6/2/2022 15:20",
2022
"id" : "rs 6/7/2020 22:20",
2123
"id:" : "pk 8/4/2021 11:25",
22-
"ifNotWaitingForUpdate:" : "js 8/2/2020 13:17",
24+
"ifNotWaitingForUpdate:" : "LR 6/15/2022 10:12",
25+
"increaseNumberOfRequestedMessages" : "LR 6/15/2022 10:12",
2326
"infoLoaded" : "per 6/4/2021 15:59",
2427
"infoLoaded:" : "per 6/4/2021 15:51",
2528
"initialize" : "js 6/18/2022 10:48",
@@ -35,7 +38,7 @@
3538
"lastMessage" : "rs 6/19/2020 17:33",
3639
"lastMessage:" : "pk 8/4/2021 10:56",
3740
"lastMessageId" : "JB 8/4/2021 00:10",
38-
"loadChatHistory" : "RS 7/17/2021 11:49",
41+
"loadChatHistory" : "LR 6/12/2022 17:48",
3942
"loadInfo" : "per 6/15/2021 09:49",
4043
"loadInfoIfNotLoaded" : "TR 6/13/2021 15:54",
4144
"messageDictionary" : "JS 5/26/2022 14:19",
@@ -54,11 +57,13 @@
5457
"position:" : "pk 8/6/2021 18:59",
5558
"positionKnown" : "pk 8/6/2021 18:25",
5659
"requestMessage:" : "JS 5/26/2022 14:48",
57-
"requestMessages:" : "RS 7/31/2021 15:28",
60+
"requestMessages:" : "LR 6/15/2022 10:12",
61+
"requestedMessages" : "aka 6/15/2022 11:52",
62+
"requestedMessages:" : "aka 6/15/2022 11:52",
5863
"selectedReplyToMessageId" : "JS 5/20/2022 09:50",
5964
"selectedReplyToMessageId:" : "JS 5/20/2022 11:38",
6065
"sendMessage:" : "JS 5/20/2022 10:06",
61-
"stillRequestedMessages" : "js 8/1/2020 18:05",
66+
"stillRequestedMessages" : "LR 6/15/2022 10:12",
6267
"title" : "rs 6/7/2020 22:24",
6368
"title:" : "5/11/2021 10:09:15",
6469
"waitingForUpdate" : "5/11/2021 10:09:15",

packages/TelegramClient-Core.package/TCCChat.class/properties.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@
2020
"messageIds",
2121
"messageDictionary",
2222
"selectedReplyToMessageId",
23-
"photoId",
24-
"isPinned" ],
23+
"requestedMessages",
24+
"photoId",
25+
"isPinned"],
2526
"name" : "TCCChat",
2627
"pools" : [
2728
],

packages/TelegramClient-Core.package/TCCCore.class/methodProperties.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"freeClient" : "6/9/2021 14:12:18",
1818
"generateCallbackId" : "pk 8/5/2021 17:04",
1919
"getOwnProfile" : "pk 8/5/2021 17:05",
20-
"handleEvent:" : "rgw 6/2/2022 08:57",
20+
"handleEvent:" : "LR 6/12/2022 14:28",
2121
"handleMessageEvent:" : "rgw 5/12/2022 13:44",
2222
"handlePendingEvent:" : "per 8/2/2021 15:05",
2323
"imageStore" : "pk 6/19/2021 17:15",

packages/TelegramClient-Core.package/TCCFFIClient.class/methodProperties.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"class" : {
33
"downloadUrl" : "r.s 7/13/2020 17:05",
44
"fileName" : "r.s 7/13/2020 17:05",
5-
"moduleName" : "pk 8/5/2021 21:31",
5+
"moduleName" : "LR 6/5/2022 11:00",
66
"newForCurrentOs" : "pk 8/5/2021 17:09" },
77
"instance" : {
88
"create" : "js 6/13/2020 12:53",

packages/TelegramClient-Core.package/TCCMessage.class/methodProperties.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"isOutgoing" : "js 8/2/2020 22:00",
2121
"isOutgoing:" : "pk 8/4/2021 11:42",
2222
"isReply" : "rgw 5/12/2022 15:40",
23-
"replyText" : "rgw 5/12/2022 15:35",
23+
"replyText" : "LR 6/5/2022 11:12",
2424
"replyToMessageId" : "rgw 5/12/2022 13:43",
2525
"replyToMessageId:" : "rgw 5/12/2022 13:43",
2626
"senderName" : "JS 6/11/2022 09:50",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Class with the id of a requested message. If request is completed, execute the completionMessage on the completionReceiver.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
completeRequest
3+
4+
self completionReceiver perform: (self completionMessage) with: (self messageId)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
completionMessage: aMessage
3+
4+
completionMessage := aMessage
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
completionMessage
3+
4+
^ completionMessage
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
completionReceiver: aReceiver
3+
4+
completionReceiver := aReceiver
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
completionReceiver
3+
4+
^ completionReceiver
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageId: aNumber
3+
4+
messageId := aNumber
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageId
3+
4+
^ messageId
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"class" : {
3+
},
4+
"instance" : {
5+
"completeRequest" : "LR 6/5/2022 13:05",
6+
"completionMessage" : "aka 6/15/2022 11:45",
7+
"completionMessage:" : "aka 6/15/2022 11:45",
8+
"completionReceiver" : "aka 6/15/2022 11:46",
9+
"completionReceiver:" : "aka 6/15/2022 11:46",
10+
"messageId" : "aka 6/15/2022 11:47",
11+
"messageId:" : "aka 6/15/2022 11:47" } }
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"category" : "TelegramClient-Core",
3+
"classinstvars" : [
4+
],
5+
"classvars" : [
6+
],
7+
"commentStamp" : "aka 6/15/2022 12:07",
8+
"instvars" : [
9+
"messageId",
10+
"completionReceiver",
11+
"completionMessage" ],
12+
"name" : "TCCMessageRequest",
13+
"pools" : [
14+
],
15+
"super" : "Object",
16+
"type" : "normal" }

packages/TelegramClient-Core.package/TCCWindowsClient.class/methodProperties.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"class" : {
3-
"downloadArchive" : "pk 8/6/2021 15:28",
3+
"downloadArchive" : "LR 6/5/2022 11:05",
44
"downloadUrl" : "rgw 6/13/2022 10:35",
55
"fileName" : "f.w. 7/15/2020 22:04",
66
"moduleName" : "js 8/2/2020 13:21" },

packages/TelegramClient-UI.package/TCUChatMessageList.class/instance/addAtBottom..st

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
messages
22
addAtBottom: aCoreMessage
33

4-
| wrapper wasFullyScrolledDown |
5-
4+
| wrapper wasFullyScrolledDown messageItem |
5+
66
(self isFromCurrentChat: aCoreMessage)
77
ifFalse: [ ^ self ].
88
wasFullyScrolledDown := self isFullyScrolledDown.
9-
wrapper := TCUMessageWrapper newFromMessage: (TCUMessage newFrom: aCoreMessage) withWidth: self scroller width.
9+
messageItem := TCUMessage newFrom: aCoreMessage.
10+
messageItem when: #requestScroll send: #requestScrollToMessage: to: self with: (aCoreMessage replyToMessageId).
11+
wrapper := TCUMessageWrapper newFromMessage: messageItem withWidth: self scroller width.
1012
self scroller addMorphBack: wrapper.
1113
self items addLast: wrapper.
1214
wasFullyScrolledDown

packages/TelegramClient-UI.package/TCUChatMessageList.class/instance/addAtTop..st

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
messages
22
addAtTop: aCoreMessage
33

4-
| wrapper |
4+
| wrapper messageItem |
55
(self isFromCurrentChat: aCoreMessage) ifFalse: [^ self].
66

7-
wrapper := TCUMessageWrapper newFromMessage: (TCUMessage newFrom: aCoreMessage) withWidth: self scroller width.
7+
messageItem := TCUMessage newFrom: aCoreMessage.
8+
messageItem when: #requestScroll send: #requestScrollToMessage: to: self with: (aCoreMessage replyToMessageId).
9+
wrapper := TCUMessageWrapper newFromMessage: messageItem withWidth: self scroller width.
810
self scroller addMorphFront: wrapper.
911
self items addFirst: wrapper.
1012

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
messages
2+
requestScrollToMessage: aMessageId
3+
4+
| messageRequest |
5+
messageRequest := TCCMessageRequest new messageId: aMessageId;
6+
completionReceiver: self;
7+
completionMessage: #scrollToMessage:;
8+
yourself.
9+
self chat handleMessageRequest: messageRequest
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
drawing
2+
scrollToMessage: aMessageId
3+
4+
| messageItem messageIndex |
5+
messageIndex := self chat messageIds reversed indexOf: aMessageId.
6+
messageItem := self items at: messageIndex.
7+
self scrollToShow: messageItem

packages/TelegramClient-UI.package/TCUChatMessageList.class/methodProperties.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"defaultScrollOffsetBeforeLoading" : "JB 6/26/2021 10:15",
44
"defaultWidth" : "rgw 6/2/2022 15:39" },
55
"instance" : {
6-
"addAtBottom:" : "JS 6/11/2022 11:14",
7-
"addAtTop:" : "JS 6/11/2022 11:15",
6+
"addAtBottom:" : "LR 6/11/2022 10:45",
7+
"addAtTop:" : "LR 6/11/2022 11:00",
88
"addMessages" : "RS 7/17/2021 17:40",
99
"chat" : "js 7/31/2020 16:39",
1010
"chat:" : "js 7/31/2020 16:39",
@@ -13,6 +13,8 @@
1313
"initialize" : "RS 7/17/2021 17:40",
1414
"isFromCurrentChat:" : "pk 8/5/2021 17:07",
1515
"isFullyScrolledDown" : "JB 8/4/2021 11:15",
16+
"requestScrollToMessage:" : "aka 6/15/2022 11:56",
17+
"scrollToMessage:" : "aka 6/15/2022 12:01",
1618
"scrollToNewestMessage" : "per 6/24/2021 23:14",
1719
"showMessages" : "RS 7/17/2021 17:34",
1820
"step" : "JB 7/19/2021 12:12" } }

packages/TelegramClient-UI.package/TCUEmojiHelper.class/methodProperties.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"defaultMinimumEmojiAmount" : "pk 7/17/2021 10:18",
1111
"defaultOptionalCharacters" : "pk 7/6/2021 09:49",
1212
"defaultTextHeight" : "7/17/2021 09:37:29",
13-
"downloadArchive" : "pk 7/17/2021 09:49",
13+
"downloadArchive" : "LR 6/5/2022 11:05",
1414
"downloadUrl" : "RK 6/29/2021 11:30",
1515
"embedEmojisInto:" : "pk 7/11/2021 19:17",
1616
"emojiExists:" : "pk 7/11/2021 19:20",

packages/TelegramClient-UI.package/TCUMessage.class/instance/addReplySnippet.st

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
constructing
22
addReplySnippet
33

4-
self addMorphBack: (self class defaultTextMorph
5-
contents: self messageModel replyText;
6-
hResizing: #spaceFill;
7-
color: TCUDefaultValues colorLightGray;
8-
yourself).
4+
| replySnippet |
5+
6+
replySnippet := TCUReplySnippet newWith: (self messageModel replyText) coloredIn: self messageColor.
7+
replySnippet when: #requestScroll send: #triggerRequestScroll to: self.
8+
9+
self addMorph: (replySnippet).
910
self addMorphBack: (RectangleMorph new
1011
color: self messageColor;
1112
borderWidth: 0;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
accessing
1+
initialization
22
mouseDown: anEvent
33

44
^ self messageModel chat selectedReplyToMessageId: self messageModel id
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
constructing
2+
triggerRequestScroll
3+
4+
self triggerEvent: #requestScroll

packages/TelegramClient-UI.package/TCUMessage.class/methodProperties.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"class" : {
33
"defaultBottomMargin" : "JB 5/30/2021 11:27",
44
"defaultHeight" : "JB 5/29/2021 20:44",
5-
"defaultLayoutInset" : "JB 5/29/2021 21:08",
5+
"defaultLayoutInset" : "LR 6/11/2022 11:40",
66
"defaultMargins" : "JB 6/11/2021 18:36",
77
"defaultPhotoSize" : "JS 6/11/2022 09:55",
88
"defaultTextMorph" : "rgw 6/16/2022 15:47",
@@ -11,21 +11,24 @@
1111
"instance" : {
1212
"addContent" : "TR 6/20/2021 11:12",
1313
"addDate" : "rgw 5/12/2022 15:54",
14-
"addReplySnippet" : "rgw 5/12/2022 15:54",
14+
"addReplySnippet" : "LR 6/15/2022 11:21",
1515
"addSender" : "rgw 5/12/2022 15:54",
1616
"addText" : "RK 6/23/2021 11:46",
1717
"answeredMessageReceived" : "rgw 6/2/2022 10:29",
1818
"date" : "TR 6/20/2021 10:59",
19-
"initialize" : "rgw 6/2/2022 10:45",
19+
"initialize" : "LR 6/11/2022 13:01",
2020
"initializeDefaults" : "JS 6/11/2022 11:00",
2121
"initializeSubmorphs" : "rgw 6/2/2022 10:26",
2222
"isOutgoing" : "TR 6/20/2021 11:37",
2323
"messageColor" : "JB 5/29/2021 21:06",
2424
"messageDateText" : "JB 5/17/2021 10:04",
2525
"messageModel" : "TR 6/20/2021 11:00",
2626
"messageModel:" : "JS 5/26/2022 16:40",
27-
"mouseDown:" : "JS 5/20/2022 09:52",
27+
"mouseDown:" : "LR 6/5/2022 10:57",
2828
"secondaryColor" : "rgw 5/12/2022 15:54",
29-
"shrinkToContent" : "RK 8/4/2021 11:58",
29+
"sender" : "TR 6/20/2021 10:59",
30+
"senderId" : "8/5/2021 21:14:18",
31+
"shrinkToContent" : "LR 6/11/2022 12:38",
3032
"text" : "RK 6/29/2021 11:18",
33+
"triggerRequestScroll" : "LR 6/5/2022 12:45",
3134
"updateReplySnippet" : "rgw 6/2/2022 10:29" } }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Show the reply snippet on top of a referencing message.

0 commit comments

Comments
 (0)