|
1 | 1 | # Changelog
|
2 | 2 |
|
3 |
| -## v4.1.8 (Dec 02, 2022) |
4 |
| - |
5 |
| -### Improvements |
6 |
| -* Added `urlSession(_:task:didCompleteWithError:)` method implementation to the native web socket engine |
7 |
| - |
8 |
| -## v4.1.7 (Nov 29, 2022) |
9 |
| - |
10 |
| -### Improvements |
11 |
| -* Fixed a memory leak in the web socket engine |
12 |
| -* Added error log when using uninitialized Sendbird instance |
13 |
| -* Fixed to upsert channel change into database when receiving events |
14 |
| -* Fixed to use cached open channel when receiving system event |
15 |
| - |
16 |
| -## v4.1.6 (Nov 16, 2022) |
17 |
| - |
18 |
| -### Improvements |
19 |
| -* Fixed a bug where `GroupChannelCollection::loadMore`'s `completionHandler` is not called under iOS 13 |
20 |
| - |
21 |
| -## v4.1.5 (Nov 09, 2022) |
22 |
| - |
23 |
| -### Improvements |
24 |
| -* Fixed a crash issue when logging in RequestQueue |
25 |
| - |
26 |
| -## v4.1.4 (Nov 09, 2022) |
27 |
| - |
28 |
| -### Improvements |
29 |
| -* Fixed filtering logic (`joinedOnly`) in `GroupChannelListQuery.myMemberStateFilter` |
30 |
| -* Fixed an issue where deleted channels remain in the local cache |
31 |
| -* Applied atomicity to `cacheChannels`, `hasNext` in `GroupChannelCollection` |
32 |
| -* Fixed concurrency issue in `SafeDictionary` |
33 |
| - |
34 |
| -## v4.1.3 (Nov 02, 2022) |
35 |
| - |
36 |
| -### Improvements |
37 |
| -* Fixed concurrency issue in `CachedDataMap` |
38 |
| - |
39 |
| - |
40 |
| -## v4.1.2 (Oct 27, 2022) |
41 |
| - |
42 |
| -* Fixed `MarkAsDelivered(remoteNotificationPayload: completionHandler:)` to work without being connected |
43 |
| -* Fixed a deserialized fileMessage's eKey not updating |
44 |
| -* Added reachability log |
45 |
| -* Fixed concurrency issue on user connection |
46 |
| - |
47 |
| -## v4.1.1 (Oct 21, 2022) |
48 |
| - |
49 |
| -- Fixed a bug where the request ID of the user message response sent through the API is empty |
50 |
| -- Fixed a bug when parsing other user's VOTE event |
51 |
| -- Fixed a bug where poll changeLog not being delivered in message collection |
52 |
| -- Changed PollListQueryParams.limit's defalut value 20 to 10 |
53 |
| -- Fixed default value of user.isActive |
54 |
| - |
55 |
| -## v4.1.0 (Oct 14, 2022) |
56 |
| - |
57 |
| -# Features |
58 |
| -## Polls |
59 |
| -Polls is released :tada: Here’s where we think it will be really powerful. |
60 |
| -- Collect feedback and customer satisfaction |
61 |
| -- Drive engagement by receiving participants in preferences |
62 |
| -- Run surveys and quiz shows |
63 |
| -- And many more! |
64 |
| -## Scheduled messages |
65 |
| -Scheduled messages is released Here’s where we think it will be really useful. |
66 |
| -- Let your users queue their messages for the future |
67 |
| -- Set helpful reminders and notifications to nudge certain actions |
68 |
| -- And many more! |
69 |
| -## Improvements |
70 |
| -Please note that both Polls and Scheduled Messages are released as beta features. Thus specific parameters and properties may change to improve client’s overall experience. |
71 |
| - |
72 |
| -Stay tuned for updates as we are rolling out more exciting features and see below for exact specifications |
73 |
| - |
74 |
| --------- |
75 |
| -## Specification |
76 |
| -### Polls |
77 |
| -- Create |
78 |
| - - `Poll.create(params: PollCreateParams, completionHandler: @escaping PollHandler)` |
79 |
| - - `UserMessageCreateParams.pollId` |
80 |
| -- Read |
81 |
| - - `Poll.get(params: PollRetrievalParams, completionHandler: @escaping PollHandler)` |
82 |
| - - `SendbirdChat.createPollListQuery(params: PollListQueryParams)` |
83 |
| - - `SendbirdChat.createPollListQuery(paramsBuilder: (PollListQueryParams) -> Void)` |
84 |
| - - `GroupChannel.createPollListQuery(limit: UInt)` |
85 |
| - - `UserMessage.poll` |
86 |
| -- Update |
87 |
| - - `GroupChannel.updatePoll(pollId: Int64, params: PollUpdateParams, completionHandler: PollHandler?)` |
88 |
| - - `GroupChannel.closePoll(pollId: Int64, completionHandler: PollHandler?)` |
89 |
| -- Delete |
90 |
| - - `GroupChannel.deletePoll(pollId: Int64, completionHandler: SBErrorHandler?)` |
91 |
| -- Others: |
92 |
| - - `Poll` |
93 |
| - - `GroupChannel.getPollChangeLogs(token: String?, completionHandler: PollChangeLogsHandler?)()` |
94 |
| - - `GroupChannel.getPollChangeLogs(timestamp: Int64, completionHandler: PollChangeLogsHandler?)()` |
95 |
| - - `PollData` |
96 |
| - - `GroupChannelDelegate.channel(_ channel: GroupChannel, didUpdatePoll event: PollUpdateEvent)` |
97 |
| - - `GroupChannelDelegate.channel(_ channel: GroupChannel, didVotePoll event: PollVoteEvent)` |
98 |
| - - `GroupChannelDelegate.channel(_ channel: GroupChannel, pollWasDeleted pollId: Int64)` |
99 |
| -### Options |
100 |
| -- Create |
101 |
| - - `PollCreateParams.optionTexts` |
102 |
| - - `GroupChannel.addPollOption(pollId: Int64, optionText: String, completionHandler: PollHandler?)` |
103 |
| -- Read |
104 |
| - - `PollOption.getPollOption(params: PollOptionRetrievalParams, completionHandler: @escaping PollOptionHandler)` |
105 |
| - - `SendbirdChat.createPollVoterListQuery(params: PollVoterListQueryParams)` |
106 |
| - - `SendbirdChat.createPollVoterListQuery(paramsBuilder: (PollVoterListQueryParams) -> Void)` |
107 |
| - - `GroupChannel.createPollVoterListQuery(pollId: Int64, pollOptionId: Int64, limit: UInt)` |
108 |
| -- Update |
109 |
| - - `GroupChannel.updatePollOption(pollId: Int64, pollOptionId: Int64, optionText: String, completionHandler: PollHandler?)` |
110 |
| - - `GroupChannel.votePoll(pollId: Int64, pollOptionIds: [Int64], completionHandler: PollVoteEventHandler)` |
111 |
| -- Delete |
112 |
| - - `GroupChannel.deletePollOption(pollId: Int64, pollOptionId: Int64, completionHandler: SBErrorHandler?)` |
113 |
| -- Others: |
114 |
| - - `PollOption` |
115 |
| - - `PollStatus` |
116 |
| - - `PollVoteEvent` |
117 |
| - - `PollUpdateEvent` |
118 |
| - - `CollectionEventSource.eventPollUpdated` |
119 |
| - - `CollectionEventSource.eventPollVoted` |
120 |
| - - `CollectionEventSource.eventPollChangeLog` |
121 |
| --------- |
122 |
| -### Scheduled Messages |
123 |
| -- Create |
124 |
| - - `GroupChannel.createScheduledUserMessage()` |
125 |
| - - `GroupChannel.createScheduledFileMessage()` |
126 |
| -- Read |
127 |
| - - `ScheduledMessageListQuery` |
128 |
| - - `BaseMessage.getScheduledMessage()` |
129 |
| - - `ScheduledMessageRetrievalParams` |
130 |
| -- Update |
131 |
| - - `GroupChannel.updateScheduledUserMessage()` |
132 |
| - - `GroupChannel.updateScheduledFileMessage()` |
133 |
| -- Delete |
134 |
| - - `GroupChannel.cancelScheduledMessage()` |
135 |
| -- Others |
136 |
| - - `ScheduledInfo` |
137 |
| - - `MessageSendingStatus.scheduled` |
138 |
| - - `BaseMessage.scheduledInfo` |
139 |
| - - `SendbirdChat.getTotalScheduledMessageCount()` |
140 |
| - - `TotalScheduledMessageCountParams` |
141 |
| - |
142 |
| -## v4.0.15 (Oct 12, 2022) |
143 |
| -* Added public `make(_ json:)` interface |
144 |
| -* Added synchronous initialize for SendbirdChat |
145 |
| -* Removed unused keys from body of MarkAsDelivered request |
146 |
| - |
147 | 3 | ## 4.0.14 (Sep 28, 2022)
|
148 | 4 | * Added nicknameStartsWithFilter, nicknameExactMatchFilter feature in GroupChannelListQuery and its params
|
149 | 5 | * Implemented history of channel membership where clients can now track whether users have joined or left the channel (`MemberState.left` for left members of a `GroupChannel`)
|
|
0 commit comments