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 Original line Diff line number Diff line
@@ -18,16 +18,23 @@
 */
 */
package com.moez.QKSMS.interactor
package com.moez.QKSMS.interactor


import com.moez.QKSMS.repository.ConversationRepository
import com.moez.QKSMS.repository.MessageRepository
import com.moez.QKSMS.repository.MessageRepository
import io.reactivex.Flowable
import io.reactivex.Flowable
import javax.inject.Inject
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<*> {
    data class Params(val messageId: Long, val threadId: Long)
        return Flowable.just(params)

                .doOnNext { id -> messageRepo.cancelDelayedSms(id) }
    override fun buildObservable(params: Params): Flowable<*> {
                .doOnNext { id -> messageRepo.deleteMessages(id) }
        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 Original line Diff line number Diff line
@@ -450,7 +450,9 @@ class ComposeViewModel @Inject constructor(
                .mapNotNull(messageRepo::getMessage)
                .mapNotNull(messageRepo::getMessage)
                .doOnNext { message -> view.setDraft(message.getText()) }
                .doOnNext { message -> view.setDraft(message.getText()) }
                .autoDisposable(view.scope())
                .autoDisposable(view.scope())
                .subscribe { message -> cancelMessage.execute(message.id) }
                .subscribe { message ->
                    cancelMessage.execute(CancelDelayedMessage.Params(message.id, message.threadId))
                }


        // Set the current conversation
        // Set the current conversation
        Observables
        Observables