Skip to content

Commit a6e2238

Browse files
committed
fix bug with the input buttons
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
1 parent c2f3e41 commit a6e2238

File tree

6 files changed

+26
-22
lines changed

6 files changed

+26
-22
lines changed

app/src/main/java/com/nextcloud/talk/chat/MessageInputFragment.kt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,14 @@ class MessageInputFragment : Fragment() {
194194

195195
private fun initObservers() {
196196
Log.d(TAG, "LifeCyclerOwner is: ${viewLifecycleOwner.lifecycle}")
197-
chatActivity.chatViewModel.getCapabilitiesViewState.observeOnce(viewLifecycleOwner) { state ->
197+
chatActivity.chatViewModel.getCapabilitiesViewState.observe(viewLifecycleOwner) { state ->
198198
when (state) {
199199
is ChatViewModel.GetCapabilitiesUpdateState -> {
200+
initMessageInputView(state.spreedCapabilities)
201+
initSmileyKeyboardToggler()
202+
setupMentionAutocomplete()
203+
initVoiceRecordButton()
204+
initThreadHandling()
200205
restoreState()
201206
}
202207

@@ -207,6 +212,7 @@ class MessageInputFragment : Fragment() {
207212
initVoiceRecordButton()
208213
initThreadHandling()
209214
restoreState()
215+
updateScheduledMessagesAvailability(hasScheduledMessages)
210216
}
211217

212218
else -> {}
@@ -227,6 +233,10 @@ class MessageInputFragment : Fragment() {
227233
} ?: clearReplyUi()
228234
}
229235

236+
chatActivity.chatViewModel.scheduledMessagesCount.observe(viewLifecycleOwner) { count ->
237+
updateScheduledMessagesAvailability(count > 0)
238+
}
239+
230240
viewLifecycleOwner.lifecycleScope.launch {
231241
repeatOnLifecycle(Lifecycle.State.CREATED) {
232242
messageInputViewModel.getEditChatMessage.collect { message ->
@@ -351,11 +361,11 @@ class MessageInputFragment : Fragment() {
351361
binding.fragmentMessageInputView.attachmentButton.visibility = View.VISIBLE
352362
binding.fragmentMessageInputView.recordAudioButton.visibility =
353363
if (binding.fragmentMessageInputView.inputEditText.text.isEmpty()) View.VISIBLE else View.GONE
354-
if(hasScheduledMessages){
355-
binding.fragmentMessageInputView.scheduledMessagesButton.visibility = View.VISIBLE
356-
}else{
357-
binding.fragmentMessageInputView.scheduledMessagesButton.visibility = View.GONE
358-
}
364+
if (hasScheduledMessages) {
365+
binding.fragmentMessageInputView.scheduledMessagesButton.visibility = View.VISIBLE
366+
} else {
367+
binding.fragmentMessageInputView.scheduledMessagesButton.visibility = View.GONE
368+
}
359369
} else {
360370
binding.fragmentMessageInputView.attachmentButton.visibility = View.INVISIBLE
361371
binding.fragmentMessageInputView.recordAudioButton.visibility = View.INVISIBLE
@@ -819,6 +829,7 @@ class MessageInputFragment : Fragment() {
819829
binding.fragmentMessageInputView.smileyButton.visibility = View.GONE
820830
binding.fragmentMessageInputView.messageInput.visibility = View.GONE
821831
binding.fragmentMessageInputView.messageInput.hint = ""
832+
binding.fragmentMessageInputView.scheduledMessagesButton.visibility = View.GONE
822833
} else {
823834
binding.fragmentMessageInputView.microphoneEnabledInfo.clearAnimation()
824835

app/src/main/java/com/nextcloud/talk/chat/ScheduleMessageCompose.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,6 @@ class ScheduleMessageCompose(
378378
)
379379
.clickable { onClick() }
380380
) {
381-
60
382381
Text(label, modifier = Modifier.weight(HALF_WEIGHT))
383382
Spacer(modifier = Modifier.width(60.dp))
384383
Text(timeString, modifier = Modifier.weight(HALF_WEIGHT))

app/src/main/java/com/nextcloud/talk/chat/ScheduledMessagesActivity.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ package com.nextcloud.talk.chat
99

1010
import android.os.Bundle
1111
import androidx.activity.compose.setContent
12-
import androidx.activity.viewModels
1312
import androidx.compose.foundation.background
1413
import androidx.compose.foundation.combinedClickable
1514
import androidx.compose.foundation.layout.Arrangement
@@ -86,7 +85,6 @@ import com.nextcloud.talk.R
8685
import com.nextcloud.talk.activities.BaseActivity
8786
import com.nextcloud.talk.application.NextcloudTalkApplication
8887
import com.nextcloud.talk.chat.data.model.ChatMessage
89-
import com.nextcloud.talk.chat.viewmodels.MessageInputViewModel
9088
import com.nextcloud.talk.chat.viewmodels.ScheduledMessagesViewModel
9189
import com.nextcloud.talk.components.ColoredStatusBar
9290
import com.nextcloud.talk.data.network.NetworkMonitor
@@ -104,7 +102,7 @@ import java.time.format.DateTimeFormatter
104102
import java.time.temporal.ChronoUnit
105103

106104
@AutoInjector(NextcloudTalkApplication::class)
107-
@Suppress("LongMethod", "LargeClass")
105+
@Suppress("LongMethod", "LargeClass", "TooManyFunctions")
108106
class ScheduledMessagesActivity : BaseActivity() {
109107

110108
@Inject
@@ -115,8 +113,6 @@ class ScheduledMessagesActivity : BaseActivity() {
115113

116114
private lateinit var scheduledMessagesViewModel: ScheduledMessagesViewModel
117115

118-
val messageInputViewModel: MessageInputViewModel by viewModels()
119-
120116
@Inject
121117
lateinit var networkMonitor: NetworkMonitor
122118

app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ class ChatViewModel @Inject constructor(
266266
val scheduledMessagesViewState: LiveData<ViewState>
267267
get() = _scheduledMessagesViewState
268268

269+
private val _scheduledMessagesCount = MutableLiveData<Int>()
270+
val scheduledMessagesCount: LiveData<Int> = _scheduledMessagesCount
271+
269272
object DeleteChatMessageStartState : ViewState
270273
class DeleteChatMessageSuccessState(val msg: ChatOverallSingleMessage) : ViewState
271274
object DeleteChatMessageErrorState : ViewState
@@ -325,6 +328,7 @@ class ChatViewModel @Inject constructor(
325328
if (result.isSuccess) {
326329
_scheduledMessagesViewState.value =
327330
ScheduledMessagesSuccessState(result.getOrNull().orEmpty())
331+
_scheduledMessagesCount.value = result.getOrNull()?.size ?: 0
328332
} else {
329333
_scheduledMessagesViewState.value = ScheduledMessagesErrorState
330334
}

app/src/main/java/com/nextcloud/talk/ui/SwipeToCloseLayout.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,9 @@ class SwipeToCloseLayout @JvmOverloads constructor(
5454
return true // Capture any child view
5555
}
5656

57-
override fun getViewVerticalDragRange(child: View): Int {
58-
return height
59-
}
57+
override fun getViewVerticalDragRange(child: View): Int = height
6058

61-
override fun clampViewPositionVertical(child: View, therapeutic: Int, dy: Int): Int {
62-
return therapeutic
63-
}
59+
override fun clampViewPositionVertical(child: View, therapeutic: Int, dy: Int): Int = therapeutic
6460

6561
override fun onViewReleased(releasedChild: View, xvel: Float, yvel: Float) {
6662
val totalDragDistance = abs(releasedChild.top)

app/src/main/java/com/nextcloud/talk/utils/preview/ComposePreviewUtilsDaos.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,8 @@ class DummyChatMessagesDaoImpl : ChatMessagesDao {
5151
messageId: Long
5252
): Flow<ChatMessageEntity> = flowOf()
5353

54-
override suspend fun getChatMessageEntity(
55-
internalConversationId: String,
56-
messageId: Long
57-
): ChatMessageEntity? = null
54+
override suspend fun getChatMessageEntity(internalConversationId: String, messageId: Long): ChatMessageEntity? =
55+
null
5856

5957
override fun deleteChatMessages(internalIds: List<String>) { /* */ }
6058

0 commit comments

Comments
 (0)