# V3 Breaking changes - #### Prerequisites - minSDKVersion is increased from **16** to **21**. - Sendbird Chat SDK for Android 4.0.0 and later - changed `databinding` of buildFeatures to use `viewbinding`. - #### Breaking changes ##### Common changes - Rename the main class from `SendBirdUIKit` to `SendbirdUIKit`. - Rename the class from `SendBirdUIKitAdapter` to `SendbirdUIKitAdapter`. - All `useHeader` property's default value in `Builder` class has been changed from `false` to `true`. - All fragments inherites `BaseModuleFragment` and it has abstract methods related to the module. So below functions are added all fragments. > For more information on this changes of `BaseModuleFragment`, refer to [this](https://sendbird.com/docs/uikit/v1/android/guides/group-channel). - `onCreateModule(Bundle)` - `onConfigureParams(BaseModule, Bundle)` - `onCreateViewModel()` - `onBeforeReady(ReadyStatus, BaseModule, BaseViewModel)` - `onReady(ReadyStatus, BaseModule, BaseViewModel)` - Added `Modules` and `Components` classes. Each fragment has it's corresponding module and components. | fragment | module | component | viewmodel | style name | recyclerview adapter | | ------------------------------- | ------------------------- | ------------------------------------------------------------ | ---------------------------- | ---------------------------- | ----------------------------- | | **ChannelListFragment** | ChannelListModule | HeaderComponent
ChannelListComponent
StatusComponent | ChannelListViewModel | `Module.ChannelList` | ChanelListAdapter | | **ChannelFragment** | ChannelModule | ChannelHeaderComponent
MessageListComponent
MessageInputComponent
StatusComponent | ChannelViewModel | `Module.Channel` | MessageListAdapter | | **OpenChannelFragment** | OpenChannelModule | OpenChannelHeaderComponent
OpenChannelMessageListComponent
OpenChannelMessageInputComponent
StatusComponent | OpenChannelViewModel | `Module.OpenChannel` | OpenChannelMessageListAdapter | | **CreateChannelFragment** | CreateChannelModule | SelectUserHeaderComponent
CreateChannelUserListComponent
StatusComponent | CreateChannelViewModel | `Module.CreateChannel` | CreateChannelUserListAdapter | | **ChannelSettingsFragment** | ChannelSettingsModule | ChannelSettingsHeaderComponent
ChannelSettingsInfoComponent
ChannelSettingsMenuComponent | ChannelSettingsViewModel | `Module.ChannelSettings` | | | **OpenChannelSettingsFragment** | OpenChannelSettingsModule | OpenChannelSettingsHeaderComponent
OpenChannelSettingsInfoComponent
OpenChannelSettingsMenuComponent | OpenChannelSettingsViewModel | `Module.OpenChannelSettings` | | | **InviteUserFragment** | InviteUserModule | SelectUserHeaderComponent
InviteUserListComponent
StatusComponent | InviteUserViewModel | `Module.InviteUser` | InviteUserListAdapter | | **RegisterOperatorFragment** | RegisterOperatorModule | SelectUserHeaderComponent
RegisterOperatorListComponent
StatusComponent | RegisterOperatorViewModel | `Module.RegisterOperator` | RegisterOperatorListAdapter | | **ModerationFragment** | ModerationModule | HeaderComponent
ModerationListComponent | ModerationViewModel | `Module.Moderation` | | | **MemberListFragment** | MemberListModule | HeaderComponent
MemberListComponent
StatusComponent | MemberListViewModel | `Module.MemberList` | MemberListAdapter | | **BannedUserListFragment** | BannedUserListModule | HeaderComponent
BannedUserListComponent
StatusComponent | BannedUserListViewModel | `Module.BannedUserList` | BannedUserListAdater | | **MutedMemberListFragment** | MutedMemberListModule | HeaderComponent
MutedMemberListComponent
StatusComponent | MutedMemberListViewModel | `Module.MutedMemberList` | MutedMemberListAdapter | | **OperatorListFragment** | OperatorListModule | HeaderComponent
OperatorListComponent
StatusComponent | OperatorListViewModel | `Module.OperatorList` | OperatorListAdapter | | **MessageSearchFragment** | MessageSearchModule | MessageSearchHeaderComponent
MessageSearchListComponent
StatusComponent | MessageSearchViewModel | `Module.MessageSearch` | MessageSearchAdapter | | **ParticipantListFragment** | ParticipantListModule | HeaderComponent
ParticipantListComponent
StatusComponent | ParticipantViewModel | `Module.ParticipantList` | ParticipantListAdapter | - Deleted below functions in all fragments. - `onConfigure()` - `onDrawPage()` - `onReadyFailure()` - Deleted **deprecated** functions in `MessageListAdapter`. - MessageListAdapter(GroupChannel, OnItemClickListener) - MessageListAdapter(GroupChannel, OnItemClickListener, OnItemLongClickListener) - MessageListAdapter(GroupChannel, OnItemClickListener, OnItemLongClickListener, boolean) - setItems(GroupChannel, List) - setOnItemClickListener(OnItemClickListener) - setOnItemLongClickListener(OnItemLongClickListener) - setOnProfileClickListener(OnItemClickListener) - Deleted **deprecated** functions in `OpenChannelMessageListAdapter`. - OpenChannelMessageListAdapter(OpenChannel, OnItemClickListener) - OpenChannelMessageListAdapter(OpenChannel, OnItemClickListener, OnItemLongClickListener) - OpenChannelMessageListAdapter(OpenChannel, OnItemClickListener, OnItemLongClickListener, boolean) - setItems(OpenChannel, List) - setOnItemClickListener(OnItemClickListener) - setOnItemLongClickListener(OnItemLongClickListener) - setOnProfileClickListener(OnItemClickListener) - Deleted `CustomMemberListQueryHandler` class. - Replaced interface of `CreateableChannelType` to `CreatableChannelType`. ------ ##### SendbirdUIkit - Replaced `updateUserInfo(String, String, UserInfoUpdateHandler)` to `updateUserInfo(UserUpdateParams, CompletionHandler)`. - Replaced `connect(SendBird.ConnectHandler)` to `connect(ConnectHandler)`. - Replaced `disconnect(SendBird.DisconnectHandler)` to `disconnect(DisconnectHandler)`. ------ ##### CustomParamsHandler - Replaced `onBeforeCreateGroupChannel(GroupChannelParams)` to `onBeforeCreateGroupChannel(GroupChannelCreateParams)`. - Replaced `onBeforeSendUserMessage(UserMessageParams)` to `onBeforeSendUserMessage(UserMessageCreateParams)`. - Replaced `onBeforeUpdateGroupChannel(GroupChannelParams)` to `onBeforeUpdateGroupChannel(GroupChannelUpdateParams)`. - Replaced `onBeforeUpdateUserMessage(UserMessageParams)` to `onBeforeUpdateUserMessage(UserMessageUpdateParams)`. - Replaced `onBeforeSendFileMessage(FileMessageParams)` to `onBeforeSendFileMessage(FileMessageCreateParams).` - Replaced `onBeforeCreateOpenChannel(OpenChannelParams)` to `onBeforeCreateOpenChannel(OpenChannelCreateParams)` ------ ##### OnCompleteHandler - Repleace `onComplete(SendBirdException)` to `onComplete(SendbirdException)`. ------ ##### OnResultHandler - Replaced `onResult(List, SendBirdException)` to `onComplete(List, SendbirdException)`. ------ ##### OnListResultHandler - Replaced `onError(SendBirdException)` to `onError(SendbirdException)`. ------ ##### Group channel list - ###### ChannelListActivity - Replaced `ChannelListFragment createChannelListFragment()` to `Fragment createFragment()`. - ###### ChannelListFragment - Deleted `setErrorFrame()` - Added `onBindHeaderComponent(HeaderComponent, ChannelListViewModel)` - Added `onBindChannelListComponent(ChannelListComponent, ChannelListViewModel)` - Added `onBindStatusComponent(StatusComponent, ChannelListViewModel)` - ###### ChannelListFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftbuttonClickListener(OnClickListener` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightbuttonClickListener(OnClickListener)` - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Replaced `setItemLongClickListener(OnItemClickListener)` to `setOnItemLongClickListener(OnItemClickListener)` - Deleted `setCustomChannelListFragment(ChannelListFragment)` - Deleted `setIncludeEmpty(boolean)` - Deleted `setCustomChannelListFragment(ChannelListFragment)` - Added `withArguments(Bundle)` ------ ##### Chat in group channel - ###### ChannelActivity - Replaced `ChannelFragment createChannelFragment(String)` to `Fragment createFragment()`. - ###### ChannelFragment - Moved `getTooltipMessage(int)` into `MessageListComponent` - Replaced `onIdentifiableItemClick(View, String, int, BaseMessage)` to use `onMessageClicked(View, int, BaseMessage)`, `onMessageProfileClicked(View, int, BaseMessage)`, and `onQuoteReplyMessageClicked(View, int, BaseMessage)`. - Replaced `onIdentifiableItemLongClick(View, String, int, BaseMessage)` to use `onMessageLongClicked(View, int, BaseMessage)`, `onMessageProfileLongClicked(View, int, BaseMessage)`, and `onQuoteReplyMessageLongClicked(View, int, BaseMessage)`. - Replaced `sendUserMessage(UserMessageParams)` to use `sendUserMessage(UserMessageCreateParams)`. - Replaced `updateUserMessage(long, UserMessageParams)` to use `updateUserMessage(long, UserMessageUpdateParams)`. - Replaced `onBeforeSendUserMessage(UserMessageParams)` to use `onBeforeSendUserMessage(UserMessageCreateParams)`. - Replaced `onBeforeUpdateUserMessage(UserMessageParams)` to use `onBeforeUpdateUserMessage(UserMessageUpdateParams)`. - Replaced `onBeforeSendFileMessage(FileMessageParams)` to use `onBeforeSendFileMessage(FileMessageCreateParams)`. - Added `onBindChannelHeaderComponent(ChannelHeaderComponent, ChannelViewMode, GroupChannel)` - Added `onBindMessageListComponent(MessageListComponent, ChannelViewModel, GroupChannel)` - Added `onBindMessageInputComponent(MessageInputComponent, ChannelViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, ChannelViewModel, GroupChannel)` - ###### ChannelFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftbuttonClickListener(OnClickListener` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightbuttonClickListener(OnClickListener)` - Replaced `setInputLeftButtonListener(OnClickListener)` to `setOnInputLeftbuttonClickListener(OnClickListener)` - Replaced `setOnProfileClickListener(OnItemClickListener<>)` to `setOnMessageProfileClickListener(OnItemClickListener<>)` - Deleted `setCustomChannelFragment(ChannelFragment)` - Deleted `setItemClickListener(OnItemClickListener)` - Deleted `setItemLongClickListener(OnItemClickListener)` - Deleted `setListItemClickListener(OnIdentificableItemClickListener<>)` - Deleted `setListItemLongClickListener(OnIdentificableItemClickListener<>)` - Deleted `setLastSeenAt(boolean)` - Deleted `setCustomChannelFragment(ChannelFragment)` - Added `withArguments(Bundle)` - Added `setOnMessageClickListener(OnItemClickListener)` - Added `setOnMessageLongClickListener(OnItemLongClickListener)` - Added `setOnQuoteReplyMessageClickListener(OnItemClickListener)` - Added `setOnQuoteReplyMessageLongClickListener(OnItemLongClickListener)` ------ ##### Chat in open channel - ###### OpenChannelFragment - Replaced `onIdentifiableItemClick(View, String, int, BaseMessage)` to use `onMessageClicked(View, int, BaseMessage)` and `onMessageProfileClicked(View, int, BaseMessage)`. - Replaced `onIdentifiableItemLongClick(View, String, int, BaseMessage)` to use `onMessageLongClicked(View, int, BaseMessage)` and `onMessageProfileLongClicked(View, int, BaseMessage)`. - Replaced `sendUserMessage(UserMessageParams)` to use `sendUserMessage(UserMessageCreateParams)`. - Replaced `updateUserMessage(long, UserMessageParams)` to use `updateUserMessage(long, UserMessageUpdateParams)`. - Replaced `onBeforeSendUserMessage(UserMessageParams)` to use `onBeforeSendUserMessage(UserMessageCreateParams)`. - Replaced `onBeforeUpdateUserMessage(UserMessageParams)` to use `onBeforeUpdateUserMessage(UserMessageUpdateParams)`. - Replaced `onBeforeSendFileMessage(FileMessageParams)` to use `onBeforeSendFileMessage(FileMessageCreateParams)`. - Added `onBindChannelHeaderComponent(OpenChannelChannelHeaderComponent, OpenChannelViewModel, OpenChannel)` - Added `onBindMessageListComponent(OpenChannelMessageListComponent, OpenChannelViewModel, OpenChannel)` - Added `onBindMessageInputComponent(OpenChannelMessageInputComponent, OpenChannelViewModel, OpenChannel)` - Added `onBindStatusComponent(StatusComponent, OpenChannelViewModel, OpenChannel)` - ###### OpenChannelFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftbuttonClickListener(OnClickListener` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightbuttonClickListener(OnClickListener)` - Replaced `setInputLeftButtonListener(OnClickListener)` to `setOnInputLeftbuttonClickListener(OnClickListener)` - Replaced `setOnProfileClickListener(OnItemClickListener<>)` to `setOnMessageProfileClickListener(OnItemClickListener<>)` - Deleted `setCustomOpenChannelFragment(OpenChannelFragment)` - Deleted `setItemClickListener(OnItemClickListener)` - Deleted `setItemLongClickListener(OnItemClickListener)` - Deleted `setListItemClickListener(OnIdentificableItemClickListener<>)` - Deleted `setListItemLongClickListener(OnIdentificableItemClickListener<>)` - Added `withArguments(Bundle)` - Added `setOnProfileLongClickListener(OnItemClickListener<>)` to `setOnMessageProfileClickListener(OnItemClickListener<>)` - Added `setOnMessageClickListener(OnItemClickListener)` - Added `setOnMessageLongClickListener(OnItemLongClickListener)` ------ ##### Create group channel - ###### CreateChannelActivity - Replaced `CreateChannelFragment createChannelFragment()` and `CreateChannelFragment createChannelFragment(CreatableChannelType)` to `Fragment createFragment()`. - ###### CreateChannelFragment - Deleted `setErrorFrame()` . - Replaced `setRightButtonText(CharSequence)` and `setCreateButtonText(CharSequence)` to use `setRightButtonText(String)` in `StateHeaderComponent.Params`. - Replaced `setRightButtonEnabled(boolean)` and `setCreateButtonEnabled(boolean)` to use `setUseRightButton(boolean)` in `StateHeaderComponent.Params`. - Replaced `setUserListAdapter(UserListAdapter)` to use `setAdapter(UserInfoListAdapter)` in `CreateChannelUserListComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `StateHeaderComponent` - Replaced `setCustomUserListQueryHandler(CustomUserListQueryHandler)` to use `PagedQueryHandler createQueryHandler()` in `CreateChannelViewModel`. - Replaced `onBeforeCreateGroupChannel(GroupChannelParams)` to `onBeforeCreateGroupChannel(GroupChannelCreateParams)`. - Replaced `createGroupChannel(GroupChannelParams)` to `createGroupChannel(GroupChannelCreateParams)`. - Added `onBindHeaderComponent(SelectUserHeaderComponent, CreateChannelViewModel)` - Added `onBindUserListComponent(CreateChannelUserListComponent, CreateChannelViewModel)` - Added `onBindStatusComponent(StatusComponent, CreateChannelViewModel)` - ###### CreateChannelFragment.Builder - Replaced `setCustomUserListQueryHandler(CustomUserListQueryHandler)` to `setCustomPagedQueryHandler(PagedQueryHandler)` - Replaced `setUserListAdapter(UserListAdapter)` to `setCreateChannelUserListAdapter(CreateChannelUserListAdapter)` - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Deleted `setCustomCreateChannelFragment(CreateChannelFragment)` - Added `withArguments(Bundle)` ------ ##### Configure group channel settings - ###### ChannelSettingsActivity - Replaced `ChannelSettingsFragment createChannelSettingsFragment(String)` to `Fragment createFragment()`. - ###### ChannelSettingsFragment - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `ChannelSettingsHeaderComponent`. - Replaced `setOnMenuItemClickListener(OnMenuItemClickListener)` to use `setOnMenuClickListener(OnItemClickListener)` in `ChannelSettingsMenuComponent`. - Replaced `onBeforeUpdateGroupChannel(GroupChannelParams)` to `onBeforeUpdateGroupChannel(GroupChannelUpdateParams)`. - Replaced `updateGroupChannel(GroupChannelParams)` to `updateGroupChannel(GroupChannelUpdateParams)`. - Added `onBindHeaderComponent(ChannelSettingsHeaderComponent, ChannelSettingsViewModel, GroupChannel)` - Added `onBindSettingsInfoComponent(ChannelSettingsInfoComponent, ChannelSettingsViewModel, GroupChannel)` - Added `onBindSettingsMenuComponent(ChannelSettingsMenuComponent, ChannelSettingsViewModel, GroupChannel)` - ###### ChannelSettingsFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setOnSettingMenuClickListener(OnMenuItemClickListener)` to `setOnMenuClickListener(OnItemClickListener)` - Deleted `setMemberSettingClickListener(OnClickListener)` - Deleted `setCustomChannelSettingsFragment(ChannelSettingsFragment)` - Added `withArguments(Bundle)` ------ ##### Configure open channel settings - ###### OpenChannelSettingsActivity - Replaced `OpenChannelSettingsFragment createOpenChannelSettingsFragment(String)` to `Fragment createFragment()`. - ###### OpenChannelSettingsFragment - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `ChannelSettingsHeaderComponent`. - Replaced `setOnMenuItemClickListener(OnMenuItemClickListener)` to use `setOnMenuClickListener(OnItemClickListener)` in `ChannelSettingsMenuComponent`. - Replaced `onBeforeUpdateOpenChannel(OpenChannelParams)` to `onBeforeUpdateOpenChannel(OpenChannelUpdateParams)`. - Replaced `updateOpenChannel(OpenChannelParams)` to `updateOpenChannel(OpenChannelUpdateParams)`. - Added `onBindHeaderComponent(OpenChannelSettingsHeaderComponent, OpenChannelSettingsViewModel, OpenChannel)` - Added `onBindSettingsInfoComponent(OpenChannelSettingsInfoComponent, OpenChannelSettingsViewModel, OpenChannel)` - Added `onBindSettingsMenuComponent(OpenChannelSettingsMenuComponent, OpenChannelSettingsViewModel, OpenChannel)` - ###### OpenChannelSettingsFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setOnSettingMenuClickListener(OnMenuItemClickListener)` to `setOnMenuClickListener(OnItemClickListener)` - Deleted `setCustomOpenChannelSettingsFragment(OpenChannelSettingsFragment)` - Deleted `setMemberSettingClickListener(OnClickListener)` - Added `withArguments(Bundle)` ------ ##### Invite users - ###### InviteChannelActivity - Replaced `InviteChannelActivity` to `InviteUserActivity`. - Replaced `InviteChannelFragment createInviteChannelFragment(String)` to `Fragment createFragment()`. - ###### InviteChannelFragment - Replaced `InviteChannelFragment` to `InviteUserFragment`. - Deleted `setErrorFrame()`. - Replaced `onUserSelectComplete(List)` to `onUserSelectionCompleted(List)`. - Replaced `setInviteButtonText(CharSequence)`, `setInviteButtonEnabled(boolean)`, `setRightButtonText(CharSequence)`, and `setRightButtonEnabled(boolean)` to use `notifySelectedUserChanged(int)` in `SelectUserHeaderComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `SelectUserHeaderComponent`. - Replaced `setUserListAdapter(UserListAdapter)` to use `setAdapter(InviteUserListAdapter)` in `InviteUserListComponent`. - Replaced `setCustomUserListQueryHandler(CustomUserListQueryHandler)` to use `PagedQueryHandler createQueryHandler(String)` in `InviteUserViewModel`. - Added `onBindHeaderComponent(SelectUserHeaderComponent, InviteUserViewModel, GroupChannel)` - Added `onBindInviteUserListComponent(InviteUserListComponent, InviteUserViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, InviteUserViewModel, GroupChannel)` - ###### InviteChannelFragment.Builder - Replaced `setCustomUserListQueryHandler(CustomUserListQueryHandler)` to `setCustomPagedQueryHandler(PagedQueryHandler)` - Replaced `setUserListAdapter(UserListAdapter)` to `setInviteUserListAdapter(InviteUserListAdapter)` - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Deleted `setCustomInviteChannelFragment(InviteChannelFragment)` - Added `withArguments(Bundle)` ------ ##### Register as operators - ###### PromoteOperatorsActivity - Renamed `PromoteOperatorsActivity` to `RegisterOperatorListActivity` - Replaced `Fragment createPromoteOperatorFragment(GroupChannel)` to `Fragment createFragment()`. - ###### PromoteOperatorsFragment - Renamed `PromoteOperatorsFragment` to `RegisterOperatorListFragment` - Deleted `setErrorFrame()`. - Replaced `getDisabledUserIds()` to use `setDisabledUserIdList(List)` in `RegisterOperatorListAdapter`. - Replaced `onUserSelectComplete(List)` to `onUserSelectionCompleted(List)` - Replaced `setRightButtonText(CharSequence)` and `setRightButtonEnabled(boolean)` to use `notifySelectedUserChanged(int)` in `SelectUserHeaderComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `SelectUserHeaderComponent`. - Replaced `setUserListAdapter(UserListAdapter)` to use `setAdapter(RegisterOperatorListAdapter)` in `RegisterOperatorListComponent`. - Replaced `setCustomUserListQueryHandler(CustomUserListQueryHandler)` to use `PagedQueryHandler createQueryHandler(String)` in `RegisterOperatorsViewModel`. - Added `onBindHeaderComponent(SelectUserHeaderComponent, RegisterOperatorViewModel, GroupChannel)` - Added `onBindRegisterOperatorListComponent(RegisterOperatorListComponent, RegisterOperatorViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, RegisterOperatorViewModel, GroupChannel)` - ###### RegisterOperatorListFragment.Builder - Replaced `setCustomUserListQueryHandler(CustomUserListQueryHandler)` to `setCustomPagedQueryHandler(PagedQueryHandler)` - Replaced `setUserListAdapter(UserListAdapter)` to `setRegisterOperatorListAdapter(RegisterOperatorListAdapter)` - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Deleted `setCustomPromoteOperatorFragment(PromoteOperatorsFragment)` - Added `withArguments(Bundle)` - ###### strings.xml - Replaced `sb_promote_operator` to `sb_text_register_operator` - Replaced `sb_dismiss_operator` to `sb_text_unregister_operator` - Replaced `sb_text_error_promote_operator` to `sb_text_error_register_operator` - Replaced `sb_text_error_dismiss_operator` to `sb_text_error_unregister_operator` ------ ##### Moderate channels and members - ###### ModerationActivity - Replaced `ModerationFragment createModerationsFragment(String)` to `Fragment createFragment()`. - ###### ModerationFragment - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setOnMenuItemClickListener(OnMenuItemClickListener)` to use `setOnMenuClickListener(OnItemClickListener)` in `ModerationListComponent`. - Added `onBindHeaderComponent(SelectUserHeaderComponent, ModerationViewModel, GroupChannel)` - Added `onBindModerationListComponent(ModerationListComponent, ModerationViewModel, GroupChannel)` - ###### ModerationFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Deleted `setCustomModerationFragment(ModerationFragment)` - Added `withArguments(Bundle)` ------ ##### List channel members - ###### MemberListActivity - Replaced `MemberListFragment createMemberListFragment(String)` to `Fragment createFragment()`. - ###### MemberListFragment - Deleted `setErrorFrame()`. - Replaced `onOperatorDismissed()` and `onChannelDeleted()`to use observe LiveData in `MemberListViewModel`. See `getOperatorDismissed()` and `getChannelDeleted()` methods. - Replaced `setCustomQueryHandler(CustomMemberListQuery)` to use `PagedQueryHandler createQueryHandler(String)` in `MemberListViewModel`. - Replaced `onItemClicked(View, int, Member)` to `onItemClicked(View, int, Member)` in `MemberListComponent`. - Replaced `onItemLongClicked(View, int, Member)` to `onItemLongClicked(View, int, Member)` in `MemberListComponent`. - Replaced `onActionItemClicked(View, int, Member)` to `onActionItemClicked(View, int, Member)` in `MemberListComponent`. - Replaced `onProfileClicked(View, int, Member)` to `onUserProfileClicked(View, int, Member)` in `MemberListComponent`. - Replaced `setMemberListAdapter(MemberListAdapter)` to `setAdapter(MemberListAdapter)` in `MemberListComponent`. - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` in `MemberListComponent`. - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` in `MemberListComponent`. - Replaced `setActionItemClickListener(0nItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` in `MemberListComponent`. - Replaced `setOnProfileClickListener(0nItemClickListener)` to `setOnProfileClickListener(OnItemClickListener)` in `MemberListComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setHeaderRightButtonListener(OnClickListener)` to use `setOnRightButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setLoadingDialogHandler(LoadingDialogHandler)` to `setOnLoadingDialogHandler(LoadingDialogHandler) ` in `MemberListModule`. - Added `onBindHeaderComponent(HeaderComponent, MemberListViewModel, GroupChannel)` - Added `onBindMemberListComponent(MemberListComponent, MemberListViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, MemberListViewModel, GroupChannel)` - ###### MemberListFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightButtonClickListener(OnClickListener)` - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` - Replaced `setActionItemClickListener(OnItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` - Deleted `setCustomMemberListFragment(MemberListFragment)` - Added `withArguments(Bundle)` ------ ##### List banned uses in group channel - ###### BannedListActivity - Renamed `BannedListActivity` to `BannedUserListActivity` - Replaced `Fragment createBannedListFragment(String)` to `Fragment createFragment()`. - ###### BannedListFragment - Renamed `BannedListFragment` to `BannedUserListFragment` - Deleted `setErrorFrame()`. - Replaced `onOperatorDismissed()` and `onChannelDeleted()`to use observe LiveData in `BannedListViewModel`. See `getOperatorDismissed()` and `getChannelDeleted()` methods. - Replaced `setCustomQueryHandler(CustomMemberListQuery)` to use `PagedQueryHandler createQueryHandler(String)` in `BannedListViewModel`. - Replaced `setUserListAdapter(UserTypeListAdapter)` to `setAdapter(BannedUserListAdapter)` in `BannedUserListComponent`. - Replaced `onItemClicked(View, int, User)` to `onItemClicked(View, int, User)` in `BannedUserListComponent`. - Replaced `onItemLongClicked(View, int, User)` to `onItemLongClicked(View, int, User)` in `BannedUserListComponent`. - Replaced `onActionItemClicked(View, int, User)` to `onActionItemClicked(View, int, User)` in `BannedUserListComponent`. - Replaced `onProfileClicked(View, int, User)` to `onUserProfileClicked(View, int, User)` in `BannedUserListComponent`. - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` in `BannedUserListComponent`. - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` in `BannedUserListComponent`. - Replaced `setActionItemClickListener(0nItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` in `BannedUserListComponent`. - Replaced `setOnProfileClickListener(0nItemClickListener)` to `setOnProfileClickListener(OnItemClickListener)` in `BannedUserListComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setHeaderRightButtonListener(OnClickListener)` to use `setOnRightButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setLoadingDialogHandler(LoadingDialogHandler)` to `setOnLoadingDialogHandler(LoadingDialogHandler) ` in `BannedUserListModule`. - Added `onBindHeaderComponent(HeaderComponent, BannedUserListViewModel, GroupChannel)` - Added `onBindBannedUserListComponent(BannedUserListComponent, BannedUserListViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, BannedUserListViewModel, GroupChannel)` - ###### BannedListFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightButtonClickListener(OnClickListener)` - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` - Replaced `setActionItemClickListener(OnItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` - Replaced `setUserListAdapter(UserTypeListAdapter)` to `setBannedUserListAdapter(BannedUserListAdapter)` - Deleted `setCustomBannedMemberFragment(BannedListFragment)` - Added `withArguments(Bundle)` ------ ##### List muted users in group channel - ###### MutedMemberListActivity - Replaced `Fragment createMutedMemberListFragment(String)` to `Fragment createFragment()`. - ###### MutedMemberListFragment - Deleted `setErrorFrame()`. - Replaced `onOperatorDismissed()` and `onChannelDeleted()`to use observe LiveData in `MutedMemberListViewModel`. See `getOperatorDismissed()` and `getChannelDeleted()` methods. - Replaced `setCustomQueryHandler(CustomMemberListQuery)` to use `PagedQueryHandler createQueryHandler(String)` in `BannedListViewModel`. - Replaced `setMemberListAdapter(MemberListAdapter)` to `setAdapter(MutedMemberListAdapter)` in `MutedMemberListComponent`. - Replaced `onItemClicked(View, int, Member)` to `onItemClicked(View, int, Member)` in `MutedMemberListComponent`. - Replaced `onItemLongClicked(View, int, Member)` to `onItemLongClicked(View, int, Member)` in `MutedMemberListComponent`. - Replaced `onActionItemClicked(View, int, Member)` to `onActionItemClicked(View, int, Member)` in `MutedMemberListComponent`. - Replaced `onProfileClicked(View, int, Member)` to `onUserProfileClicked(View, int, Member)` in `MutedMemberListComponent`. - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` in `MutedMemberListComponent`. - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` in `MutedMemberListComponent`. - Replaced `setActionItemClickListener(0nItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` in `MutedMemberListComponent`. - Replaced `setOnProfileClickListener(0nItemClickListener)` to `setOnProfileClickListener(OnItemClickListener)` in `MutedMemberListComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setHeaderRightButtonListener(OnClickListener)` to use `setOnRightButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setLoadingDialogHandler(LoadingDialogHandler)` to `setOnLoadingDialogHandler(LoadingDialogHandler) ` in `MutedMemberListModule`. - Added `onBindHeaderComponent(HeaderComponent, MutedMemberListViewModel, GroupChannel)` - Added `onBindMutedMemberListComponent(MutedMemberListComponent, MutedMemberListViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, MutedMemberListViewModel, GroupChannel)` - ###### MutedMemberListFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightButtonClickListener(OnClickListener)` - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` - Replaced `setActionItemClickListener(OnItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` - Replaced `setMemberListAdpater(MemberListAdapter)` to `setMutedMemberListAdapter(MutedMemberListAdapter)` - Deleted `setCustomMutedMemberFragment(MutedMemberListFragment)` - Added `withArguments(Bundle)` ------ ##### List operators of group channel - ###### OperatorListActivity - Replaced `Fragment createOperatorListFragment(String)` to `Fragment createFragment()`. - ###### OperatorListFragment - Deleted `setErrorFrame()`. - Replaced `onOperatorDismissed()` and `onChannelDeleted()`to use observe LiveData in `OperatorListViewModel`. See `getOperatorDismissed()` and `getChannelDeleted()` methods. - Replaced `setCustomQueryHandler(CustomMemberListQuery)` to use `PagedQueryHandler createQueryHandler(String)` in `OperatorListViewModel`. - Replaced `onItemClicked(View, int, User)` to `onItemClicked(View, int, User)` in `OperatorListComponent`. - Replaced `onItemLongClicked(View, int, User)` to `onItemLongClicked(View, int, User)` in `OperatorListComponent`. - Replaced `onActionItemClicked(View, int, User)` to `onActionItemClicked(View, int, User)` in `OperatorListComponent`. - Replaced `onProfileClicked(View, int, User)` to `onUserProfileClicked(View, int, User)` in `OperatorListComponent`. - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` in `OperatorListComponent`. - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` in `OperatorListComponent`. - Replaced `setActionItemClickListener(0nItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` in `OperatorListComponent`. - Replaced `setOnProfileClickListener(0nItemClickListener)` to `setOnProfileClickListener(OnItemClickListener)` in `OperatorListComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setHeaderRightButtonListener(OnClickListener)` to use `setOnRightButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setLoadingDialogHandler(LoadingDialogHandler)` to `setOnLoadingDialogHandler(LoadingDialogHandler) ` in `OperatorListModule`. - Added `onBindHeaderComponent(HeaderComponent, OperatorListViewModel, GroupChannel)` - Added `onBindOperatorListComponent(OperatorListComponent, OperatorListViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, OperatorListViewModel, GroupChannel)` - ###### OperatorListFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightButtonClickListener(OnClickListener)` - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` - Replaced `setActionItemClickListener(OnItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` - Replaced `setUserListAdapter(UserTypeListAdapter)` to `setOperatorListAdapter(OperatorListAdapter)` - Deleted `setCustomOperatorListFragment(OperatorListFragment)` - Added `withArguments(Bundle)` ------ ##### Search messages - ###### MessageSearchActivity - Replaced `MessageSearchFragment createMessageSearchFragment(String)` to `Fragment createFragment()`. - ###### MessageSearchFragment - Deleted `setErrorFrame()`. - Added `onBindHeaderComponent(MessageSearchHeaderComponent, MessageSearchViewModel, GroupChannel)` - Added `onBindMessageSearchListComponent(MessageSearchListComponent, MessageSearchViewModel, GroupChannel)` - Added `onBindStatusComponent(StatusComponent, MessageSearchViewModel, GroupChannel)` - ###### MessageSearchFragment.Builder - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Deleted `setCustomMessageSearchFragment(MessageSearchFragment)` - Added `withArguments(Bundle)` ------ ##### List participants of open channel - ###### ParticipantsListActivity - Renamed `ParticipantsListActivity` to `ParticipantListActivity` - Replaced `ParticipantsListFragment createParticipantsListFragment(String)` to `Fragment createFragment()`. - ###### ParticipantsListFragment - Renamed `ParticipantsListFragment` to `ParticipantListFragment` - Deleted `setErrorFrame()`. - Added `getChannelDeleted()` to use observe LiveData in `ParticipantsViewModel`. - Added `PagedQueryHandler createQueryHandler(String)` in `ParticipantsViewModel`. - Replaced `setUserListAdapter(UserTypeListAdapter)` to `setAdapter(ParticipantsListAdapter)` in `ParticipantsListComponent`. - Replaced `onItemClicked(View, int, User)` to `onItemClicked(View, int, User)` in `ParticipantsListComponent`. - Replaced `onItemLongClicked(View, int, User)` to `onItemLongClicked(View, int, User)` in `ParticipantsListComponent`. - Added `onActionItemClicked(View, int, User)` in `ParticipantsListComponent`. - Replaced `onProfileClicked(View, int, User)` to `onUserProfileClicked(View, int, User)` in `ParticipantsListComponent`. - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` in `ParticipantsListComponent`. - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` in `ParticipantsListComponent`. - Added `setOnActionItemClickListener(OnItemClickListener)` in `ParticipantsListComponent`. - Replaced `setOnProfileClickListener(0nItemClickListener)` to `setOnProfileClickListener(OnItemClickListener)` in `ParticipantsListComponent`. - Replaced `setHeaderLeftButtonListener(OnClickListener)` to use `setOnLeftButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setHeaderRightButtonListener(OnClickListener)` to use `setOnRightButtonClickListener(OnClickListener)` in `HeaderComponent`. - Replaced `setLoadingDialogHandler(LoadingDialogHandler)` to `setOnLoadingDialogHandler(LoadingDialogHandler) ` in `ParticipantsListModule`. - Added `onBindHeaderComponent(HeaderComponent, ParticipantViewModel, OpenChannel)` - Added `onBindParticipantsListComponent(ParticipantListComponent, ParticipantViewModel, OpenChannel)` - Added `onBindStatusComponent(StatusComponent, ParticipantViewModel, OpenChannel)` - ###### ParticipantsListFragment.Builder - Replaced `setHeaderLeftButtonListener(OnClickListener)` to `setOnLeftButtonClickListener(OnClickListener)` - Replaced `setHeaderRightButtonListener(OnClickListener)` to `setOnRightButtonClickListener(OnClickListener)` - Replaced `setItemClickListener(OnItemClickListener)` to `setOnItemClickListener(OnItemClickListener)` - Replaced `setItemLongClickListener(OnItemLongClickListener)` to `setOnItemLongClickListener(OnItemLongClickListener)` - Replaced `setActionItemClickListener(OnItemClickListener)` to `setOnActionItemClickListener(OnItemClickListener)` - Replaced `setUserListAdapter(UserTypeListAdapter)` to `setParticipantListAdapter(ParticipantListAdapter)` - Deleted `setCustomParticipantsListFragment(ParticipantsListFragment)` - Added `withArguments(Bundle)` ------ ##### Adapters of recycler view These adapters are binded to `RecyclerView` by using in each screen. See the follow table. | feature name | v2.0 | v3.0 | | ------------------- | ---------------------- | ------------------------ | | **MemberList** | `MemberListAdapter` | `MemberListAdapter` | | **OperatorList** | `UserTypeListAdapter` | `OperatorListAdapter` | | **MutedMemberList** | `MemberListAdapter` | `MutedMemberListAdapter` | | **BannedUserList** | `UserTypeListAdapter` | `BannedUserListAdapter` | | **Participantlist** | ` UserTypeListAdapter` | `ParticipantListAdapter` |