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 messageInputViewModel: MessageInputViewModel
private var noteToSelfRoomToken: String = ""
private val startSelectContactForResult = registerForActivityResult(
ActivityResultContracts
.StartActivityForResult()
@ -434,6 +436,24 @@ class ChatActivity :
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()
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 ->
when (state) {
is ChatViewModel.ChatMessageStartState -> {
@ -3126,7 +3159,8 @@ class ChatActivity :
currentConversation,
isShowMessageDeletionButton(message),
participantPermissions.hasChatPermission(),
spreedCapabilities
spreedCapabilities,
noteToSelfRoomToken
).show()
}
}

View File

@ -25,7 +25,6 @@ import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.ChatActivity
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.user.model.User
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.repositories.reactions.ReactionsRepository
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.hasSpreedFeatureCapability
import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DateConstants
import com.nextcloud.talk.utils.DateUtils
import com.nextcloud.talk.utils.SpreedFeatures
@ -63,7 +60,8 @@ class MessageActionsDialog(
private val currentConversation: ConversationModel?,
private val showMessageDeletionButton: Boolean,
private val hasChatPermission: Boolean,
private val spreedCapabilities: SpreedCapability
private val spreedCapabilities: SpreedCapability,
private val noteToSelfRoomToken: String
) : BottomSheetDialog(chatActivity) {
@Inject
@ -123,34 +121,13 @@ class MessageActionsDialog(
viewThemeUtils.material.colorBottomSheetDragHandle(dialogMessageActionsBinding.bottomSheetDragHandle)
initEmojiBar(hasChatPermission)
initMenuItemCopy(!message.isDeleted)
val apiVersion = ApiUtils.getConversationApiVersion(user!!, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V3, 1))
chatActivity.chatViewModel.checkForNoteToSelf(
ApiUtils.getCredentials(user.username, user.token)!!,
ApiUtils.getUrlForRooms(
apiVersion,
user.baseUrl
),
false
initMenuAddToNote(
networkMonitor.isOnline.value &&
!message.isDeleted &&
currentConversation?.type != ConversationEnums.ConversationType.NOTE_TO_SELF,
noteToSelfRoomToken
)
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)
}

View File

@ -57,7 +57,8 @@ enum class SpreedFeatures(val value: String) {
BAN_V1("ban-v1"),
EDIT_MESSAGES_NOTE_TO_SELF("edit-messages-note-to-self"),
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")