Skip to content

Commit

Permalink
Bug fixes
Browse files Browse the repository at this point in the history
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
  • Loading branch information
rapterjet2004 committed May 15, 2024
1 parent 9f83c17 commit c6c4e7b
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 62 deletions.
11 changes: 7 additions & 4 deletions app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -517,10 +517,10 @@ class ChatActivity :

override fun onSaveInstanceState(outState: Bundle) {
if (currentlyPlayedVoiceMessage != null) {
outState.putString(CURRENT_AUDIO_MESSAGE_KEY, currentlyPlayedVoiceMessage!!.getId())
outState.putString(CURRENT_AUDIO_MESSAGE_KEY, currentlyPlayedVoiceMessage!!.id)
outState.putInt(CURRENT_AUDIO_POSITION_KEY, currentlyPlayedVoiceMessage!!.voiceMessagePlayedSeconds)
outState.putBoolean(CURRENT_AUDIO_WAS_PLAYING_KEY, currentlyPlayedVoiceMessage!!.isPlayingVoiceMessage)
Log.d(RESUME_AUDIO_TAG, "Stored current audio message ID: " + currentlyPlayedVoiceMessage!!.getId())
Log.d(RESUME_AUDIO_TAG, "Stored current audio message ID: " + currentlyPlayedVoiceMessage!!.id)
Log.d(
RESUME_AUDIO_TAG,
"Audio Position: " + currentlyPlayedVoiceMessage!!.voiceMessagePlayedSeconds
Expand Down Expand Up @@ -1347,7 +1347,10 @@ class ChatActivity :
.duration = TYPING_INDICATOR_ANIMATION_DURATION
} else if (binding.typingIndicator.lineCount == 2) {
binding.typingIndicatorWrapper.animate()
.translationY(binding.fragmentContainerActivityChat.y + DisplayUtils.convertDpToPixel(15f, context))
.translationY(
binding.fragmentContainerActivityChat.y +
DisplayUtils.convertDpToPixel(15f, context)
)
.setInterpolator(AccelerateDecelerateInterpolator())
.duration = TYPING_INDICATOR_ANIMATION_DURATION
}
Expand Down Expand Up @@ -2797,7 +2800,7 @@ class ChatActivity :
} else {
Log.d(
RESUME_AUDIO_TAG,
"voiceMessagePosition is -1, adapter # of items: " + adapter!!.getItemCount()
"voiceMessagePosition is -1, adapter # of items: " + adapter!!.itemCount
)
}
} else {
Expand Down
44 changes: 30 additions & 14 deletions app/src/main/java/com/nextcloud/talk/chat/MessageInputFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,8 @@ class MessageInputFragment : Fragment() {
if (mentionAutocomplete != null && mentionAutocomplete!!.isPopupShowing) {
mentionAutocomplete?.dismissPopup()
}
clearEditUI()
cancelReply()
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
Expand All @@ -142,11 +144,11 @@ class MessageInputFragment : Fragment() {
private fun initObservers() {
Log.d(TAG, "LifeCyclerOwner is: ${viewLifecycleOwner.lifecycle}")
chatActivity.messageInputViewModel.getReplyChatMessage.observe(viewLifecycleOwner) { message ->
replyToMessage(message)
message?.let { replyToMessage(message) }
}

chatActivity.messageInputViewModel.getEditChatMessage.observe(viewLifecycleOwner) { message ->
setEditUI(message as ChatMessage)
message?.let { setEditUI(it as ChatMessage) }
}
}

Expand Down Expand Up @@ -264,7 +266,9 @@ class MessageInputFragment : Fragment() {
binding.fragmentMessageInputView.editMessageButton.setOnClickListener {
val text = binding.fragmentMessageInputView.inputEditText.text.toString()
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
editMessageAPI(message, text)
if (message.message!!.trim() != text.trim()) {
editMessageAPI(message, text)
}
clearEditUI()
}
binding.fragmentEditView.clearEdit.setOnClickListener {
Expand Down Expand Up @@ -292,7 +296,11 @@ class MessageInputFragment : Fragment() {
binding.fragmentMessageInputView.messageSendButton.visibility =
if (binding.fragmentMessageInputView.inputEditText.text.isEmpty() ||
binding.fragmentEditView.editMessageView.visibility == View.VISIBLE
) View.GONE else View.VISIBLE
) {
View.GONE
} else {
View.VISIBLE
}
}

binding.fragmentMessageInputView.recordAudioButton.setOnTouchListener { v, event ->
Expand Down Expand Up @@ -551,11 +559,14 @@ class MessageInputFragment : Fragment() {

fun updateOwnTypingStatus(typedText: CharSequence) {
fun sendStartTypingSignalingMessage() {
for ((sessionId, _) in chatActivity.webSocketInstance!!.getUserMap()) {
val ncSignalingMessage = NCSignalingMessage()
ncSignalingMessage.to = sessionId
ncSignalingMessage.type = TYPING_STARTED_SIGNALING_MESSAGE_TYPE
chatActivity.signalingMessageSender!!.send(ncSignalingMessage)
val websocketInstance = chatActivity.webSocketInstance
if (websocketInstance != null) {
for ((sessionId, _) in websocketInstance.getUserMap()) {
val ncSignalingMessage = NCSignalingMessage()
ncSignalingMessage.to = sessionId
ncSignalingMessage.type = TYPING_STARTED_SIGNALING_MESSAGE_TYPE
chatActivity.signalingMessageSender!!.send(ncSignalingMessage)
}
}
}

Expand Down Expand Up @@ -595,11 +606,14 @@ class MessageInputFragment : Fragment() {
typingTimer = null
typedWhileTypingTimerIsRunning = false

for ((sessionId, _) in chatActivity.webSocketInstance!!.getUserMap()) {
val ncSignalingMessage = NCSignalingMessage()
ncSignalingMessage.to = sessionId
ncSignalingMessage.type = TYPING_STOPPED_SIGNALING_MESSAGE_TYPE
chatActivity.signalingMessageSender?.send(ncSignalingMessage)
val websocketInstance = chatActivity.webSocketInstance
if (websocketInstance != null) {
for ((sessionId, _) in websocketInstance.getUserMap()) {
val ncSignalingMessage = NCSignalingMessage()
ncSignalingMessage.to = sessionId
ncSignalingMessage.type = TYPING_STOPPED_SIGNALING_MESSAGE_TYPE
chatActivity.signalingMessageSender?.send(ncSignalingMessage)
}
}
}
}
Expand Down Expand Up @@ -733,6 +747,7 @@ class MessageInputFragment : Fragment() {
binding.fragmentMessageInputView.inputEditText.setText("")
binding.fragmentEditView.editMessageView.visibility = View.GONE
binding.fragmentMessageInputView.attachmentButton.visibility = View.VISIBLE
chatActivity.messageInputViewModel.edit(null)
}

private fun themeMessageInputView() {
Expand Down Expand Up @@ -787,5 +802,6 @@ class MessageInputFragment : Fragment() {
quote.visibility = View.GONE
quote.tag = null
binding.fragmentMessageInputView.findViewById<ImageButton>(R.id.attachmentButton)?.visibility = View.VISIBLE
chatActivity.messageInputViewModel.reply(null)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class ChatViewModel @Inject constructor(
STOPPED
}
lateinit var currentLifeCycleFlag: LifeCycleFlag
public val disposableSet = mutableSetOf<Disposable>()
val disposableSet = mutableSetOf<Disposable>()

override fun onResume(owner: LifecycleOwner) {
super.onResume(owner)
Expand Down Expand Up @@ -99,10 +99,6 @@ class ChatViewModel @Inject constructor(

private val _getReminderExistState: MutableLiveData<ViewState> = MutableLiveData(GetReminderStartState)

var isPausedDueToBecomingNoisy = false
var receiverRegistered = false
var receiverUnregistered = false

val getReminderExistState: LiveData<ViewState>
get() = _getReminderExistState

Expand Down Expand Up @@ -185,14 +181,6 @@ class ChatViewModel @Inject constructor(
val reactionDeletedViewState: LiveData<ViewState>
get() = _reactionDeletedViewState

object EditMessageStartState : ViewState
object EditMessageErrorState : ViewState
class EditMessageSuccessState(val messageEdited: ChatOverallSingleMessage) : ViewState

private val _editMessageViewState: MutableLiveData<ViewState> = MutableLiveData(EditMessageStartState)
val editMessageViewState: LiveData<ViewState>
get() = _editMessageViewState

fun refreshChatParams(pullChatMessagesFieldMap: HashMap<String, Int>, overrideRefresh: Boolean = false) {
if (pullChatMessagesFieldMap != _getFieldMapForChat.value || overrideRefresh) {
_getFieldMapForChat.postValue(pullChatMessagesFieldMap)
Expand Down Expand Up @@ -550,30 +538,6 @@ class ChatViewModel @Inject constructor(
})
}

fun editChatMessage(credentials: String, url: String, text: String) {
chatRepository.editChatMessage(credentials, url, text)
.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe(object : Observer<ChatOverallSingleMessage> {
override fun onSubscribe(d: Disposable) {
disposableSet.add(d)
}

override fun onError(e: Throwable) {
Log.e(TAG, "failed to edit message", e)
_editMessageViewState.value = EditMessageErrorState
}

override fun onComplete() {
// unused atm
}

override fun onNext(messageEdited: ChatOverallSingleMessage) {
_editMessageViewState.value = EditMessageSuccessState(messageEdited)
}
})
}

fun startAudioRecording(context: Context, currentConversation: ConversationModel) {
audioFocusRequestManager.audioFocusRequest(true) {
Log.d(TAG, "Recording Started")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,12 @@ class MessageInputViewModel @Inject constructor(
val mediaPlayerSeekbarObserver: LiveData<Int>
get() = mediaPlayerManager.mediaPlayerSeekBarPosition

private val _getEditChatMessage: MutableLiveData<IMessage> = MutableLiveData()
val getEditChatMessage: LiveData<IMessage>
private val _getEditChatMessage: MutableLiveData<IMessage?> = MutableLiveData()
val getEditChatMessage: LiveData<IMessage?>
get() = _getEditChatMessage

private val _getReplyChatMessage: MutableLiveData<IMessage> = MutableLiveData()
val getReplyChatMessage: LiveData<IMessage>
private val _getReplyChatMessage: MutableLiveData<IMessage?> = MutableLiveData()
val getReplyChatMessage: LiveData<IMessage?>
get() = _getReplyChatMessage

sealed interface ViewState
Expand All @@ -99,7 +99,7 @@ class MessageInputViewModel @Inject constructor(
object EditMessageErrorState : ViewState
class EditMessageSuccessState(val messageEdited: ChatOverallSingleMessage) : ViewState

private val _editMessageViewState: MutableLiveData<ViewState> = MutableLiveData(EditMessageStartState)
private val _editMessageViewState: MutableLiveData<ViewState> = MutableLiveData()
val editMessageViewState: LiveData<ViewState>
get() = _editMessageViewState

Expand Down Expand Up @@ -168,11 +168,11 @@ class MessageInputViewModel @Inject constructor(
})
}

fun reply(message: IMessage) {
fun reply(message: IMessage?) {
_getReplyChatMessage.postValue(message)
}

fun edit(message: IMessage) {
fun edit(message: IMessage?) {
_getEditChatMessage.postValue(message)
}

Expand Down

0 comments on commit c6c4e7b

Please sign in to comment.