diff --git a/packages/TelegramClient-Core.package/TCCChat.class/instance/initializeFromChatEvent..st b/packages/TelegramClient-Core.package/TCCChat.class/instance/initializeFromChatEvent..st index 9268a8886..6aa2bc718 100644 --- a/packages/TelegramClient-Core.package/TCCChat.class/instance/initializeFromChatEvent..st +++ b/packages/TelegramClient-Core.package/TCCChat.class/instance/initializeFromChatEvent..st @@ -8,4 +8,5 @@ initializeFromChatEvent: anEvent id: (chat at: 'id'); canSendMessages: ((chat at: 'permissions') at: 'can_send_messages'); type: ((chat at: 'type') at: '@type'); + muted: ((chat at: 'notification_settings') at: 'mute_for') > 0; lastMessage: '' \ No newline at end of file diff --git a/packages/TelegramClient-Core.package/TCCChat.class/instance/muted..st b/packages/TelegramClient-Core.package/TCCChat.class/instance/muted..st new file mode 100644 index 000000000..389cc6f42 --- /dev/null +++ b/packages/TelegramClient-Core.package/TCCChat.class/instance/muted..st @@ -0,0 +1,4 @@ +accessing +muted: aBoolean + + muted := aBoolean \ No newline at end of file diff --git a/packages/TelegramClient-Core.package/TCCChat.class/instance/muted.st b/packages/TelegramClient-Core.package/TCCChat.class/instance/muted.st new file mode 100644 index 000000000..406c929f0 --- /dev/null +++ b/packages/TelegramClient-Core.package/TCCChat.class/instance/muted.st @@ -0,0 +1,4 @@ +accessing +muted + + ^ muted \ No newline at end of file diff --git a/packages/TelegramClient-Core.package/TCCChat.class/methodProperties.json b/packages/TelegramClient-Core.package/TCCChat.class/methodProperties.json index 56ce29546..738dc7561 100644 --- a/packages/TelegramClient-Core.package/TCCChat.class/methodProperties.json +++ b/packages/TelegramClient-Core.package/TCCChat.class/methodProperties.json @@ -15,7 +15,7 @@ "infoLoaded" : "per 6/4/2021 15:59", "infoLoaded:" : "per 6/4/2021 15:51", "initialize" : "per 6/4/2021 15:49", - "initializeFromChatEvent:" : "RS 5/29/2021 17:23", + "initializeFromChatEvent:" : "per 6/16/2021 17:51", "isBasicGroup" : "per 6/15/2021 08:08", "isGroup" : "per 6/4/2021 14:42", "isPrivate" : "per 6/4/2021 14:42", @@ -26,6 +26,8 @@ "loadInfoIfNotLoaded" : "TR 6/13/2021 15:54", "messages" : "R.S 6/1/2020 15:37", "messages:" : "5/11/2021 10:09:15", + "muted" : "per 6/16/2021 17:34", + "muted:" : "per 6/16/2021 17:35", "numberOfMessages" : "js 8/1/2020 18:04", "numberOfRequestedMessages" : "js 8/1/2020 17:43", "numberOfRequestedMessages:" : "5/11/2021 10:09:15", diff --git a/packages/TelegramClient-Core.package/TCCChat.class/properties.json b/packages/TelegramClient-Core.package/TCCChat.class/properties.json index 5f19ee48d..052d9d457 100644 --- a/packages/TelegramClient-Core.package/TCCChat.class/properties.json +++ b/packages/TelegramClient-Core.package/TCCChat.class/properties.json @@ -17,7 +17,8 @@ "type", "canSendMessages", "core", - "infoLoaded" ], + "infoLoaded", + "muted" ], "name" : "TCCChat", "pools" : [ ], diff --git a/packages/TelegramClient-Core.package/TCCMessage.class/instance/shouldNotify.st b/packages/TelegramClient-Core.package/TCCMessage.class/instance/shouldNotify.st new file mode 100644 index 000000000..87c4c733f --- /dev/null +++ b/packages/TelegramClient-Core.package/TCCMessage.class/instance/shouldNotify.st @@ -0,0 +1,4 @@ +accessing +shouldNotify + + ^ (self isOutgoing not) and: [self chat muted not] \ No newline at end of file diff --git a/packages/TelegramClient-Core.package/TCCMessage.class/methodProperties.json b/packages/TelegramClient-Core.package/TCCMessage.class/methodProperties.json index 4ea5bf0e1..f64261a54 100644 --- a/packages/TelegramClient-Core.package/TCCMessage.class/methodProperties.json +++ b/packages/TelegramClient-Core.package/TCCMessage.class/methodProperties.json @@ -19,4 +19,5 @@ "message:" : "js 8/2/2020 22:01", "sender" : "pk 6/11/2021 10:21", "senderID" : "per 5/13/2021 08:49", - "senderID:" : "js 8/2/2020 22:00" } } + "senderID:" : "js 8/2/2020 22:00", + "shouldNotify" : "per 6/16/2021 17:35" } } diff --git a/packages/TelegramClient-UI.package/TCUMain.class/instance/newMessageReceived..st b/packages/TelegramClient-UI.package/TCUMain.class/instance/newMessageReceived..st index c6e5ee7cf..1474a78e1 100644 --- a/packages/TelegramClient-UI.package/TCUMain.class/instance/newMessageReceived..st +++ b/packages/TelegramClient-UI.package/TCUMain.class/instance/newMessageReceived..st @@ -1,5 +1,5 @@ event handling newMessageReceived: aMessage - aMessage isOutgoing ifFalse: [ + aMessage shouldNotify ifTrue: [ [(TCUNotification newWithMessage: aMessage) openInWorld] fork]. \ No newline at end of file diff --git a/packages/TelegramClient-UI.package/TCUMain.class/methodProperties.json b/packages/TelegramClient-UI.package/TCUMain.class/methodProperties.json index dab302aff..fd801d86d 100644 --- a/packages/TelegramClient-UI.package/TCUMain.class/methodProperties.json +++ b/packages/TelegramClient-UI.package/TCUMain.class/methodProperties.json @@ -19,6 +19,6 @@ "initializeChatWindow" : "r.s 8/2/2020 19:09", "logout" : "js 6/13/2020 18:11", "newChatSelected:" : "js 8/2/2020 22:33", - "newMessageReceived:" : "per 5/16/2021 15:18", + "newMessageReceived:" : "per 6/16/2021 17:36", "sendMessage:" : "rs 6/17/2020 21:19", "subscribeChatsList" : "js 7/31/2020 23:09" } } diff --git a/packages/TelegramClient-UI.package/TCUNotification.class/instance/startTimeOut.st b/packages/TelegramClient-UI.package/TCUNotification.class/instance/startTimeOut.st index d0cdbe250..3c2cf6289 100644 --- a/packages/TelegramClient-UI.package/TCUNotification.class/instance/startTimeOut.st +++ b/packages/TelegramClient-UI.package/TCUNotification.class/instance/startTimeOut.st @@ -2,4 +2,4 @@ initialization startTimeOut self class defaultTimeOutDuration seconds wait. - self fadeOut. \ No newline at end of file + self fadeOutThen: [self abandon]. \ No newline at end of file diff --git a/packages/TelegramClient-UI.package/TCUNotification.class/methodProperties.json b/packages/TelegramClient-UI.package/TCUNotification.class/methodProperties.json index 91e72e81f..99f229570 100644 --- a/packages/TelegramClient-UI.package/TCUNotification.class/methodProperties.json +++ b/packages/TelegramClient-UI.package/TCUNotification.class/methodProperties.json @@ -27,4 +27,4 @@ "openInWorld" : "JB 6/4/2021 21:52", "sender" : "per 5/13/2021 08:50", "sender:" : "per 5/13/2021 09:21", - "startTimeOut" : "JB 6/11/2021 15:21" } } + "startTimeOut" : "per 6/18/2021 09:11" } } diff --git a/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/README.md b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/README.md new file mode 100644 index 000000000..d3aee9b9c --- /dev/null +++ b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/README.md @@ -0,0 +1 @@ +this class tests TCCMessages diff --git a/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageShouldNotNotify.st b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageShouldNotNotify.st new file mode 100644 index 000000000..3432c10be --- /dev/null +++ b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageShouldNotNotify.st @@ -0,0 +1,7 @@ +testing +testMessageShouldNotNotify + + | chat | + + chat := TCCChat newFromChatEvent: (TCTMMocks mockChatEventMutedFor: 42). + self assert: false equals: ((TCTMMocks mockMessageFor: chat) shouldNotify). \ No newline at end of file diff --git a/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageShouldNotify.st b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageShouldNotify.st new file mode 100644 index 000000000..15c4cf8ac --- /dev/null +++ b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/instance/testMessageShouldNotify.st @@ -0,0 +1,7 @@ +testing +testMessageShouldNotify + + | chat | + + chat := TCCChat newFromChatEvent: (TCTMMocks mockChatEventMutedFor: 0). + self assert: true equals: ((TCTMMocks mockMessageFor: chat) shouldNotify). \ No newline at end of file diff --git a/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/methodProperties.json b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/methodProperties.json new file mode 100644 index 000000000..c92eb093c --- /dev/null +++ b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/methodProperties.json @@ -0,0 +1,6 @@ +{ + "class" : { + }, + "instance" : { + "testMessageShouldNotNotify" : "per 6/18/2021 09:28", + "testMessageShouldNotify" : "per 6/18/2021 09:28" } } diff --git a/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/properties.json b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/properties.json new file mode 100644 index 000000000..ad6abfc66 --- /dev/null +++ b/packages/TelegramClientTests-Core.package/TCTCMessageTests.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "TelegramClientTests-Core", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "per 6/16/2021 17:38", + "instvars" : [ + ], + "name" : "TCTCMessageTests", + "pools" : [ + ], + "super" : "TCTCNoTdlibTestCase", + "type" : "normal" } diff --git a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockChatEventMutedFor..st b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockChatEventMutedFor..st new file mode 100644 index 000000000..534048f92 --- /dev/null +++ b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockChatEventMutedFor..st @@ -0,0 +1,20 @@ +chat event +mockChatEventMutedFor: aNumber + + ^ (JsonObject newFrom: { + '@type' -> 'chat'. + 'chat' -> (JsonObject newFrom: { + 'id' -> self mockBasicGroupChat id. + 'title' -> 'MutedMockChat'. + 'type' -> (JsonObject newFrom: { + '@type' -> 'chatTypeBasicGroup'. + 'basic_group_id' -> self mockBasicGroupChat id. + }). + 'permissions' -> (JsonObject newFrom: { + '@type' -> 'can_send_messages' + }). + 'notification_settings' -> (JsonObject newFrom: { + 'mute_for' -> aNumber + }). + }) + }) \ No newline at end of file diff --git a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockMessageFor..st b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockMessageFor..st new file mode 100644 index 000000000..2382af525 --- /dev/null +++ b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockMessageFor..st @@ -0,0 +1,6 @@ +message +mockMessageFor: aChat + + ^ TCCMessage newFromMessageEvent: (self mockMessageJsonFrom: aChat id) + in: aChat + with: self mockCore \ No newline at end of file diff --git a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockMutedPrivateChat.st b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockMutedPrivateChat.st new file mode 100644 index 000000000..b79e9f0e2 --- /dev/null +++ b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockMutedPrivateChat.st @@ -0,0 +1,5 @@ +chat +mockMutedPrivateChat + + ^ self mockPrivateChat muted: true; + yourself \ No newline at end of file diff --git a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockPrivateChat.st b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockPrivateChat.st index 452439a72..02a44ca45 100644 --- a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockPrivateChat.st +++ b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockPrivateChat.st @@ -8,4 +8,5 @@ mockPrivateChat lastMessage: 'lastPrivateMessage'; canSendMessages: true; infoLoaded: true; + muted: false; yourself \ No newline at end of file diff --git a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/methodProperties.json b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/methodProperties.json index 3d3131007..b731c8a35 100644 --- a/packages/TelegramClientTests-Misc.package/TCTMMocks.class/methodProperties.json +++ b/packages/TelegramClientTests-Misc.package/TCTMMocks.class/methodProperties.json @@ -2,17 +2,20 @@ "class" : { "mockBasicGroupChat" : "per 6/15/2021 09:16", "mockBasicGroupFullInfoJson" : "per 6/10/2021 19:41", + "mockChatEventMutedFor:" : "per 6/18/2021 09:20", "mockChats" : "TR 5/27/2021 19:55", "mockCore" : "TR 6/13/2021 15:45", "mockMembers" : "per 6/15/2021 08:25", "mockMessage" : "per 6/10/2021 19:30", "mockMessageDate" : "RS 6/6/2021 11:42", "mockMessageEventFrom:" : "RS 5/23/2021 17:56", + "mockMessageFor:" : "per 6/18/2021 09:28", "mockMessageID" : "pk 5/19/2021 11:36", "mockMessageJsonFrom:" : "per 6/10/2021 19:30", "mockMessageText" : "pk 5/19/2021 11:38", "mockMessageWith:" : "6/13/2021 15:37:31", - "mockPrivateChat" : "per 6/15/2021 09:15", + "mockMutedPrivateChat" : "per 6/18/2021 08:55", + "mockPrivateChat" : "per 6/18/2021 09:17", "mockSupergroupChat" : "per 6/15/2021 09:16", "mockSupergroupMembersJson" : "per 6/10/2021 20:53", "mockUnloadedBasicGroupChat" : "per 6/15/2021 09:16", diff --git a/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/instance/testMutedNotificationNotVisible.st b/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/instance/testMutedNotificationNotVisible.st new file mode 100644 index 000000000..e7706c396 --- /dev/null +++ b/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/instance/testMutedNotificationNotVisible.st @@ -0,0 +1,8 @@ +testing +testMutedNotificationNotVisible + + | message | + message := TCTMMocks mockMessage. + message chat: TCTMMocks mockMutedPrivateChat. + TCUMain basicNew newMessageReceived: message. + self deny: ((Project current world submorphOfClass: TCUNotification) notNil). \ No newline at end of file diff --git a/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/instance/testUnmutedNotificationVisible.st b/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/instance/testUnmutedNotificationVisible.st new file mode 100644 index 000000000..28ee46ca5 --- /dev/null +++ b/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/instance/testUnmutedNotificationVisible.st @@ -0,0 +1,9 @@ +testing +testUnmutedNotificationVisible + + | message | + message := TCTMMocks mockMessage. + message chat: TCTMMocks mockPrivateChat. + TCUMain basicNew newMessageReceived: message. + 1 seconds wait. + self assert: ((Project current world submorphOfClass: TCUNotification) notNil). \ No newline at end of file diff --git a/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/methodProperties.json b/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/methodProperties.json index f08c23d86..0edc64559 100644 --- a/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/methodProperties.json +++ b/packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/methodProperties.json @@ -2,8 +2,10 @@ "class" : { }, "instance" : { + "testMutedNotificationNotVisible" : "per 6/18/2021 09:35", "testNotificationConstructor" : "TR 6/13/2021 15:45", "testNotificationContainsMessage" : "JB 6/7/2021 09:28", "testNotificationContainsSender" : "per 6/10/2021 19:31", "testNotificationHidesPrivateChatTitle" : "TR 6/13/2021 15:46", - "testNotificationShowsGroupChatTitle" : "TR 6/13/2021 15:46" } } + "testNotificationShowsGroupChatTitle" : "TR 6/13/2021 15:46", + "testUnmutedNotificationVisible" : "per 6/18/2021 09:35" } }