Skip to content

Commit 048527e

Browse files
authored
Merge pull request #492 from hpi-swa-teaching/feature/GH-478
Feature/gh 478
2 parents e59057a + 00f3275 commit 048527e

File tree

47 files changed

+178
-75
lines changed

Some content is hidden

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

47 files changed

+178
-75
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
adding
2+
addAnsweredMessage: aMessage
3+
4+
| replyMessages |
5+
self messageDictionary at: aMessage id put: aMessage.
6+
replyMessages := self messages select: [:aReply | aReply replyToMessageId = aMessage id].
7+
replyMessages do: [:aReply | aReply triggerEvent: #answeredMessageReceived with: aMessage]
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
adding
22
addNewestMessage: aMessage
33

4-
self messages addFirst: aMessage.
4+
self messageIds addFirst: aMessage id.
5+
self messageDictionary at: aMessage id put: aMessage.
56
self triggerEvent: #newMessage with: aMessage.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
adding
22
addOldestMessage: aMessage
33

4-
self messages add: aMessage.
4+
self messageIds add: aMessage id.
5+
self messageDictionary at: aMessage id put: aMessage.
56
self triggerEvent: #loadedMessage with: aMessage.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
accessing
22
getMessageById: aNumber
33

4-
^ self messages
5-
detect: [:aMessage | aMessage id = aNumber]
6-
ifNone: TCCNotLoadedMessage new
4+
^ self messageDictionary at: aNumber ifAbsent: [
5+
self requestMessage: aNumber.
6+
^TCCNotLoadedMessage new]

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ initialize
33

44
self
55
title: '';
6-
messages: (OrderedCollection new);
6+
messageIds: OrderedCollection new;
7+
messageDictionary: Dictionary new;
78
waitingForUpdate: false;
89
infoLoaded: false;
910
isChannel: false;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageDictionary: aDictionary
3+
4+
messageDictionary := aDictionary
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageDictionary
3+
4+
^ messageDictionary
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageIds: aCollection
3+
4+
messageIds := aCollection
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
messageIds
3+
4+
^ messageIds

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

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
accessing
22
messages
33

4-
^ messages
4+
^ self messageIds collect: [:aNumber | self messageDictionary at: aNumber]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
loading
2+
requestMessage: aMessageId
3+
4+
self core send: (TCCRequest newGetMessage: aMessageId from: self id).

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,21 @@
77
"defaultUnknownPosition" : "RS 8/6/2021 10:38",
88
"newFromChatEvent:" : "RS 7/17/2021 17:07" },
99
"instance" : {
10-
"addNewestMessage:" : "RS 7/31/2021 15:45",
11-
"addOldestMessage:" : "pk 8/4/2021 12:07",
10+
"addAnsweredMessage:" : "JS 5/26/2022 16:41",
11+
"addNewestMessage:" : "JS 5/26/2022 14:22",
12+
"addOldestMessage:" : "JS 5/26/2022 14:23",
1213
"canSendMessages" : "5/11/2021 10:09:15",
1314
"canSendMessages:" : "JB 8/4/2021 00:08",
1415
"chatHistoryReceived:" : "rgw 5/12/2022 14:04",
1516
"core" : "per 6/4/2021 16:00",
1617
"core:" : "per 6/4/2021 15:58",
17-
"getMessageById:" : "rgw 5/12/2022 16:28",
18+
"getMessageById:" : "JS 5/26/2022 14:49",
1819
"id" : "rs 6/7/2020 22:20",
1920
"id:" : "pk 8/4/2021 11:25",
2021
"ifNotWaitingForUpdate:" : "js 8/2/2020 13:17",
2122
"infoLoaded" : "per 6/4/2021 15:59",
2223
"infoLoaded:" : "per 6/4/2021 15:51",
23-
"initialize" : "JS 5/20/2022 09:51",
24+
"initialize" : "JS 5/26/2022 14:31",
2425
"initializeFromChatEvent:" : "pk 8/5/2021 15:48",
2526
"isBasicGroup" : "per 6/15/2021 08:08",
2627
"isChannel" : "per 7/17/2021 15:51",
@@ -34,8 +35,11 @@
3435
"loadChatHistory" : "RS 7/17/2021 11:49",
3536
"loadInfo" : "per 6/15/2021 09:49",
3637
"loadInfoIfNotLoaded" : "TR 6/13/2021 15:54",
37-
"messages" : "R.S 6/1/2020 15:37",
38-
"messages:" : "5/11/2021 10:09:15",
38+
"messageDictionary" : "JS 5/26/2022 14:19",
39+
"messageDictionary:" : "JS 5/26/2022 14:20",
40+
"messageIds" : "JS 5/26/2022 14:20",
41+
"messageIds:" : "JS 5/26/2022 14:20",
42+
"messages" : "JS 5/26/2022 14:35",
3943
"muted" : "per 6/16/2021 17:34",
4044
"muted:" : "JB 8/4/2021 00:07",
4145
"numberOfMessages" : "RS 7/31/2021 15:19",
@@ -44,6 +48,7 @@
4448
"position" : "RS 5/10/2021 21:11",
4549
"position:" : "pk 8/6/2021 18:59",
4650
"positionKnown" : "pk 8/6/2021 18:25",
51+
"requestMessage:" : "JS 5/26/2022 14:48",
4752
"requestMessages:" : "RS 7/31/2021 15:28",
4853
"selectedReplyToMessageId" : "JS 5/20/2022 09:50",
4954
"selectedReplyToMessageId:" : "JS 5/20/2022 11:38",

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
],
77
"commentStamp" : "js 6/13/2020 16:25",
88
"instvars" : [
9-
"messages",
109
"position",
1110
"id",
1211
"title",
@@ -18,6 +17,8 @@
1817
"infoLoaded",
1918
"muted",
2019
"isChannel",
20+
"messageIds",
21+
"messageDictionary",
2122
"selectedReplyToMessageId" ],
2223
"name" : "TCCChat",
2324
"pools" : [
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
events
2+
answeredMessageReceived: aJsonObject
3+
4+
| chat message |
5+
chat := self chats getChat: (aJsonObject at: 'chat_id').
6+
message := TCCMessage newFromMessageEvent: aJsonObject in: chat with: self core.
7+
8+
chat addAnsweredMessage: message.

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"instance" : {
55
"addChat:" : "pk 8/5/2021 16:36",
66
"addNewMessage:" : "pk 8/5/2021 16:37",
7+
"answeredMessageReceived:" : "JS 5/26/2022 15:58",
78
"chatHistoryReceived:" : "pk 8/5/2021 16:37",
89
"chats" : "RS 8/1/2021 12:50",
910
"chats:" : "RS 8/1/2021 12:51",

packages/TelegramClient-Core.package/TCCCore.class/instance/handleEvent..st

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ handleEvent: anEvent
1313
['messages'] -> [self chatsHandler chatHistoryReceived: anEvent].
1414
['updateNewMessage'] -> [self handleMessageEvent: anEvent].
1515
['chat'] -> [self chatsHandler openNewChat: anEvent].
16+
['message'] -> [self chatsHandler answeredMessageReceived: anEvent.].
1617
}
1718
otherwise: [].
1819
update isSymbol ifTrue: [self triggerEvent: update].

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:" : "RS 7/31/2021 15:57",
20+
"handleEvent:" : "JS 5/26/2022 15:08",
2121
"handleMessageEvent:" : "rgw 5/12/2022 13:44",
2222
"handlePendingEvent:" : "per 8/2/2021 15:05",
2323
"imageStore" : "pk 6/19/2021 17:15",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
accessing
22
infoText
33

4-
^ 'Message not loaded'
4+
^ 'Message not loaded' , String cr
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"class" : {
3-
"infoText" : "rgw 5/12/2022 14:39" },
3+
"infoText" : "JS 5/27/2022 11:19" },
44
"instance" : {
55
"asReplySnippet" : "rgw 5/12/2022 15:34" } }
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
instance creation
2+
newGetMessage: aMessageId from: aChatId
3+
4+
^ TCCRequest
5+
newWithType: 'getMessage'
6+
from: {'chat_id' -> aChatId.
7+
'message_id' -> aMessageId}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"newGetChatHistoryOf:from:until:" : "RS 6/24/2021 09:20",
88
"newGetChats" : "RS 6/23/2021 16:37",
99
"newGetMe" : "JB 8/1/2021 11:34",
10+
"newGetMessage:from:" : "JS 5/26/2022 14:45",
1011
"newGetSuperGroupFullInfoOf:" : "JB 8/1/2021 11:32",
1112
"newGetSuperGroupMembersOf:with:until:" : "JB 8/1/2021 11:31",
1213
"newLogOut" : "RS 6/23/2021 16:33",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"inputBar:" : "RK 8/4/2021 10:48",
2929
"newChatSelected:" : "JS 5/20/2022 11:55",
3030
"selectedChat" : "rs 6/13/2020 09:11",
31-
"selectedChat:" : "JS 5/20/2022 10:42",
31+
"selectedChat:" : "JS 5/26/2022 16:40",
3232
"showInfoPage" : "per 5/30/2021 11:51",
3333
"textInputField" : "rs 6/13/2020 10:41",
3434
"textInputField:" : "rs 6/13/2020 10:42",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
answeredMessageReceived
3+
4+
self updateReplySnippet
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
accessing
22
messageModel: aCoreMessage
33

4-
messageModel := aCoreMessage
4+
messageModel := aCoreMessage.
5+
messageModel when: #answeredMessageReceived send: #answeredMessageReceived to: self
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
drawing
2+
updateReplySnippet
3+
4+
self submorphsDo: #abandon.
5+
self initialize.

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@
1313
"addReplySnippet" : "rgw 5/12/2022 15:54",
1414
"addSender" : "rgw 5/12/2022 15:54",
1515
"addText" : "RK 6/23/2021 11:46",
16+
"answeredMessageReceived" : "JS 5/27/2022 19:17",
1617
"date" : "TR 6/20/2021 10:59",
1718
"initialize" : "rgw 5/12/2022 16:33",
1819
"initializeDefaults" : "JB 6/11/2021 18:23",
1920
"isOutgoing" : "TR 6/20/2021 11:37",
2021
"messageColor" : "JB 5/29/2021 21:06",
2122
"messageDateText" : "JB 5/17/2021 10:04",
2223
"messageModel" : "TR 6/20/2021 11:00",
23-
"messageModel:" : "RK 8/4/2021 11:16",
24+
"messageModel:" : "JS 5/26/2022 16:40",
2425
"mouseDown:" : "JS 5/20/2022 09:52",
2526
"secondaryColor" : "rgw 5/12/2022 15:54",
2627
"sender" : "TR 6/20/2021 10:59",
2728
"senderId" : "8/5/2021 21:14:18",
2829
"shrinkToContent" : "RK 8/4/2021 11:58",
29-
"text" : "RK 6/29/2021 11:18" } }
30+
"text" : "RK 6/29/2021 11:18",
31+
"updateReplySnippet" : "JS 5/26/2022 16:33" } }
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
running
22
setUp
33

4+
| message |
45
super setUp.
56

67
self chat: (TCCChat new
@@ -9,9 +10,11 @@ setUp
910
yourself).
1011

1112
1 to: 5 do: [:aNumber |
12-
self chat messages add: (TCCTextMessage new
13+
message := (TCCTextMessage new
1314
text: aNumber asString;
1415
chat: self chat;
1516
userId: aNumber * 3;
1617
id: aNumber * 4;
17-
date: (DateAndTime fromUnixTime: aNumber * 60))].
18+
date: (DateAndTime fromUnixTime: aNumber * 60)).
19+
self chat messageIds add: message id.
20+
self chat messageDictionary at: message id put: message]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
testing
2+
testAddAnsweredMessage
3+
4+
| message |
5+
message := TCCTextMessage new id: 12.
6+
self chat addAnsweredMessage: message.
7+
self assert: 5 equals: self chat messages size.
8+
self assert: message equals: (self chat getMessageById: 12)

packages/TelegramClientTests-Core.package/TCTCChatTests.class/instance/testGetMessageById.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ testGetMessageById
77
self assert: '4' equals: message asText.
88

99
message := self chat getMessageById: 17.
10-
self assert: 'Message not loaded' equals: message asReplySnippet.
10+
self assert: TCCNotLoadedMessage infoText equals: message asReplySnippet.
Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
testing
22
testMessages
33

4-
| collection |
4+
| message1 message2 messageIds messages |
5+
6+
message1 := TCCMessage new id: 1.
7+
message2 := TCCMessage new id: 2.
8+
messageIds := OrderedCollection newFrom: {message1 id. message2 id}.
9+
messages := OrderedCollection newFrom: {message1. message2}.
510

6-
collection := OrderedCollection newFrom: {TCCMessage new. TCCMessage new}.
11+
self chat messageIds: messageIds.
12+
self chat messageDictionary at: message1 id put: message1.
13+
self chat messageDictionary at: message2 id put: message2.
714

8-
self chat messages: collection.
9-
self assert: collection equals: self chat messages.
15+
self assert: messageIds equals: self chat messageIds.
16+
self assert: message1 equals: (self chat messageDictionary at: message1 id).
17+
self assert: message2 equals: (self chat messageDictionary at: message2 id).
18+
self assert: messages equals: self chat messages

packages/TelegramClientTests-Core.package/TCTCChatTests.class/methodProperties.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
"instance" : {
55
"chat" : "LL 8/2/2020 20:25",
66
"chat:" : "LL 8/2/2020 20:26",
7-
"setUp" : "tom.richter 7/25/2021 11:24",
7+
"setUp" : "JS 5/26/2022 14:33",
8+
"testAddAnsweredMessage" : "JS 5/26/2022 15:05",
89
"testAddNewestMessage" : "RS 7/31/2021 15:45",
910
"testAddOldestMessage" : "TR 6/22/2021 09:49",
10-
"testGetMessageById" : "rgw 5/12/2022 16:41",
11+
"testGetMessageById" : "JS 5/27/2022 19:32",
1112
"testId" : "pk 8/5/2021 17:13",
1213
"testLastMessage" : "per 5/21/2021 16:31",
1314
"testMessage" : "pk 8/5/2021 17:06",
14-
"testMessages" : "per 5/21/2021 16:30",
15+
"testMessages" : "JS 5/26/2022 14:37",
1516
"testMessagesSize" : "per 5/21/2021 16:30",
1617
"testNullId" : "pk 8/5/2021 17:13",
1718
"testNullMessages" : "js 8/2/2020 21:17",

packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageCorrectlyConstructedFromJson.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ testMessageCorrectlyConstructedFromJson
1111
self assert: TCTMMocks mockMessageDate equals: message date.
1212
self assert: false equals: message isOutgoing.
1313
self assert: TCTMMocks mockUser1 id equals: message userId.
14-
self assert: TCTMMocks mockMessageReplyMessageId equals: message replyToMessageId
14+
self assert: 0 equals: message replyToMessageId.

packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageReplyText.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ testing
22
testMessageReplyText
33

44
| chat replyMessage originalMessage |
5-
chat := TCTMMocks mockPrivateChat.
5+
chat := (TCTMMocks mockPrivateChat core: self core).
66
originalMessage := TCTMMocks mockTextMessageWith: self core inChat: chat.
77
replyMessage := TCTMMocks mockTextReplyMessageWith: self core inChat: chat.
88
chat addNewestMessage: replyMessage.

packages/TelegramClientTests-Core.package/TCTCMessageTests.class/methodProperties.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
"class" : {
33
},
44
"instance" : {
5-
"testMessageCorrectlyConstructedFromJson" : "rgw 5/12/2022 14:54",
5+
"testMessageCorrectlyConstructedFromJson" : "JS 5/27/2022 19:30",
66
"testMessageHasTextRepresentation" : "tom.richter 6/26/2021 21:06",
77
"testMessageIsReply" : "rgw 5/12/2022 16:40",
88
"testMessageReplySnippetTruncates" : "rgw 5/12/2022 16:39",
9-
"testMessageReplyText" : "rgw 5/12/2022 16:42",
9+
"testMessageReplyText" : "JS 5/27/2022 19:27",
1010
"testMessageShouldNotNotify" : "RS 7/17/2021 10:53",
1111
"testMessageShouldNotify" : "RS 7/17/2021 10:53",
12-
"testMessageWithMessageSenderChatCorrectlyConstructedFromJson" : "tr 7/25/2021 22:39",
12+
"testMessageWithMessageSenderChatCorrectlyConstructedFromJson" : "JS 5/26/2022 15:32",
1313
"testNotSupportedMessageTypeIdentifiedCorrectly" : "tom.richter 6/28/2021 13:54",
1414
"testPhotoMessageCorrectlyConstructedFromJson" : "tom.richter 6/28/2021 15:05",
1515
"testPhotoMessageTypeIdentifiedCorrectly" : "RK 6/26/2021 11:34",

0 commit comments

Comments
 (0)