From 1bec1135e1b43055973b4db26a713587c0ecc9f9 Mon Sep 17 00:00:00 2001 From: Jerry Jeon Date: Tue, 14 Jun 2022 17:57:40 +0900 Subject: [PATCH] Added v4.0.0 --- CHANGELOG.md | 109 ++++++---------- CHANGELOG_V4_BETA.md | 77 +++++++++++ LICENSE.md | 25 +++- README.md | 6 +- migration_script_v3_to_v4.sh | 241 +++++++++++++++++++++++++++++++++++ 5 files changed, 385 insertions(+), 73 deletions(-) create mode 100644 CHANGELOG_V4_BETA.md create mode 100644 migration_script_v3_to_v4.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 501da1b..5f31409 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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, CompletionHandler?)`. - - Renamed - - `GroupChannel.inviteWithUserIds(List, CompletionHandler?)` → `GroupChannel.invite(List, CompletionHandler?)`. - - `com.sendbird.android.handler.MyGroupChannelChangeLogsHandler` → `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` → `GroupChannelListQuery.myMemberStateFilter` + - `GroupChannelListQueryParams.memberStateFilter` → `GroupChannelListQueryParams.myMemberStateFilter` + - `SendbirdChat.getGroupChannelCount(MemberStateFilter?, CountHandler?)` → `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` → `com.sendbird.android.message.BaseMessage` + - Moved nested classes to the top level + - i.e. `com.sendbird.android.user.query.UserListQuery.UserListQueryResultHandler` → `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) diff --git a/CHANGELOG_V4_BETA.md b/CHANGELOG_V4_BETA.md new file mode 100644 index 0000000..bb4f185 --- /dev/null +++ b/CHANGELOG_V4_BETA.md @@ -0,0 +1,77 @@ +### v4.0.0 (Jun 14, 2022) +- Added `MyMemberStateFilter` + - `GroupChannelListQuery.memberStateFilter` → `GroupChannelListQuery.myMemberStateFilter` + - `GroupChannelListQueryParams.memberStateFilter` → `GroupChannelListQueryParams.myMemberStateFilter` + - `SendbirdChat.getGroupChannelCount(MemberStateFilter?, CountHandler?)` → `SendbirdChat.getGroupChannelCount(MyMemberStateFilter?, CountHandler?)` +- [For Java users only] Removed wildcards from interface callbacks' parameters + - i.e. `void BaseMessagesHandler.onResult(List, SendbirdException)` → `void BaseMessagesHandler.onResult(List, 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()` → `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, CompletionHandler?)`. + - Renamed + - `GroupChannel.inviteWithUserIds(List, CompletionHandler?)` → `GroupChannel.invite(List, CompletionHandler?)`. + - `com.sendbird.android.handler.MyGroupChannelChangeLogsHandler` → `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()`. diff --git a/LICENSE.md b/LICENSE.md index 573f51a..b4ec29e 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -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) \ No newline at end of file +(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. + diff --git a/README.md b/README.md index 284d4fb..dfd15a7 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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' ... } ``` @@ -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' } } diff --git a/migration_script_v3_to_v4.sh b/migration_script_v3_to_v4.sh new file mode 100644 index 0000000..14bbab7 --- /dev/null +++ b/migration_script_v3_to_v4.sh @@ -0,0 +1,241 @@ +#!/bin/sh + +javaFiles=$(find . -name "*.java") +kotlinFiles=$(find . -name "*.kt") +allFiles=$(find . -name "*.java" -o -name "*.kt") + +# Move `BaseChannel, GroupChannel, OpenChannel and ReadStatus` to com.sendbird.android.channel.* package. +sed -E -i "" "s/(import com.sendbird.android).(BaseChannel|GroupChannel|OpenChannel|ReadStatus)(;?$)/\1.channel.\2\3/g" $allFiles + +# Move `GroupChannelListQuery, PublicGroupChannelListQuery and OpenChannelListQuery` to com.sendbird.android.channel.query.* package. +sed -E -i "" 's/(import com.sendbird.android).(GroupChannelListQuery|PublicGroupChannelListQuery|OpenChannelListQuery)(;?$)/\1.channel.query.\2\3/g' $allFiles + +# Move `BaseCollection, CollectionLifecycle, GroupChannelCollection and MessageCollection` to com.sendbird.android.collection.* package. +sed -E -i "" 's/(import com.sendbird.android).(BaseCollection|CollectionLifecycle|GroupChannelCollection|MessageCollection)(;?$)/\1.collection.\2\3/g' $allFiles + +# Move `GroupChannelContext, MessageContext, CollectionEventSource, Traceable and MessageCollectionInitPolicy` to com.sendbird.android.collection.* package. +sed -E -i "" 's/(import com.sendbird.android).handlers.(GroupChannelContext|MessageContext|CollectionEventSource|Traceable|MessageCollectionInitPolicy)(;?$)/\1.collection.\2\3/g' $allFiles + +# Move `MessagePayloadFilter` to com.sendbird.android.params.common.* package. +sed -E -i "" 's/(import com.sendbird.android).(MessagePayloadFilter)(;?$)/\1.params.common.\2\3/g' $allFiles + +# Rename `SendBird` to `Sendbird` and move `SendbirdError and SendbirdException` to com.sendbird.android.channel.query.* package`. +sed -E -i "" 's/(import com.sendbird.android).SendBird(Error|Exception)(;?$)/\1.exception.Sendbird\2\3/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()SendBird(Error|Exception)/\1Sendbird\2/g' $allFiles + +# Move `AdminMessage, AppleCriticalAlertOptions, BaseMessage, Emoji, EmojiCategory, EmojiContainer, FileMessage, MentionType, MessageMetaArray, +# OGImage, OGMetaData, PushNotificationDeliveryOption, Reaction, ReactionEvent, ThreadInfo, ThreadInfoUpdateEvent, Plugin and UserMessage` to com.sendbird.android.message.* package. +sed -E -i "" 's/(import com.sendbird.android).(AdminMessage|AppleCriticalAlertOptions|BaseMessage|Emoji|EmojiCategory|EmojiContainer|FileMessage|MentionType|MessageMetaArray|OGImage|OGMetaData|PushNotificationDeliveryOption|Reaction|ReactionEvent|ThreadInfo|ThreadInfoUpdateEvent|Plugin|UserMessage)(;?$)/\1.message.\2\3/g' $allFiles + +# Rename `ReplyTypeFilter` to `ReplyType` and repackaged +sed -E -i "" 's/(import com.sendbird.android).ReplyTypeFilter(;?$)/\1.message.ReplyType/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()ReplyTypeFilter/\1ReplyType/g' $allFiles + +# Move `MessageSearchQuery, PreviousMessageListQuery` to com.sendbird.android.message.query.* package. +sed -E -i "" 's/(import com.sendbird.android).(MessageSearchQuery|PreviousMessageListQuery)(;?$)/\1.message.query.\2\3/g' $allFiles + +# Rename `SendBird` to `Sendbird` and Move `AbstractPushHandler, OnPushTokenReceiveListener, SendBirdFirebaseInstanceIDService, SendBirdFirebaseMessagingService, +# SendBirdHmsMessagingService, SendBirdHmsPushHandler, SendBirdPushHandler and SendBirdPushHelper` to com.sendbird.android.push.* package. +sed -E -i "" 's/(import com.sendbird.android).(AbstractPushHandler|OnPushTokenReceiveListener|SendBirdFirebaseInstanceIDService|SendBirdFirebaseMessagingService|SendBirdHmsMessagingService|SendBirdHmsPushHandler|SendBirdPushHandler|SendBirdPushHelper)(;?$)/\1.push.\2\3/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\(|.)SendBird(FirebaseInstanceIDService|FirebaseMessagingService|HmsMessagingService|HmsPushHandler|HmsPushHandler|PushHandler|PushHelper)/\1Sendbird\2/g' $allFiles + +# Move `Member, RestrictionType, RestrictedUser, RestrictionInfo, Sender and User` to com.sendbird.android.user.* package. +sed -E -i "" 's/(import com.sendbird.android).(Member|RestrictionType|RestrictedUser|RestrictionInfo|Sender|User)(;?$)/\1.user.\2\3/g' $allFiles + +# Move `ApplicationUserListQuery, BannedUserListQuery, BlockedUserListQuery, FriendListQuery, GroupChannelMemberListQuery, +# MutedUserListQuery, OperatorListQuery, ParticipantListQuery, UserListQuery` to com.sendbird.android.user.query.* package. +sed -E -i "" 's/(import com.sendbird.android).(ApplicationUserListQuery|BannedUserListQuery|BlockedUserListQuery|FriendListQuery|GroupChannelMemberListQuery|MutedUserListQuery|OperatorListQuery|ParticipantListQuery|UserListQuery)(;?$)/\1.user.query.\2\3/g' $allFiles + +# Move `BaseMessageListParams, GroupChannelChangeLogsParams, GroupChannelTotalUnreadChannelCountParams, GroupChannelTotalUnreadMessageCountParams, MessageChangeLogsParams, MessageListParams, MessageRetrievalParams and ThreadMessageListParams` to com.sendbird.android.params.* package. +sed -E -i "" 's/(import com.sendbird.android).(BaseMessageListParams|GroupChannelChangeLogsParams|GroupChannelTotalUnreadChannelCountParams|GroupChannelTotalUnreadMessageCountParams|MessageChangeLogsParams|MessageListParams|MessageRetrievalParams|ThreadMessageListParams)(;?$)/\1.params.\2\3/g' $allFiles + +# Inner class to top level +sed -E -i "" 's/(import com.sendbird.android).Member.Role(;?$)/\1.channel.Role\2/g' $allFiles +sed -E -i "" 's/(import com.sendbird.android).SendBird.(ThreadOption|ConnectionState)(;?$)/\1.\2\3/g' $allFiles +sed -E -i "" 's/(import com.sendbird.android).GroupChannel.(UnreadItemKey)(;?$)/\1.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()Member.Role/\1Role/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()SendBird.(ThreadOption|ConnectionState)/\1\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannel.UnreadItemKey/\1UnreadItemKey/g' $allFiles + +# Handlers +## SendBird.GetXXX -> handler.XXX +sed -E -i "" 's/(import com.sendbird.android).SendBird.Get(SnoozePeriodHandler|PushTriggerOptionHandler|PushTokensHandler|PushTemplateHandler|PushSoundHandler|MyGroupChannelChangeLogsHandler|FriendChangeLogsByTokenHandler|AllEmojiHandler|EmojiCategoryHandler|EmojiHandler|MyGroupChannelChangeLogsHandler)(;?$)/\1.handler.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()Get(SnoozePeriodHandler|PushTriggerOptionHandler|PushTokensHandler|PushTemplateHandler|PushSoundHandler|MyGroupChannelChangeLogsHandler|FriendChangeLogsByTokenHandler|AllEmojiHandler|EmojiCategoryHandler|EmojiHandler|MyGroupChannelChangeLogsHandler)/\1\2/g' $allFiles + +## BaseMessageHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.MessageMetaArrayHandler|BaseMessage.GetMessageHandler|BaseChannel.MessageMetaArrayHandler)(;?$)/\1.handler.BaseMessageHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.MessageMetaArrayHandler|BaseMessage.GetMessageHandler)/\1BaseMessageHandler/g' $allFiles + +## BaseMessagesHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.GetMessagesHandler|MessageSearchQuery.MessageSearchQueryResultHandler|PreviousMessageListQuery.MessageListQueryResult)(;?$)/\1.handler.BaseMessagesHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.GetMessagesHandler|MessageSearchQuery.MessageSearchQueryResultHandler|PreviousMessageListQuery.MessageListQueryResult)/\1BaseMessagesHandler/g' $allFiles + +## MetaCounterHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.MetaCounterHandler)(;?$)/\1.handler.MetaCounterHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.MetaCounterHandler)/\1MetaCounterHandler/g' $allFiles + +## MetaDataHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.MetaDataHandler|User.MetaDataHandler)(;?$)/\1.handler.MetaDataHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.MetaDataHandler|User.MetaDataHandler)/\1MetaDataHandler/g' $allFiles + +## FileMessageHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.CopyFileMessageHandler|BaseChannel.ResendFileMessageHandler|BaseChannel.SendFileMessageHandler|BaseChannel.UpdateFileMessageHandler)(;?$)/\1.handler.FileMessageHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.CopyFileMessageHandler|BaseChannel.ResendFileMessageHandler|BaseChannel.SendFileMessageHandler|BaseChannel.UpdateFileMessageHandler)/\1FileMessageHandler/g' $allFiles + +## UserMessageHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.CopyUserMessageHandler|BaseChannel.ResendUserMessageHandler|BaseChannel.SendUserMessageHandler|BaseChannel.TranslateUserMessageHandler|BaseChannel.UpdateUserMessageHandler)(;?$)/\1.handler.UserMessageHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.CopyUserMessageHandler|BaseChannel.ResendUserMessageHandler|BaseChannel.SendUserMessageHandler|BaseChannel.TranslateUserMessageHandler|BaseChannel.UpdateUserMessageHandler)/\1UserMessageHandler/g' $allFiles + +## CompletionHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.DeleteMessageHandler|BaseChannel.DeleteMetaCounterHandler|BaseChannel.DeleteMetaDataHandler|BaseChannel.ReportHandler|BaseChannel.ReportMessageHandler|BaseChannel.ReportUserHandler|GroupChannel.GroupChannelAcceptInvitationHandler|GroupChannel.GroupChannelBanHandler|GroupChannel.GroupChannelDeclineInvitationHandler|GroupChannel.GroupChannelDeleteHandler|GroupChannel.GroupChannelFreezeHandler|GroupChannel.GroupChannelHideHandler|GroupChannel.GroupChannelInviteHandler|GroupChannel.GroupChannelJoinHandler|GroupChannel.GroupChannelLeaveHandler|GroupChannel.GroupChannelMuteHandler|GroupChannel.GroupChannelRefreshHandler|GroupChannel.GroupChannelResetMyHistoryHandler|GroupChannel.GroupChannelSetMyCountPreferenceHandler|GroupChannel.GroupChannelSetMyPushTriggerOptionHandler|GroupChannel.GroupChannelSetPushPreferenceHandler|GroupChannel.GroupChannelUnbanHandler|GroupChannel.GroupChannelUnfreezeHandler|GroupChannel.GroupChannelUnhideHandler|GroupChannel.GroupChannelUnmuteHandler|OpenChannel.OpenChannelBanHandler|OpenChannel.OpenChannelDeleteHandler|OpenChannel.OpenChannelEnterHandler|OpenChannel.OpenChannelExitHandler|OpenChannel.OpenChannelMuteHandler|OpenChannel.OpenChannelRefreshHandler|OpenChannel.OpenChannelUnbanHandler|OpenChannel.OpenChannelUnmuteHandler|SendBird.DeleteFriendDiscoveriesHandler|SendBird.DeleteFriendDiscoveryHandler|SendBird.DeleteFriendHandler|SendBird.DeleteFriendsHandler|SendBird.MarkAsReadHandler|SendBird.SetChannelInvitationPreferenceHandler|SendBird.SetDoNotDisturbHandler|SendBird.SetPushSoundHandler|SendBird.SetPushTemplateHandler|SendBird.SetPushTriggerOptionHandler|SendBird.SetSnoozePeriodHandler|SendBird.UnregisterPushTokenHandler|SendBird.UploadFriendDiscoveriesHandler|SendBird.UserInfoUpdateHandler|SendBird.UserUnblockHandler|User.DeleteMetaDataHandler|handlers.AddOperatorsHandler|handlers.AllowFriendDiscoveryHandler)(;?$)/\1.handler.CompletionHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.DeleteMessageHandler|BaseChannel.DeleteMetaCounterHandler|BaseChannel.DeleteMetaDataHandler|BaseChannel.ReportHandler|BaseChannel.ReportMessageHandler|BaseChannel.ReportUserHandler|GroupChannel.GroupChannelAcceptInvitationHandler|GroupChannel.GroupChannelBanHandler|GroupChannel.GroupChannelDeclineInvitationHandler|GroupChannel.GroupChannelDeleteHandler|GroupChannel.GroupChannelFreezeHandler|GroupChannel.GroupChannelHideHandler|GroupChannel.GroupChannelInviteHandler|GroupChannel.GroupChannelJoinHandler|GroupChannel.GroupChannelLeaveHandler|GroupChannel.GroupChannelMuteHandler|GroupChannel.GroupChannelRefreshHandler|GroupChannel.GroupChannelResetMyHistoryHandler|GroupChannel.GroupChannelSetMyCountPreferenceHandler|GroupChannel.GroupChannelSetMyPushTriggerOptionHandler|GroupChannel.GroupChannelSetPushPreferenceHandler|GroupChannel.GroupChannelUnbanHandler|GroupChannel.GroupChannelUnfreezeHandler|GroupChannel.GroupChannelUnhideHandler|GroupChannel.GroupChannelUnmuteHandler|OpenChannel.OpenChannelBanHandler|OpenChannel.OpenChannelDeleteHandler|OpenChannel.OpenChannelEnterHandler|OpenChannel.OpenChannelExitHandler|OpenChannel.OpenChannelMuteHandler|OpenChannel.OpenChannelRefreshHandler|OpenChannel.OpenChannelUnbanHandler|OpenChannel.OpenChannelUnmuteHandler|SendBird.DeleteFriendDiscoveriesHandler|SendBird.DeleteFriendDiscoveryHandler|SendBird.DeleteFriendHandler|SendBird.DeleteFriendsHandler|SendBird.MarkAsReadHandler|SendBird.SetChannelInvitationPreferenceHandler|SendBird.SetDoNotDisturbHandler|SendBird.SetPushSoundHandler|SendBird.SetPushTemplateHandler|SendBird.SetPushTriggerOptionHandler|SendBird.SetSnoozePeriodHandler|SendBird.UnregisterPushTokenHandler|SendBird.UploadFriendDiscoveriesHandler|SendBird.UserInfoUpdateHandler|SendBird.UserUnblockHandler|User.DeleteMetaDataHandler|handlers.AddOperatorsHandler|handlers.AllowFriendDiscoveryHandler)/\1CompletionHandler/g' $allFiles + +## FileMessageWithProgressHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.ResendFileMessageWithProgressHandler|BaseChannel.SendFileMessageWithProgressHandler)(;?$)/\1.handler.FileMessageWithProgressHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.ResendFileMessageWithProgressHandler|BaseChannel.SendFileMessageWithProgressHandler)/\1FileMessageWithProgressHandler/g' $allFiles + +## FileMessagesHandler +sed -E -i "" 's/(import com.sendbird.android).BaseChannel.SendFileMessagesHandler(;?$)/\1.handler.FileMessagesHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()BaseChannel.SendFileMessagesHandler/\1FileMessagesHandler/g' $allFiles + +## FileMessagesWithProgressHandler +sed -E -i "" 's/(import com.sendbird.android).BaseChannel.SendFileMessagesWithProgressHandler(;?$)/\1.handler.FileMessagesWithProgressHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()BaseChannel.SendFileMessagesWithProgressHandler/\1FileMessagesWithProgressHandler/g' $allFiles + +## CountHandler +sed -E -i "" 's/(import com.sendbird.android).(GroupChannel.GroupChannelTotalUnreadChannelCountHandler|GroupChannel.GroupChannelTotalUnreadMessageCountHandler|GroupChannel.GroupChannelChannelCountHandler)(;?$)/\1.handler.CountHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(GroupChannel.GroupChannelTotalUnreadChannelCountHandler|GroupChannel.GroupChannelTotalUnreadMessageCountHandler|GroupChannel.GroupChannelChannelCountHandler)/\1CountHandler/g' $allFiles + +## GroupChannelCallbackHandler +sed -E -i "" 's/(import com.sendbird.android).(GroupChannel.GroupChannelCreateHandler|GroupChannel.GroupChannelGetHandler|GroupChannel.GroupChannelUpdateHandler)(;?$)/\1.handler.GroupChannelCallbackHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(GroupChannel.GroupChannelCreateHandler|GroupChannel.GroupChannelGetHandler|GroupChannel.GroupChannelUpdateHandler)/\1GroupChannelCallbackHandler/g' $allFiles + +## OpenChannelCallbackHandler +sed -E -i "" 's/(import com.sendbird.android).(OpenChannel.OpenChannelCreateHandler|OpenChannel.OpenChannelGetHandler|OpenChannel.OpenChannelUpdateHandler)(;?$)/\1.handler.OpenChannelCallbackHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(OpenChannel.OpenChannelCreateHandler|OpenChannel.OpenChannelGetHandler|OpenChannel.OpenChannelUpdateHandler)/\1OpenChannelCallbackHandler/g' $allFiles + +## UsersHandler +sed -E -i "" 's/(import com.sendbird.android).(OperatorListQuery.OperatorListQueryResultHandler|SendBird.AddFriendsHandler)(;?$)/\1.handler.UsersHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(OperatorListQuery.OperatorListQueryResultHandler|SendBird.AddFriendsHandler)/\1UsersHandler/g' $allFiles + +## UserHandler +sed -E -i "" 's/(import com.sendbird.android).(SendBird.UserBlockHandler)(;?$)/\1.handler.UserHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(SendBird.UserBlockHandler)/\1UserHandler/g' $allFiles + +## ReactionHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.ReactionHandler)(;?$)/\1.handler.ReactionHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.ReactionHandler)/\1ReactionHandler/g' $allFiles + +## GetThreadedMessagesHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseMessage.GetThreadedMessagesHandler)(;?$)/\1.handler.ThreadedMessagesHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseMessage.GetThreadedMessagesHandler)/\1ThreadedMessagesHandler/g' $allFiles + +## GetChannelInvitationPreferenceHandler +sed -E -i "" 's/(import com.sendbird.android).(SendBird.GetChannelInvitationPreferenceHandler)(;?$)/\1.handler.ChannelInvitationPreferenceHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(SendBird.GetChannelInvitationPreferenceHandler)/\1ChannelInvitationPreferenceHandler/g' $allFiles + +## DoNotDisturbHandler +sed -E -i "" 's/(import com.sendbird.android).(SendBird.GetDoNotDisturbHandler)(;?$)/\1.handler.DoNotDisturbHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(SendBird.GetDoNotDisturbHandler)/\1DoNotDisturbHandler/g' $allFiles + +## DoNotDisturbHandler +sed -E -i "" 's/(import com.sendbird.android).(SendBird.RegisterPushTokenWithStatusHandler)(;?$)/\1.handler.PushTokenWithStatusHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(SendBird.RegisterPushTokenWithStatusHandler)/\1PushTokenWithStatusHandler/g' $allFiles + +## DoNotDisturbHandler +sed -E -i "" 's/(import com.sendbird.android).(BaseChannel.GetMyMutedInfoHandler)(;?$)/\1.handler.MyMutedInfoHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(BaseChannel.GetMyMutedInfoHandler)/\1MyMutedInfoHandler/g' $allFiles + +## Move GroupChannel inner class +sed -E -i "" 's/(import com.sendbird.android).GroupChannel.(GroupChannelCreateDistinctChannelIfNotExistHandler|GroupChannelGetMyPushTriggerOptionHandler)(;?$)/\1.handler.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannel.(GroupChannelCreateDistinctChannelIfNotExistHandler|GroupChannelGetMyPushTriggerOptionHandler)/\1\2/g' $allFiles + +## Move SendBird inner class +sed -E -i "" 's/(import com.sendbird.android).SendBird.(ConnectHandler|ConnectionHandler|DisconnectHandler|UserEventHandler)(;?$)/\1.handler.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()SendBird.(ConnectHandler|ConnectionHandler|DisconnectHandler|UserEventHandler)/\1\2/g' $allFiles + +## handlers to handler +sed -E -i "" 's/(import com.sendbird.android).handlers.(GetAllowFriendDiscoveryHandler|MessageChangeLogsHandler|InitResultHandler|MessageCollectionHandler|MessageCollectionInitHandler|ChannelChangeLogsHandler|RemoveFailedMessagesHandler|CompletionHandler|GroupChannelCollectionHandler)(;?$)/\1.handler.\2\3/g' $allFiles + +# Push +sed -E -i "" 's/(import com.sendbird.android).SendBird.(PushTokenType|PushTokenRegistrationStatus)(;?$)/\1.push.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()SendBird.(PushTokenType|PushTokenRegistrationStatus)/\1\2/g' $allFiles + +# Move BaseChannel inner class +sed -E -i "" 's/(import com.sendbird.android).BaseChannel.(ReportCategory|MessageTypeFilter)(;?$)/\1.channel.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()BaseChannel.(ReportCategory|MessageTypeFilter)/\1\2/g' $allFiles + +# Move GroupChannel inner class +sed -E -i "" 's/(import com.sendbird.android).BaseChannel.(HiddenState|CountPreference|ChannelType)(;?$)/\1.channel.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()BaseChannel.(HiddenState|CountPreference|ChannelType)/\1\2/g' $allFiles + +# Move BaseMessage inner class +sed -E -i "" 's/(import com.sendbird.android).BaseMessage.(SendingStatus)(;?$)/\1.message.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()BaseChannel.(SendingStatus)/\1\2/g' $allFiles + +# Move FileMessage inner class +sed -E -i "" 's/(import com.sendbird.android).FileMessage.(Thumbnail|ThumbnailSize)(;?$)/\1.message.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()FileMessage.(Thumbnail|ThumbnailSize)/\1\2/g' $allFiles + +# Move Member inner class +sed -E -i "" 's/(import com.sendbird.android).Member.(MutedState|MemberState)(;?$)/\1.user.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()Member.(MutedState|MemberState)/\1\2/g' $allFiles + +# Move ReactionEvent inner class +sed -E -i "" 's/(import com.sendbird.android).ReactionEvent.(ReactionEventAction)(;?$)/\1.message.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()ReactionEvent.(ReactionEventAction)/\1\2/g' $allFiles + +# Move SendBirdPushHelper inner class +sed -E -i "" 's/(import com.sendbird.android).SendBirdPushHelper.OnPushRequestCompleteListener(;?$)/\1.handler.PushRequestCompleteHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()SendBirdPushHelper.OnPushRequestCompleteListener/\1PushRequestCompleteHandler/g' $allFiles + +# Move GroupChannelMemberListQuery inner class +sed -E -i "" 's/(import com.sendbird.android).GroupChannelMemberListQuery.(OperatorFilter|MutedMemberFilter|MemberStateFilter)(;?$)/\1.user.query.\2/g' $allFiles +sed -E -i "" 's/(import com.sendbird.android).GroupChannelMemberListQuery.GroupChannelMemberListQueryResultHandler(;?$)/\1.handler.MembersHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannelMemberListQuery.(OperatorFilter|MutedMemberFilter|MemberStateFilter)/\1\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannelMemberListQuery.GroupChannelMemberListQueryResultHandler/\1MembersHandler/g' $allFiles + +# Move GroupChannelListQuery inner class +sed -E -i "" 's/(import com.sendbird.android).(GroupChannelListQuery.SuperChannelFilter|PublicGroupChannelListQuery.SuperChannelFilter)(;?$)/\1.channel.SuperChannelFilter/g' $allFiles +sed -E -i "" 's/(import com.sendbird.android).GroupChannelListQuery.(MembershipFilter|SearchField|QueryType|PublicChannelFilter|UnreadChannelFilter|HiddenChannelFilter)(;?$)/\1.channel.query.\2/g' $allFiles +sed -E -i "" 's/(import com.sendbird.android).PublicGroupChannelListQuery.(MembershipFilter)(;?$)/\1.channel.query.\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannelListQuery.(SuperChannelFilter|MembershipFilter|SearchField|QueryType|PublicChannelFilter|UnreadChannelFilter|HiddenChannelFilter)/\1\2/g' $allFiles +sed -E -i "" 's/(import com.sendbird.android).GroupChannelListQuery.MemberStateFilter(;?$)/\1.channel.query.MyMemberStateFilter/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannelListQuery.MemberStateFilter/\1MyMemberStateFilter/g' $allFiles + +sed -E -i "" 's/(import com.sendbird.android).handlers.(OnChannelLoadResultHandler)(;?$)/\1.handler.GroupChannelsCallbackHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()OnChannelLoadResultHandler/\1GroupChannelsCallbackHandler/g' $allFiles + +sed -E -i "" 's/(import com.sendbird.android).(GroupChannelListQuery.GroupChannelListQueryResultHandler|PublicGroupChannelListQuery.PublicGroupChannelListQueryResultHandler)(;?$)/\1.handler.GroupChannelsCallbackHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannelListQuery.GroupChannelListQueryResultHandler/\1GroupChannelsCallbackHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()PublicGroupChannelListQuery.PublicGroupChannelListQueryResultHandler/\1GroupChannelsCallbackHandler/g' $allFiles + +sed -E -i "" 's/(import com.sendbird.android).(OpenChannelListQuery.OpenChannelListQueryResultHandler)(;?$)/\1.handler.OpenChannelsCallbackHandler/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()OpenChannelListQuery.OpenChannelListQueryResultHandler/\1OpenChannelsCallbackHandler/g' $allFiles + +sed -E -i "" 's/(import com.sendbird.android).(GroupChannelListQuery.Order|PublicGroupChannelListQuery.Order)(;?$)/\1.channel.query.GroupChannelListQueryOrder/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()(GroupChannelListQuery.Order|PublicGroupChannelListQuery.Order)/\1GroupChannelListQueryOrder/g' $allFiles + +# Rename GroupChannelMemberListQuery to MemberListQuery +sed -E -i "" 's/([[:space:]]|:|=|\()GroupChannelMemberListQuery/\1MemberListQuery/g' $allFiles + +# Renamed functions +sed -E -i "" 's/\.updateCurrentUserInfoWithProfileImage\(/\.updateCurrentUserInfo\(/g' $allFiles +sed -E -i "" 's/\.registerPushTokenForCurrentUser\(/\.registerPushToken\(/g' $allFiles +sed -E -i "" 's/\.unregisterPushTokenForCurrentUser\(/\.unregisterPushToken\(/g' $allFiles +sed -E -i "" 's/\.unregisterPushTokenAllForCurrentUser\(/\.unregisterPushTokenAll\(/g' $allFiles +sed -E -i "" 's/\.getMyGroupChannelChangeLogsByTokenWithParams\(/\.getMyGroupChannelChangeLogsByToken\(/g' $allFiles +sed -E -i "" 's/\.getMyGroupChannelChangeLogsByTimestampWithParams\(/\.getMyGroupChannelChangeLogsByTimestamp\(/g' $allFiles +sed -E -i "" 's/\.inviteWithUserId\(/\.invite\(/g' $allFiles +sed -E -i "" 's/\.banUserWithUserId\(/\.banUser\(/g' $allFiles +sed -E -i "" 's/\.unbanUserWithUserId\(/\.unbanUser\(/g' $allFiles +sed -E -i "" 's/\.muteUserWithUserId\(/\.muteUser\(/g' $allFiles +sed -E -i "" 's/\.unmuteUserWithUserId\(/\.unmuteUser\(/g' $allFiles +sed -E -i "" 's/\.isOperatorWithUserId\(/\.isOperator\(/g' $allFiles +sed -E -i "" 's/\.markAsReadWithChannelUrls\(/\.markAsRead\(/g' $allFiles +sed -E -i "" 's/\.blockUserWithUserId\(/\.blockUser\(/g' $allFiles +sed -E -i "" 's/\.unblockUserWithUserId\(/\.unblockUser\(/g' $allFiles + +# SendBird +sed -E -i "" 's/(import com.sendbird.android).SendBird(;?$)/\1.SendbirdChat\2/g' $allFiles +sed -E -i "" 's/([[:space:]]|:|=|\()SendBird\./\1SendbirdChat./g' $allFiles