Skip to content

Commit 55ecf49

Browse files
authored
respect muted setting of chats (#397)
* enable muted notifications * building tests * add tests, refactor mocks
1 parent 2bdb35e commit 55ecf49

File tree

24 files changed

+115
-9
lines changed

24 files changed

+115
-9
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ initializeFromChatEvent: anEvent
88
id: (chat at: 'id');
99
canSendMessages: ((chat at: 'permissions') at: 'can_send_messages');
1010
type: ((chat at: 'type') at: '@type');
11+
muted: ((chat at: 'notification_settings') at: 'mute_for') > 0;
1112
lastMessage: ''
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
muted: aBoolean
3+
4+
muted := aBoolean
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
muted
3+
4+
^ muted

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"infoLoaded" : "per 6/4/2021 15:59",
1616
"infoLoaded:" : "per 6/4/2021 15:51",
1717
"initialize" : "per 6/4/2021 15:49",
18-
"initializeFromChatEvent:" : "RS 5/29/2021 17:23",
18+
"initializeFromChatEvent:" : "per 6/16/2021 17:51",
1919
"isBasicGroup" : "per 6/15/2021 08:08",
2020
"isGroup" : "per 6/4/2021 14:42",
2121
"isPrivate" : "per 6/4/2021 14:42",
@@ -26,6 +26,8 @@
2626
"loadInfoIfNotLoaded" : "TR 6/13/2021 15:54",
2727
"messages" : "R.S 6/1/2020 15:37",
2828
"messages:" : "5/11/2021 10:09:15",
29+
"muted" : "per 6/16/2021 17:34",
30+
"muted:" : "per 6/16/2021 17:35",
2931
"numberOfMessages" : "js 8/1/2020 18:04",
3032
"numberOfRequestedMessages" : "js 8/1/2020 17:43",
3133
"numberOfRequestedMessages:" : "5/11/2021 10:09:15",

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
"type",
1818
"canSendMessages",
1919
"core",
20-
"infoLoaded" ],
20+
"infoLoaded",
21+
"muted" ],
2122
"name" : "TCCChat",
2223
"pools" : [
2324
],
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
shouldNotify
3+
4+
^ (self isOutgoing not) and: [self chat muted not]

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@
1919
"message:" : "js 8/2/2020 22:01",
2020
"sender" : "pk 6/11/2021 10:21",
2121
"senderID" : "per 5/13/2021 08:49",
22-
"senderID:" : "js 8/2/2020 22:00" } }
22+
"senderID:" : "js 8/2/2020 22:00",
23+
"shouldNotify" : "per 6/16/2021 17:35" } }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
event handling
22
newMessageReceived: aMessage
33

4-
aMessage isOutgoing ifFalse: [
4+
aMessage shouldNotify ifTrue: [
55
[(TCUNotification newWithMessage: aMessage) openInWorld] fork].

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
"initializeChatWindow" : "r.s 8/2/2020 19:09",
2020
"logout" : "js 6/13/2020 18:11",
2121
"newChatSelected:" : "js 8/2/2020 22:33",
22-
"newMessageReceived:" : "per 5/16/2021 15:18",
22+
"newMessageReceived:" : "per 6/16/2021 17:36",
2323
"sendMessage:" : "rs 6/17/2020 21:19",
2424
"subscribeChatsList" : "js 7/31/2020 23:09" } }

packages/TelegramClient-UI.package/TCUNotification.class/instance/startTimeOut.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ initialization
22
startTimeOut
33

44
self class defaultTimeOutDuration seconds wait.
5-
self fadeOut.
5+
self fadeOutThen: [self abandon].

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@
2727
"openInWorld" : "JB 6/4/2021 21:52",
2828
"sender" : "per 5/13/2021 08:50",
2929
"sender:" : "per 5/13/2021 09:21",
30-
"startTimeOut" : "JB 6/11/2021 15:21" } }
30+
"startTimeOut" : "per 6/18/2021 09:11" } }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
this class tests TCCMessages
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
testing
2+
testMessageShouldNotNotify
3+
4+
| chat |
5+
6+
chat := TCCChat newFromChatEvent: (TCTMMocks mockChatEventMutedFor: 42).
7+
self assert: false equals: ((TCTMMocks mockMessageFor: chat) shouldNotify).
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
testing
2+
testMessageShouldNotify
3+
4+
| chat |
5+
6+
chat := TCCChat newFromChatEvent: (TCTMMocks mockChatEventMutedFor: 0).
7+
self assert: true equals: ((TCTMMocks mockMessageFor: chat) shouldNotify).
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"class" : {
3+
},
4+
"instance" : {
5+
"testMessageShouldNotNotify" : "per 6/18/2021 09:28",
6+
"testMessageShouldNotify" : "per 6/18/2021 09:28" } }
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"category" : "TelegramClientTests-Core",
3+
"classinstvars" : [
4+
],
5+
"classvars" : [
6+
],
7+
"commentStamp" : "per 6/16/2021 17:38",
8+
"instvars" : [
9+
],
10+
"name" : "TCTCMessageTests",
11+
"pools" : [
12+
],
13+
"super" : "TCTCNoTdlibTestCase",
14+
"type" : "normal" }
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
chat event
2+
mockChatEventMutedFor: aNumber
3+
4+
^ (JsonObject newFrom: {
5+
'@type' -> 'chat'.
6+
'chat' -> (JsonObject newFrom: {
7+
'id' -> self mockBasicGroupChat id.
8+
'title' -> 'MutedMockChat'.
9+
'type' -> (JsonObject newFrom: {
10+
'@type' -> 'chatTypeBasicGroup'.
11+
'basic_group_id' -> self mockBasicGroupChat id.
12+
}).
13+
'permissions' -> (JsonObject newFrom: {
14+
'@type' -> 'can_send_messages'
15+
}).
16+
'notification_settings' -> (JsonObject newFrom: {
17+
'mute_for' -> aNumber
18+
}).
19+
})
20+
})
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
message
2+
mockMessageFor: aChat
3+
4+
^ TCCMessage newFromMessageEvent: (self mockMessageJsonFrom: aChat id)
5+
in: aChat
6+
with: self mockCore
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
chat
2+
mockMutedPrivateChat
3+
4+
^ self mockPrivateChat muted: true;
5+
yourself

packages/TelegramClientTests-Misc.package/TCTMMocks.class/class/mockPrivateChat.st

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ mockPrivateChat
88
lastMessage: 'lastPrivateMessage';
99
canSendMessages: true;
1010
infoLoaded: true;
11+
muted: false;
1112
yourself

packages/TelegramClientTests-Misc.package/TCTMMocks.class/methodProperties.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22
"class" : {
33
"mockBasicGroupChat" : "per 6/15/2021 09:16",
44
"mockBasicGroupFullInfoJson" : "per 6/10/2021 19:41",
5+
"mockChatEventMutedFor:" : "per 6/18/2021 09:20",
56
"mockChats" : "TR 5/27/2021 19:55",
67
"mockCore" : "TR 6/13/2021 15:45",
78
"mockMembers" : "per 6/15/2021 08:25",
89
"mockMessage" : "per 6/10/2021 19:30",
910
"mockMessageDate" : "RS 6/6/2021 11:42",
1011
"mockMessageEventFrom:" : "RS 5/23/2021 17:56",
12+
"mockMessageFor:" : "per 6/18/2021 09:28",
1113
"mockMessageID" : "pk 5/19/2021 11:36",
1214
"mockMessageJsonFrom:" : "per 6/10/2021 19:30",
1315
"mockMessageText" : "pk 5/19/2021 11:38",
1416
"mockMessageWith:" : "6/13/2021 15:37:31",
15-
"mockPrivateChat" : "per 6/15/2021 09:15",
17+
"mockMutedPrivateChat" : "per 6/18/2021 08:55",
18+
"mockPrivateChat" : "per 6/18/2021 09:17",
1619
"mockSupergroupChat" : "per 6/15/2021 09:16",
1720
"mockSupergroupMembersJson" : "per 6/10/2021 20:53",
1821
"mockUnloadedBasicGroupChat" : "per 6/15/2021 09:16",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
testing
2+
testMutedNotificationNotVisible
3+
4+
| message |
5+
message := TCTMMocks mockMessage.
6+
message chat: TCTMMocks mockMutedPrivateChat.
7+
TCUMain basicNew newMessageReceived: message.
8+
self deny: ((Project current world submorphOfClass: TCUNotification) notNil).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
testing
2+
testUnmutedNotificationVisible
3+
4+
| message |
5+
message := TCTMMocks mockMessage.
6+
message chat: TCTMMocks mockPrivateChat.
7+
TCUMain basicNew newMessageReceived: message.
8+
1 seconds wait.
9+
self assert: ((Project current world submorphOfClass: TCUNotification) notNil).

packages/TelegramClientTests-UI.package/TCTUNotificationTests.class/methodProperties.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
"class" : {
33
},
44
"instance" : {
5+
"testMutedNotificationNotVisible" : "per 6/18/2021 09:35",
56
"testNotificationConstructor" : "TR 6/13/2021 15:45",
67
"testNotificationContainsMessage" : "JB 6/7/2021 09:28",
78
"testNotificationContainsSender" : "per 6/10/2021 19:31",
89
"testNotificationHidesPrivateChatTitle" : "TR 6/13/2021 15:46",
9-
"testNotificationShowsGroupChatTitle" : "TR 6/13/2021 15:46" } }
10+
"testNotificationShowsGroupChatTitle" : "TR 6/13/2021 15:46",
11+
"testUnmutedNotificationVisible" : "per 6/18/2021 09:35" } }

0 commit comments

Comments
 (0)