Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 28 additions & 13 deletions app/src/main/java/com/nextcloud/talk/chat/MessageInputFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ import com.nextcloud.talk.chat.viewmodels.MessageInputViewModel
import com.nextcloud.talk.data.network.NetworkMonitor
import com.nextcloud.talk.databinding.FragmentMessageInputBinding
import com.nextcloud.talk.jobs.UploadAndShareFilesWorker
import com.nextcloud.talk.models.json.capabilities.SpreedCapability
import com.nextcloud.talk.models.json.chat.ChatUtils
import com.nextcloud.talk.models.json.mention.Mention
import com.nextcloud.talk.models.json.signaling.NCSignalingMessage
Expand Down Expand Up @@ -141,12 +142,7 @@ class MessageInputFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
binding = FragmentMessageInputBinding.inflate(inflater)
themeMessageInputView()
initMessageInputView()
initSmileyKeyboardToggler()
setupMentionAutocomplete()
initVoiceRecordButton()
initThreadHandling()
restoreState()

return binding.root
}

Expand All @@ -173,6 +169,25 @@ class MessageInputFragment : Fragment() {

private fun initObservers() {
Log.d(TAG, "LifeCyclerOwner is: ${viewLifecycleOwner.lifecycle}")
chatActivity.chatViewModel.getCapabilitiesViewState.observe(viewLifecycleOwner) { state ->
when (state) {
is ChatViewModel.GetCapabilitiesUpdateState -> {
restoreState()
}

is ChatViewModel.GetCapabilitiesInitialLoadState -> {
initMessageInputView(state.spreedCapabilities)
initSmileyKeyboardToggler()
setupMentionAutocomplete()
initVoiceRecordButton()
initThreadHandling()
restoreState()
}

else -> {}
}
}

chatActivity.messageInputViewModel.getReplyChatMessage.observe(viewLifecycleOwner) { message ->
message?.let {
chatActivity.chatViewModel.messageDraft.quotedMessageText = message.text
Expand Down Expand Up @@ -345,11 +360,11 @@ class MessageInputFragment : Fragment() {
}
}

private fun initMessageInputView() {
private fun initMessageInputView(spreedCapabilities: SpreedCapability) {
if (!chatActivity.active) return

val filters = arrayOfNulls<InputFilter>(1)
val lengthFilter = CapabilitiesUtil.getMessageMaxLength(chatActivity.spreedCapabilities)
val lengthFilter = CapabilitiesUtil.getMessageMaxLength(spreedCapabilities)

binding.fragmentEditView.editMessageView.visibility = View.GONE
binding.fragmentMessageInputView.setPadding(0, 0, 0, 0)
Expand Down Expand Up @@ -451,9 +466,9 @@ class MessageInputFragment : Fragment() {
message,
inputEditText
)
editMessageAPI(message, editedMessage.toString())
editMessageAPI(message, editedMessage.toString(), spreedCapabilities)
} else {
editMessageAPI(message, inputEditText.toString())
editMessageAPI(message, inputEditText, spreedCapabilities)
}
}
clearEditUI()
Expand All @@ -465,7 +480,7 @@ class MessageInputFragment : Fragment() {
cancelCreateThread()
}

if (CapabilitiesUtil.hasSpreedFeatureCapability(chatActivity.spreedCapabilities, SpreedFeatures.SILENT_SEND)) {
if (CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.SILENT_SEND)) {
binding.fragmentMessageInputView.button?.setOnLongClickListener {
showSendButtonMenu()
true
Expand Down Expand Up @@ -963,9 +978,9 @@ class MessageInputFragment : Fragment() {
popupMenu.show()
}

private fun editMessageAPI(message: ChatMessage, editedMessageText: String) {
private fun editMessageAPI(message: ChatMessage, editedMessageText: String, spreedCapabilities: SpreedCapability) {
// FIXME Fix API checking with guests?
val apiVersion: Int = ApiUtils.getChatApiVersion(chatActivity.spreedCapabilities, intArrayOf(1))
val apiVersion: Int = ApiUtils.getChatApiVersion(spreedCapabilities, intArrayOf(1))

if (message.isTemporary) {
chatActivity.messageInputViewModel.editTempChatMessage(
Expand Down
Loading