Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df181caf authored by Moez Bhatti's avatar Moez Bhatti
Browse files

Update conversation after cancelling delayed message

parent 83c484d3
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -18,16 +18,23 @@
 */
package com.moez.QKSMS.interactor

import com.moez.QKSMS.repository.ConversationRepository
import com.moez.QKSMS.repository.MessageRepository
import io.reactivex.Flowable
import javax.inject.Inject

class CancelDelayedMessage @Inject constructor(private val messageRepo: MessageRepository) : Interactor<Long>() {
class CancelDelayedMessage @Inject constructor(
    private val conversationRepo: ConversationRepository,
    private val messageRepo: MessageRepository
) : Interactor<CancelDelayedMessage.Params>() {

    override fun buildObservable(params: Long): Flowable<*> {
        return Flowable.just(params)
                .doOnNext { id -> messageRepo.cancelDelayedSms(id) }
                .doOnNext { id -> messageRepo.deleteMessages(id) }
    data class Params(val messageId: Long, val threadId: Long)

    override fun buildObservable(params: Params): Flowable<*> {
        return Flowable.just(Unit)
                .doOnNext { messageRepo.cancelDelayedSms(params.messageId) }
                .doOnNext { messageRepo.deleteMessages(params.messageId) }
                .doOnNext { conversationRepo.updateConversations(params.threadId) } // Update the conversation
    }

}
+3 −1
Original line number Diff line number Diff line
@@ -450,7 +450,9 @@ class ComposeViewModel @Inject constructor(
                .mapNotNull(messageRepo::getMessage)
                .doOnNext { message -> view.setDraft(message.getText()) }
                .autoDisposable(view.scope())
                .subscribe { message -> cancelMessage.execute(message.id) }
                .subscribe { message ->
                    cancelMessage.execute(CancelDelayedMessage.Params(message.id, message.threadId))
                }

        // Set the current conversation
        Observables