Skip to content

Commit

Permalink
Added v4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jerry-jeon committed Jun 14, 2022
1 parent 0547555 commit 1bec113
Show file tree
Hide file tree
Showing 5 changed files with 385 additions and 73 deletions.
109 changes: 40 additions & 69 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,42 @@
# Change Log

### v4.0.0-beta.8 (Jun 8, 2022)
- Contains breaking changes since last beta release.
1. Moved nested classes to the top level.
- i.e. `com.sendbird.android.user.query.UserListQuery.UserListQueryResultHandler``com.sendbird.android.handler.UserListQueryResultHandler`.
2. Removed setter functions that return the itself.
- For Kotlin, use property syntax `property = value`.
- For Java, all `set*()` functions don't return itself.
3. Removed redundant properties that has an alternative.
- i.e.)
- `PreviousMessageListQuery.shouldIncludeMetaArray()` → `PreviousMessageListQuery.messagePayloadFilter.includeMetaArray`.
- `GroupChannelCreateParams.addUser`, `GroupChannelCreateParams.addUsers` → `GroupChannelCreateParams.users`.
4. Renamed inconsistent getter functions to auto generated getter methods for Java.
- For Kotlin, use property syntax `class.property`.
- For Java, it's auto generated to `get*()`.
5. Replace builder classes with class constructors
6. Removed all `Enum.from(value:String?)` functions.
7. Static function changed to non-static.
- `OpenChannelCreateParams.clone()`
8. Rename `SendbirdChat.Options.useMemberAsMessageSender` to `SendbirdChat.Options.useMemberInfoInMessage`.
- `useMemberInfoInMessage` now applies to both `BaseMessage.sender` and `BaseMessage.mentionedUsers`.
9. Remove all setters for `Query` classes and made query properties immutable.
- Added corresponding `Params` classes.
10. Removed + Renamed methods.
- Removed
- `GroupChannel.invite(User, CompletionHandler?)`.
- `GroupChannel.invite(String, CompletionHandler?)`.
- `GroupChannel.invite(List<User>, CompletionHandler?)`.
- Renamed
- `GroupChannel.inviteWithUserIds(List<String>, CompletionHandler?)` &rarr; `GroupChannel.invite(List<String>, CompletionHandler?)`.
- `com.sendbird.android.handler.MyGroupChannelChangeLogsHandler` &rarr; `com.sendbird.android.handler.GroupChannelChangeLogsHandler`.

### v4.0.0-beta.7 (May 31, 2022)
- Added `BaseMessage.scheduleInfo` in `serialize()` and `deserialize()`.

### v4.0.0-beta.6 (May 24, 2022)
- Refactor SDK's logs.
- Log level for SDK can now be set in `SendbirdChat.init` with `InitParams.logLevel`. The current default log level is `Log.WARN`.

### v4.0.0-beta.5 (May 17, 2022)
- Added `GroupChannel.sendScheduledMessageNow(Long, CompletionHandler?)`
- Fixed bug where typing indicator does not disappear after the internet has been lost.

### v4.0.0-beta.4 (May 10, 2022)
- Fixed a bug that failed to get a channel that has invalid metadata.

### v4.0.0-beta.3 (May 3, 2022)
- Added `HiddenChannelFilter.ALL` for GroupChannelListQuery
- Fixed bug where nicknameContainsFilter is filtered incorrectly in regards to case sensitivity

### v4.0.0.beta.2 (Apr 28, 2022)
- Added Scheduled Message Feature.
- Added `GroupChannel.createScheduledUserMessage()`.
- Added `GroupChannel.createScheduledFileMessage()`.
- Added `GroupChannel.updateScheduledUserMessage()`.
- Added `GroupChannel.updateScheduledFileMessage()`.
- Added `GroupChannel.cancelScheduledMessage()`.
- Added `ScheduledMessageListQuery`.
- Added `Basemessage.scheduledInfo` which holds scheduled informations of a scheduled messages.
- Added `ScheduledInfo`.
- Added `SendingStatus.SCHEDULED`.
- Added `BaseMessage.getScheduledMessage()`.
- Added `ScheduledMessageRetrievalParams`.
- Added `SendbirdChat.getTotalScheduledMessageCount()`.
- Added `TotalScheduledMessageCountParams`.
- Improved exception messages to provide more detail.

### v4.0.0-beta.1 (Apr 19, 2022)
- Fix a bug that doesn't try reconnect immediately when the network has recovered.
- Channel's metadata related events not being delivered to `MessageCollectionHandler.onChannelUpdated()`.
### v4.0.0 (Jun 14, 2022)
> To see detailed changes for below items, please refer to the [migration guide](https://sendbird.com/docs/chat/v4/android/getting-started/migration-guide)
- Codebase has been re-written from Java to Kotlin
- Naming of the main class has been changed from SendBird to SendbirdChat
- Deprecated interfaces from v3 has been removed
- Support for SyncManager has been removed

**Improvements**
- Added `HiddenChannelFilter.ALL` for `GroupChannelListQuery`
- Improved exception messages to provide more detail
- SDK log has been refined, now it provides more useful informations such as API request/response based on the LogLevel
- Added `MyMemberStateFilter`
- `GroupChannelListQuery.memberStateFilter` &rarr; `GroupChannelListQuery.myMemberStateFilter`
- `GroupChannelListQueryParams.memberStateFilter` &rarr; `GroupChannelListQueryParams.myMemberStateFilter`
- `SendbirdChat.getGroupChannelCount(MemberStateFilter?, CountHandler?)` &rarr; `SendbirdChat.getGroupChannelCount(MyMemberStateFilter?, CountHandler?)`
- Changed all names that include `SendBird` to `Sendbird`
- Changed interfaces to be more kotlin style
- Change getter, setter functions to property access
- From Kotlin side, access properties directly
- From Java side, access by `getSomething()` and `setSomething()`
- Prefer List than MutableList
- Specify nullability for return types and parameters
- Some parameter classes are separated to create/update parameter class
- i.e. `UserMessageParams` is separated to `UserMessageCreateParams`, `UserMessageUpdateParams` Renamed
- Unifying callback handlers
- i.e. `com.sendbird.android.BaseChannel.ReportHandler` is replaced by `com.sendbird.android.handler.CompletionHandler` that has same signature
- Namespace of the class has been refined
- Repackage
- i.e. `com.sendbird.android.BaseMessage` &rarr; `com.sendbird.android.message.BaseMessage`
- Moved nested classes to the top level
- i.e. `com.sendbird.android.user.query.UserListQuery.UserListQueryResultHandler` &rarr; `com.sendbird.android.handler.UserListQueryResultHandler`
- Remove all setters for `Query` classes and made query properties immutable
- Added corresponding `Params` classes

### v4.0.0-beta.*
For the changelog between the bete releases, please refer to [this page](https://github.com/sendbird/sendbird-chat-sdk-android/blob/main/CHANGELOG_V4_BETA.md)

### v3 Changelog
Please refer to [this page](https://github.com/sendbird/SendBird-SDK-Android/blob/master/CHANGELOG.md)
77 changes: 77 additions & 0 deletions CHANGELOG_V4_BETA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
### v4.0.0 (Jun 14, 2022)
- Added `MyMemberStateFilter`
- `GroupChannelListQuery.memberStateFilter` &rarr; `GroupChannelListQuery.myMemberStateFilter`
- `GroupChannelListQueryParams.memberStateFilter` &rarr; `GroupChannelListQueryParams.myMemberStateFilter`
- `SendbirdChat.getGroupChannelCount(MemberStateFilter?, CountHandler?)` &rarr; `SendbirdChat.getGroupChannelCount(MyMemberStateFilter?, CountHandler?)`
- [For Java users only] Removed wildcards from interface callbacks' parameters
- i.e. `void BaseMessagesHandler.onResult(List<? extends BaseMessage>, SendbirdException)` &rarr; `void BaseMessagesHandler.onResult(List<BaseMessage>, SendbirdException)`

### v4.0.0-beta.8 (Jun 8, 2022)
- Contains breaking changes since last beta release.
1. Moved nested classes to the top level.
- i.e. `com.sendbird.android.user.query.UserListQuery.UserListQueryResultHandler``com.sendbird.android.handler.UserListQueryResultHandler`.
2. Removed setter functions that return the itself.
- For Kotlin, use property syntax `property = value`.
- For Java, all `set*()` functions don't return itself.
3. Removed redundant properties that has an alternative.
- i.e.)
- `PreviousMessageListQuery.shouldIncludeMetaArray()` &rarr; `PreviousMessageListQuery.messagePayloadFilter.includeMetaArray`.
- `GroupChannelCreateParams.addUser`, `GroupChannelCreateParams.addUsers` &rarr; `GroupChannelCreateParams.users`.
4. Renamed inconsistent getter functions to auto generated getter methods for Java.
- For Kotlin, use property syntax `class.property`.
- For Java, it's auto generated to `get*()`.
5. Replace builder classes with class constructors
6. Removed all `Enum.from(value:String?)` functions.
7. Static function changed to non-static.
- `OpenChannelCreateParams.clone()`
8. Rename `SendbirdChat.Options.useMemberAsMessageSender` to `SendbirdChat.Options.useMemberInfoInMessage`.
- `useMemberInfoInMessage` now applies to both `BaseMessage.sender` and `BaseMessage.mentionedUsers`.
9. Remove all setters for `Query` classes and made query properties immutable.
- Added corresponding `Params` classes.
10. Removed + Renamed methods.
- Removed
- `GroupChannel.invite(User, CompletionHandler?)`.
- `GroupChannel.invite(String, CompletionHandler?)`.
- `GroupChannel.invite(List<User>, CompletionHandler?)`.
- Renamed
- `GroupChannel.inviteWithUserIds(List<String>, CompletionHandler?)` &rarr; `GroupChannel.invite(List<String>, CompletionHandler?)`.
- `com.sendbird.android.handler.MyGroupChannelChangeLogsHandler` &rarr; `com.sendbird.android.handler.GroupChannelChangeLogsHandler`.

### v4.0.0-beta.7 (May 31, 2022)
- Added `BaseMessage.scheduleInfo` in `serialize()` and `deserialize()`.

### v4.0.0-beta.6 (May 24, 2022)
- Refactor SDK's logs.
- Log level for SDK can now be set in `SendbirdChat.init` with `InitParams.logLevel`. The current default log level is `Log.WARN`.

### v4.0.0-beta.5 (May 17, 2022)
- Added `GroupChannel.sendScheduledMessageNow(Long, CompletionHandler?)`
- Fixed bug where typing indicator does not disappear after the internet has been lost.

### v4.0.0-beta.4 (May 10, 2022)
- Fixed a bug that failed to get a channel that has invalid metadata.

### v4.0.0-beta.3 (May 3, 2022)
- Added `HiddenChannelFilter.ALL` for GroupChannelListQuery
- Fixed bug where nicknameContainsFilter is filtered incorrectly in regards to case sensitivity

### v4.0.0.beta.2 (Apr 28, 2022)
- Added Scheduled Message Feature.
- Added `GroupChannel.createScheduledUserMessage()`.
- Added `GroupChannel.createScheduledFileMessage()`.
- Added `GroupChannel.updateScheduledUserMessage()`.
- Added `GroupChannel.updateScheduledFileMessage()`.
- Added `GroupChannel.cancelScheduledMessage()`.
- Added `ScheduledMessageListQuery`.
- Added `Basemessage.scheduledInfo` which holds scheduled informations of a scheduled messages.
- Added `ScheduledInfo`.
- Added `SendingStatus.SCHEDULED`.
- Added `BaseMessage.getScheduledMessage()`.
- Added `ScheduledMessageRetrievalParams`.
- Added `SendbirdChat.getTotalScheduledMessageCount()`.
- Added `TotalScheduledMessageCountParams`.
- Improved exception messages to provide more detail.

### v4.0.0-beta.1 (Apr 19, 2022)
- Fix a bug that doesn't try reconnect immediately when the network has recovered.
- Channel's metadata related events not being delivered to `MessageCollectionHandler.onChannelUpdated()`.
25 changes: 24 additions & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,4 +237,27 @@ For com.squareup.okhttp3:okhttp:4.9.3, com.squareup.okhttp3:okhttp-brotli:4.9.3
This project contains annotations derived from JCIP-ANNOTATIONS
Copyright (c) 2005 Brian Goetz and Tim Peierls.
See http://www.jcip.net and the Creative Commons Attribution License
(http://creativecommons.org/licenses/by/2.5)
(http://creativecommons.org/licenses/by/2.5)

===========================================================================
For org.brotli:dec:0.1.2,
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Platform](https://img.shields.io/badge/platform-android-orange.svg)](https://github.com/sendbird/sendbird-chat-sdk-android)
[![Languages](https://img.shields.io/badge/language-kotlin-orange.svg)](https://github.com/sendbird/sendbird-chat-sdk-android)
[![This version of 'sendbird-chat' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/sendbird/release/maven/sendbird-chat/4.0.0-beta.8/a=noarch;xg=com.sendbird.sdk/?render=true)](https://cloudsmith.io/~sendbird/repos/release/packages/detail/maven/sendbird-chat/4.0.0-beta.8/a=noarch;xg=com.sendbird.sdk/)
[![This version of 'sendbird-chat' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/sendbird/release/maven/sendbird-chat/4.0.0/a=noarch;xg=com.sendbird.sdk/?render=true)](https://cloudsmith.io/~sendbird/repos/release/packages/detail/maven/sendbird-chat/4.0.0/a=noarch;xg=com.sendbird.sdk/)
[![Commercial License](https://img.shields.io/badge/license-Commercial-brightgreen.svg)](https://github.com/sendbird/sendbird-chat-sdk-android/blob/main/LICENSE.md)

## Table of contents
Expand Down Expand Up @@ -90,7 +90,7 @@ Then, add the dependency to the project's top-level `build.gradle` file:
```gradle
dependencies {
...
implementation 'com.sendbird.sdk:sendbird-chat:4.0.0-beta.8'
implementation 'com.sendbird.sdk:sendbird-chat:4.0.0'
...
}
```
Expand All @@ -103,7 +103,7 @@ TLS 1.3 is enabled by default in Sendbird SDK for Android. To disable it, please
```gradle
dependencies {
implementation ('com.sendbird.sdk:sendbird-chat:4.0.0-beta.8') {
implementation ('com.sendbird.sdk:sendbird-chat:4.0.0') {
exclude group: 'org.conscrypt', module: 'conscrypt-android'
}
}
Expand Down
Loading

0 comments on commit 1bec113

Please sign in to comment.