mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-27 07:29:48 +01:00
passing note to self room token to MessageActionsDialog
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
1c6cd78fdb
commit
bcd0216fca
@ -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()
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user