passing note to self room token to MessageActionsDialog

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-04-23 10:08:00 +02:00
parent 1c6cd78fdb
commit bcd0216fca
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220
3 changed files with 45 additions and 33 deletions

View File

@ -256,6 +256,8 @@ class ChatActivity :
lateinit var chatViewModel: ChatViewModel lateinit var chatViewModel: ChatViewModel
lateinit var messageInputViewModel: MessageInputViewModel lateinit var messageInputViewModel: MessageInputViewModel
private var noteToSelfRoomToken: String = ""
private val startSelectContactForResult = registerForActivityResult( private val startSelectContactForResult = registerForActivityResult(
ActivityResultContracts ActivityResultContracts
.StartActivityForResult() .StartActivityForResult()
@ -434,6 +436,24 @@ class ChatActivity :
onBackPressedDispatcher.addCallback(this, onBackPressedCallback) onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
val apiVersion = ApiUtils.getConversationApiVersion(
conversationUser!!,
intArrayOf(
ApiUtils.API_V4,
ApiUtils
.API_V3,
1
)
)
chatViewModel.checkForNoteToSelf(
ApiUtils.getCredentials(conversationUser?.username, conversationUser?.token)!!,
ApiUtils.getUrlForRooms(
apiVersion,
conversationUser?.baseUrl
),
false
)
initObservers() initObservers()
pickMultipleMedia = registerForActivityResult( pickMultipleMedia = registerForActivityResult(
@ -769,6 +789,19 @@ class ChatActivity :
} }
} }
chatViewModel.getNoteToSelfAvailability.observe(this) { state ->
when (state) {
is ChatViewModel.NoteToSelfAvailableState -> {
this.lifecycleScope.launch {
noteToSelfRoomToken = state.roomToken
}
}
else -> {
noteToSelfRoomToken = ""
}
}
}
chatViewModel.chatMessageViewState.observe(this) { state -> chatViewModel.chatMessageViewState.observe(this) { state ->
when (state) { when (state) {
is ChatViewModel.ChatMessageStartState -> { is ChatViewModel.ChatMessageStartState -> {
@ -3126,7 +3159,8 @@ class ChatActivity :
currentConversation, currentConversation,
isShowMessageDeletionButton(message), isShowMessageDeletionButton(message),
participantPermissions.hasChatPermission(), participantPermissions.hasChatPermission(),
spreedCapabilities spreedCapabilities,
noteToSelfRoomToken
).show() ).show()
} }
} }

View File

@ -25,7 +25,6 @@ import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.ChatActivity import com.nextcloud.talk.chat.ChatActivity
import com.nextcloud.talk.chat.data.model.ChatMessage import com.nextcloud.talk.chat.data.model.ChatMessage
import com.nextcloud.talk.chat.viewmodels.ChatViewModel
import com.nextcloud.talk.data.network.NetworkMonitor import com.nextcloud.talk.data.network.NetworkMonitor
import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.databinding.DialogMessageActionsBinding import com.nextcloud.talk.databinding.DialogMessageActionsBinding
@ -36,10 +35,8 @@ import com.nextcloud.talk.models.json.capabilities.SpreedCapability
import com.nextcloud.talk.models.json.conversations.ConversationEnums import com.nextcloud.talk.models.json.conversations.ConversationEnums
import com.nextcloud.talk.repositories.reactions.ReactionsRepository import com.nextcloud.talk.repositories.reactions.ReactionsRepository
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.CapabilitiesUtil import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability
import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DateConstants import com.nextcloud.talk.utils.DateConstants
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.SpreedFeatures
@ -63,7 +60,8 @@ class MessageActionsDialog(
private val currentConversation: ConversationModel?, private val currentConversation: ConversationModel?,
private val showMessageDeletionButton: Boolean, private val showMessageDeletionButton: Boolean,
private val hasChatPermission: Boolean, private val hasChatPermission: Boolean,
private val spreedCapabilities: SpreedCapability private val spreedCapabilities: SpreedCapability,
private val noteToSelfRoomToken: String
) : BottomSheetDialog(chatActivity) { ) : BottomSheetDialog(chatActivity) {
@Inject @Inject
@ -123,34 +121,13 @@ class MessageActionsDialog(
viewThemeUtils.material.colorBottomSheetDragHandle(dialogMessageActionsBinding.bottomSheetDragHandle) viewThemeUtils.material.colorBottomSheetDragHandle(dialogMessageActionsBinding.bottomSheetDragHandle)
initEmojiBar(hasChatPermission) initEmojiBar(hasChatPermission)
initMenuItemCopy(!message.isDeleted) initMenuItemCopy(!message.isDeleted)
val apiVersion = ApiUtils.getConversationApiVersion(user!!, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V3, 1))
chatActivity.chatViewModel.checkForNoteToSelf( initMenuAddToNote(
ApiUtils.getCredentials(user.username, user.token)!!, networkMonitor.isOnline.value &&
ApiUtils.getUrlForRooms( !message.isDeleted &&
apiVersion, currentConversation?.type != ConversationEnums.ConversationType.NOTE_TO_SELF,
user.baseUrl noteToSelfRoomToken
),
false
) )
chatActivity.chatViewModel.getNoteToSelfAvailability.observe(this) { state ->
when (state) {
is ChatViewModel.NoteToSelfAvailableState -> {
this.lifecycleScope.launch {
initMenuAddToNote(
!message.isDeleted &&
!ConversationUtils.isNoteToSelfConversation(currentConversation) &&
networkMonitor.isOnline.value,
state.roomToken
)
}
}
else -> {
initMenuAddToNote(
false
)
}
}
}
initMenuItems(networkMonitor.isOnline.value) initMenuItems(networkMonitor.isOnline.value)
} }

View File

@ -57,7 +57,8 @@ enum class SpreedFeatures(val value: String) {
BAN_V1("ban-v1"), BAN_V1("ban-v1"),
EDIT_MESSAGES_NOTE_TO_SELF("edit-messages-note-to-self"), EDIT_MESSAGES_NOTE_TO_SELF("edit-messages-note-to-self"),
ARCHIVE_CONVERSATIONS("archived-conversations-v2"), ARCHIVE_CONVERSATIONS("archived-conversations-v2"),
CONVERSATION_CREATION_ALL("conversation-creation-all") CONVERSATION_CREATION_ALL("conversation-creation-all"),
NOTE_TO_SELF("note-to-self")
} }
@Suppress("TooManyFunctions") @Suppress("TooManyFunctions")