diff --git a/app/build.gradle b/app/build.gradle index 756e59203..aa3f93114 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -156,7 +156,8 @@ dependencies { implementation 'com.github.wooplr:Spotlight:1.2.3' - implementation 'com.github.mario:ChatKit:42d5685f16' + implementation 'com.github.mario:ChatKit:ed2e3cf370' + implementation 'com.otaliastudios:autocomplete:1.1.0' implementation 'com.github.Kennyc1012:BottomSheet:2.4.0' diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java index 65a8b8f84..1e2754aae 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java @@ -731,7 +731,9 @@ public class ChatController extends BaseController implements MessagesListAdapte if (isFirstMessagesProcessing) { isFirstMessagesProcessing = false; - loadingProgressBar.setVisibility(View.GONE); + if (loadingProgressBar != null) { + loadingProgressBar.setVisibility(View.GONE); + } if (chatMessageList.size() == 0) { emptyLayout.setVisibility(View.VISIBLE); @@ -747,13 +749,14 @@ public class ChatController extends BaseController implements MessagesListAdapte } } + int countGroupedMessages = 0; if (!isFromTheFuture) { - int countGroupedMessages = 0; for (int i = 0; i < chatMessageList.size(); i++) { if (chatMessageList.size() > i + 1) { if (chatMessageList.get(i + 1).getActorId().equals(chatMessageList.get(i).getActorId()) && - countGroupedMessages < 4) { + countGroupedMessages < 4 && DateFormatter.isSameDay(chatMessageList.get(i).getCreatedAt(), + chatMessageList.get(i + 1).getCreatedAt())) { chatMessageList.get(i).setGrouped(true); countGroupedMessages++; } else { @@ -805,13 +808,7 @@ public class ChatController extends BaseController implements MessagesListAdapte newMessagesCount = 0; } - if (i == 0) { - if (adapter.isPreviousSameAuthor(chatMessage.getActorId(), 0)) { - chatMessage.setGrouped(true); - } - } else if (chatMessage.getActorId().equals(chatMessageList.get(i - 1).getActorId())) { - chatMessage.setGrouped(true); - } + chatMessage.setGrouped(adapter.isPreviousSameAuthor(chatMessage.getActorId(), -1) && (adapter.getSameAuthorLastMessagesCount(chatMessage.getActorId()) % 5) > 0); adapter.addToStart(chatMessage, shouldScroll); }