Skip to content

Commit

Permalink
Merge pull request #3675 from nextcloud/pr-3630-follow-up-1
Browse files Browse the repository at this point in the history
Follow up fixes to ChatActivity w/ recent refactoring
  • Loading branch information
mahibi authored Mar 5, 2024
2 parents b9b37f8 + a74c8c5 commit a1e543b
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 29 deletions.
52 changes: 26 additions & 26 deletions app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ import com.nextcloud.talk.ui.recyclerview.MessageSwipeActions
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.AudioUtils
import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.ContactUtils
import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DateConstants
Expand All @@ -206,6 +206,7 @@ import com.nextcloud.talk.utils.MagicCharPolicy
import com.nextcloud.talk.utils.Mimetype
import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.ParticipantPermissions
import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.UriUtils
import com.nextcloud.talk.utils.VibrationUtils
import com.nextcloud.talk.utils.bundle.BundleKeys
Expand All @@ -220,7 +221,6 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_START_CALL_AFTER_ROOM_SWITCH
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SWITCH_TO_ROOM
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil
import com.nextcloud.talk.utils.rx.DisposableSet
Expand Down Expand Up @@ -832,11 +832,11 @@ class ChatActivity :
when (state.response.code()) {
HTTP_CODE_OK -> {
Log.d(TAG, "lookIntoFuture: ${state.lookIntoFuture}")
val chatOverall = state.response.body() as ChatOverall?
var chatMessageList = chatOverall?.ocs!!.data!!

processHeaderChatLastGiven(state.response, state.lookIntoFuture)

val chatOverall = state.response.body() as ChatOverall?
var chatMessageList = chatOverall?.ocs!!.data!!
chatMessageList = handleSystemMessages(chatMessageList)

if (chatMessageList.size == 0) {
Expand All @@ -861,15 +861,7 @@ class ChatActivity :
adapter?.notifyDataSetChanged()
}

var lastAdapterId = 0
if (adapter?.items?.size != 0) {
val item = adapter?.items?.get(0)?.item
if (item != null) {
lastAdapterId = (item as ChatMessage).jsonMessageId
} else {
lastAdapterId = 0
}
}
var lastAdapterId = getLastAdapterId()

if (
state.lookIntoFuture &&
Expand Down Expand Up @@ -898,24 +890,24 @@ class ChatActivity :
}

HTTP_CODE_NOT_MODIFIED -> {
processHeaderChatLastGiven(state.response, state.lookIntoFuture)
chatViewModel.refreshChatParams(
setupFieldsForPullChatMessages(
state.lookIntoFuture,
true,
globalLastKnownFutureMessageId,
true
)
),
true
)
}

HTTP_CODE_PRECONDITION_FAILED -> {
processHeaderChatLastGiven(state.response, state.lookIntoFuture)
chatViewModel.refreshChatParams(
setupFieldsForPullChatMessages(
state.lookIntoFuture,
true,
globalLastKnownFutureMessageId,
true
)
),
true
)
}

Expand Down Expand Up @@ -1226,6 +1218,19 @@ class ChatActivity :
)
}

private fun getLastAdapterId(): Int {
var lastId = 0
if (adapter?.items?.size != 0) {
val item = adapter?.items?.get(0)?.item
if (item != null) {
lastId = (item as ChatMessage).jsonMessageId
} else {
lastId = 0
}
}
return lastId
}

private fun setEditUI() {
binding.messageInputView.messageSendButton.visibility = View.GONE
binding.messageInputView.recordAudioButton.visibility = View.GONE
Expand Down Expand Up @@ -3703,8 +3708,7 @@ class ChatActivity :
}

private fun processMessagesFromTheFuture(chatMessageList: List<ChatMessage>) {
val shouldAddNewMessagesNotice = (adapter?.itemCount ?: 0) > 0 && chatMessageList.isNotEmpty()

val shouldAddNewMessagesNotice = layoutManager?.findFirstVisibleItemPosition()!! > 0
if (shouldAddNewMessagesNotice) {
val unreadChatMessage = ChatMessage()
unreadChatMessage.jsonMessageId = -1
Expand All @@ -3715,10 +3719,6 @@ class ChatActivity :
}

addMessagesToAdapter(shouldAddNewMessagesNotice, chatMessageList)

if (shouldAddNewMessagesNotice && adapter != null) {
scrollToFirstUnreadMessage()
}
}

private fun processMessagesNotFromTheFuture(chatMessageList: List<ChatMessage>) {
Expand Down Expand Up @@ -3791,7 +3791,7 @@ class ChatActivity :
}

private fun modifyMessageCount(shouldAddNewMessagesNotice: Boolean, shouldScroll: Boolean) {
if (!shouldAddNewMessagesNotice && !shouldScroll) {
if (shouldAddNewMessagesNotice) {
binding.popupBubbleView.isShown.let {
if (it) {
newMessagesCount++
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ class ChatViewModel @Inject constructor(
val editMessageViewState: LiveData<ViewState>
get() = _editMessageViewState

fun refreshChatParams(pullChatMessagesFieldMap: HashMap<String, Int>) {
if (pullChatMessagesFieldMap != _getFieldMapForChat.value) {
fun refreshChatParams(pullChatMessagesFieldMap: HashMap<String, Int>, overrideRefresh: Boolean = false) {
if (pullChatMessagesFieldMap != _getFieldMapForChat.value || overrideRefresh) {
_getFieldMapForChat.postValue(pullChatMessagesFieldMap)
Log.d(TAG, "FieldMap Refreshed with $pullChatMessagesFieldMap vs ${_getFieldMapForChat.value}")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ class ConversationsListActivity :
}

is ConversationsListViewModel.GetFederationInvitationsErrorState -> {
Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
Snackbar.make(binding.root, R.string.get_invitations_error, Snackbar.LENGTH_LONG).show()
}

else -> {}
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -800,4 +800,5 @@ How to translate with transifex:
<string name="nc_edited_by">"Edited by "</string>
<string name="nc_clear_edit_button">clear Edit Button</string>
<string name="nc_edit_icon">Edit Icon</string>
<string name="get_invitations_error">Failed to fetch pending invitations</string>
</resources>

0 comments on commit a1e543b

Please sign in to comment.