Skip to content

Commit

Permalink
Added 3.2.2
Browse files Browse the repository at this point in the history
  • Loading branch information
rimdoo committed Oct 27, 2022
1 parent 3e2aeba commit 2f28341
Show file tree
Hide file tree
Showing 22 changed files with 390 additions and 99 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

### v3.2.2 (Oct 27, 2022) with Core SDK `v4.1.1`
* Added `setOnScrollFirstButtonClickListener(OnConsumableClickListener)` in `ChannelFragment.Builder` and `OpenChannelFragment.Builder`
* Added `scrollToFirst()`, `setOnScrollFirstButtonClickListener(OnConsumableClickListener)`, and `onScrollFirstButtonClicked(View)` in `MessageListComponent` and `OpemChannelMessageListComponent`
* Deprecated `setOnScrollBottomButtonClickListener(View.OnClickListener)` in `ChannelFragment.Builder` and `OpenChannelFragment.Builder`
* Deprecated `scrollToBottom()`, `setOnScrollBottomButtonClickListener(View.OnClickListener)`, and `onScrollBottomButtonClicked(View)` in `MessageListComponent` and `OpemChannelMessageListComponent`
* Improved stability

### v3.2.1 (Sep 29, 2022) with Core SDK `v4.0.9`
* Added `takeVideo()` in `ChannelFragment` and `OpenChannelFragment`
* Support custom font in message bubble and input filed.
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ org.gradle.jvmargs=-Xmx1536m
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true

UIKIT_VERSION = 3.2.1
UIKIT_VERSION = 3.2.2
UIKIT_VERSION_CODE = 1
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import androidx.multidex.MultiDexApplication;

import com.sendbird.android.SendbirdChat;
import com.sendbird.android.exception.SendbirdError;
import com.sendbird.android.exception.SendbirdException;
import com.sendbird.android.handler.InitResultHandler;
import com.sendbird.android.params.ApplicationUserListQueryParams;
Expand All @@ -32,6 +33,7 @@
import com.sendbird.uikit.interfaces.CustomUserListQueryHandler;
import com.sendbird.uikit.interfaces.OnListResultHandler;
import com.sendbird.uikit.interfaces.UserInfo;
import com.sendbird.uikit.log.Logger;
import com.sendbird.uikit.model.UserMentionConfig;

import java.util.ArrayList;
Expand Down Expand Up @@ -195,6 +197,10 @@ public void loadInitial(@NonNull OnListResultHandler<UserInfo> handler) {
userListQuery = SendbirdChat.createApplicationUserListQuery(params);
userListQuery.next((list, e) -> {
if (e != null || list == null) {
if (e != null && e.getCode() == SendbirdError.ERR_NON_AUTHORIZED) {
Logger.w("An error occurred because you don't have access to the user list in your application. " +
"In order to gain access, you can turn on this attribute in the Access Control List settings on Sendbird Dashboard.");
}
return;
}

Expand Down
3 changes: 2 additions & 1 deletion uikit/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

// Sendbird
api 'com.sendbird.sdk:sendbird-chat:4.0.9'
api 'com.sendbird.sdk:sendbird-chat:4.1.1'

implementation 'com.github.bumptech.glide:glide:4.13.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'
Expand All @@ -79,5 +79,6 @@ dependencies {
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

}

Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,17 @@ class MessageDiffCallback extends DiffUtil.Callback {
@NonNull
private final GroupChannel newChannel;
private final boolean useMessageGroupUI;
private final boolean useReverseLayout;

public MessageDiffCallback(@Nullable GroupChannel oldChannel, @NonNull GroupChannel newChannel, @NonNull List<BaseMessage> oldMessageList, @NonNull List<BaseMessage> newMessageList, boolean useMessageGroupUI) {
public MessageDiffCallback(@Nullable GroupChannel oldChannel, @NonNull GroupChannel newChannel,
@NonNull List<BaseMessage> oldMessageList, @NonNull List<BaseMessage> newMessageList,
boolean useMessageGroupUI, boolean useReverseLayout) {
this.oldChannel = oldChannel;
this.newChannel = newChannel;
this.oldMessageList = oldMessageList;
this.newMessageList = newMessageList;
this.useMessageGroupUI = useMessageGroupUI;
this.useReverseLayout = useReverseLayout;
}

@Override
Expand Down Expand Up @@ -121,8 +125,8 @@ public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
BaseMessage newPrevMessage = newItemPosition - 1 < 0 ? null : newMessageList.get(newItemPosition - 1);
BaseMessage oldNextMessage = oldItemPosition + 1 >= oldMessageList.size() ? null : oldMessageList.get(oldItemPosition + 1);
BaseMessage newNextMessage = newItemPosition + 1 >= newMessageList.size() ? null : newMessageList.get(newItemPosition + 1);
MessageGroupType oldMessageGroupType = MessageUtils.getMessageGroupType(oldPrevMessage, oldMessage, oldNextMessage);
MessageGroupType newMessageGroupType = MessageUtils.getMessageGroupType(newPrevMessage, newMessage, newNextMessage);
MessageGroupType oldMessageGroupType = MessageUtils.getMessageGroupType(oldPrevMessage, oldMessage, oldNextMessage, useReverseLayout);
MessageGroupType newMessageGroupType = MessageUtils.getMessageGroupType(newPrevMessage, newMessage, newNextMessage, useReverseLayout);

return oldMessageGroupType == newMessageGroupType;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public class MessageListAdapter extends BaseMessageAdapter<BaseMessage, MessageV
@Nullable
private OnIdentifiableItemLongClickListener<BaseMessage> listItemLongClickListener;
private final boolean useMessageGroupUI;
private final boolean useReverseLayout;
@Nullable
private MessageUIConfig messageUIConfig;

Expand Down Expand Up @@ -99,8 +100,21 @@ public MessageListAdapter(@Nullable GroupChannel channel) {
* @since 2.2.0
*/
public MessageListAdapter(@Nullable GroupChannel channel, boolean useMessageGroupUI) {
this(channel, useMessageGroupUI, true);
}

/**
* Constructor
*
* @param channel The {@link GroupChannel} that contains the data needed for this adapter
* @param useMessageGroupUI <code>true</code> if the message group UI is used, <code>false</code> otherwise.
* @param useReverseLayout <code>true</code> if the message list is reversed, <code>false</code> otherwise.
* @since 3.2.2
*/
public MessageListAdapter(@Nullable GroupChannel channel, boolean useMessageGroupUI, boolean useReverseLayout) {
if (channel != null) this.channel = GroupChannel.clone(channel);
this.useMessageGroupUI = useMessageGroupUI;
this.useReverseLayout = useReverseLayout;
setHasStableIds(true);
}

Expand Down Expand Up @@ -229,7 +243,7 @@ public void onBindViewHolder(@NonNull MessageViewHolder holder, final int positi
}

if (channel != null) {
holder.onBindViewHolder(channel, prev, current, next);
holder.onBindViewHolder(channel, prev, current, next, useReverseLayout);
}
}

Expand Down Expand Up @@ -313,7 +327,7 @@ public void setItems(@NonNull final GroupChannel channel, @NonNull final List<Ba
final List<BaseMessage> copiedMessage = Collections.unmodifiableList(messageList);
differWorker.submit(() -> {
final CountDownLatch lock = new CountDownLatch(1);
final MessageDiffCallback diffCallback = new MessageDiffCallback(MessageListAdapter.this.channel, channel, MessageListAdapter.this.messageList, messageList, useMessageGroupUI);
final MessageDiffCallback diffCallback = new MessageDiffCallback(MessageListAdapter.this.channel, channel, MessageListAdapter.this.messageList, messageList, useMessageGroupUI, useReverseLayout);
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback);

mainHandler.post(() -> {
Expand Down Expand Up @@ -514,4 +528,4 @@ public BaseMessage getItem(int position) {
public List<BaseMessage> getItems() {
return Collections.unmodifiableList(messageList);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,17 @@ class OpenChannelMessageDiffCallback extends DiffUtil.Callback {
@NonNull
private final OpenChannel newChannel;
private final boolean useMessageGroupUI;
private final boolean useReverseLayout;

public OpenChannelMessageDiffCallback(@Nullable OpenChannel oldChannel, @NonNull OpenChannel newChannel, @NonNull List<BaseMessage> oldMessageList, @NonNull List<BaseMessage> newMessageList, boolean useMessageGroupUI) {
public OpenChannelMessageDiffCallback(@Nullable OpenChannel oldChannel, @NonNull OpenChannel newChannel,
@NonNull List<BaseMessage> oldMessageList, @NonNull List<BaseMessage> newMessageList,
boolean useMessageGroupUI, boolean useReverseLayout) {
this.oldChannel = oldChannel;
this.newChannel = newChannel;
this.oldMessageList = oldMessageList;
this.newMessageList = newMessageList;
this.useMessageGroupUI = useMessageGroupUI;
this.useReverseLayout = useReverseLayout;
}

@Override
Expand Down Expand Up @@ -84,8 +88,8 @@ public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
BaseMessage newPrevMessage = newItemPosition - 1 < 0 ? null : newMessageList.get(newItemPosition - 1);
BaseMessage oldNextMessage = oldItemPosition + 1 >= oldMessageList.size() ? null : oldMessageList.get(oldItemPosition + 1);
BaseMessage newNextMessage = newItemPosition + 1 >= newMessageList.size() ? null : newMessageList.get(newItemPosition + 1);
MessageGroupType oldMessageGroupType = MessageUtils.getMessageGroupType(oldPrevMessage, oldMessage, oldNextMessage);
MessageGroupType newMessageGroupType = MessageUtils.getMessageGroupType(newPrevMessage, newMessage, newNextMessage);
MessageGroupType oldMessageGroupType = MessageUtils.getMessageGroupType(oldPrevMessage, oldMessage, oldNextMessage, useReverseLayout);
MessageGroupType newMessageGroupType = MessageUtils.getMessageGroupType(newPrevMessage, newMessage, newNextMessage, useReverseLayout);

return oldMessageGroupType == newMessageGroupType;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ public class OpenChannelMessageListAdapter extends BaseMessageAdapter<BaseMessag
@Nullable
private OnIdentifiableItemLongClickListener<BaseMessage> listItemLongClickListener;
private final boolean useMessageGroupUI;
private final boolean useReverseLayout;
@Nullable
private MessageUIConfig messageUIConfig;

Expand Down Expand Up @@ -89,8 +90,21 @@ public OpenChannelMessageListAdapter(@Nullable OpenChannel channel) {
* @since 2.2.0
*/
public OpenChannelMessageListAdapter(@Nullable OpenChannel channel, boolean useMessageGroupUI) {
this(channel, useMessageGroupUI, true);
}

/**
* Constructor
*
* @param channel The {@link OpenChannel} that contains the data needed for this adapter
* @param useMessageGroupUI <code>true</code> if the message group UI is used, <code>false</code> otherwise.
* @param useReverseLayout <code>true</code> if the message list is reversed, <code>false</code> otherwise.
* @since 3.2.2
*/
public OpenChannelMessageListAdapter(@Nullable OpenChannel channel, boolean useMessageGroupUI, boolean useReverseLayout) {
if (channel != null) this.channel = OpenChannel.clone(channel);
this.useMessageGroupUI = useMessageGroupUI;
this.useReverseLayout = useReverseLayout;
setHasStableIds(true);
}

Expand Down Expand Up @@ -187,7 +201,7 @@ public void onBindViewHolder(@NonNull MessageViewHolder holder, final int positi
}

if (channel != null) {
holder.onBindViewHolder(channel, prev, current, next);
holder.onBindViewHolder(channel, prev, current, next, useReverseLayout);
}
}

Expand Down Expand Up @@ -245,7 +259,7 @@ public void setItems(@NonNull final OpenChannel channel, @NonNull final List<Bas
final List<BaseMessage> copiedMessage = Collections.unmodifiableList(messageList);
service.submit(() -> {
final CountDownLatch lock = new CountDownLatch(1);
final OpenChannelMessageDiffCallback diffCallback = new OpenChannelMessageDiffCallback(OpenChannelMessageListAdapter.this.channel, channel, OpenChannelMessageListAdapter.this.messageList, messageList, useMessageGroupUI);
final OpenChannelMessageDiffCallback diffCallback = new OpenChannelMessageDiffCallback(OpenChannelMessageListAdapter.this.channel, channel, OpenChannelMessageListAdapter.this.messageList, messageList, useMessageGroupUI, useReverseLayout);
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffCallback);

mainHandler.post(() -> {
Expand Down Expand Up @@ -382,4 +396,4 @@ public void setMessageUIConfig(@Nullable MessageUIConfig messageUIConfig) {
public MessageUIConfig getMessageUIConfig() {
return this.messageUIConfig;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,11 @@ public MessageViewHolder(@NonNull View view) {
this.useMessageGroupUI = useMessageGroupUI;
}

public void onBindViewHolder(@NonNull BaseChannel channel, @Nullable BaseMessage prevMessage, @NonNull BaseMessage message, @Nullable BaseMessage nextMessage) {
public void onBindViewHolder(@NonNull BaseChannel channel,
@Nullable BaseMessage prevMessage,
@NonNull BaseMessage message,
@Nullable BaseMessage nextMessage,
boolean useReverseLayout) {
if (prevMessage != null) {
this.isNewDate = !DateUtils.hasSameDate(message.getCreatedAt(), prevMessage.getCreatedAt());
} else {
Expand All @@ -54,7 +58,7 @@ public void onBindViewHolder(@NonNull BaseChannel channel, @Nullable BaseMessage
this.isShowProfile = !isMine;

bind(channel, message, useMessageGroupUI ?
MessageUtils.getMessageGroupType(prevMessage, message, nextMessage) :
MessageUtils.getMessageGroupType(prevMessage, message, nextMessage, useReverseLayout) :
MessageGroupType.GROUPING_TYPE_SINGLE);
itemView.requestLayout();
}
Expand Down
Loading

0 comments on commit 2f28341

Please sign in to comment.