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

Verified Commit eec1c417 authored by Saalim Quadri's avatar Saalim Quadri
Browse files

fix: Resolve thread issue in BlockedNumbers

parent e065115e
Loading
Loading
Loading
Loading
Loading
+20 −13
Original line number Diff line number Diff line
@@ -24,7 +24,9 @@ import com.moez.QKSMS.repository.BlockingRepository
import com.moez.QKSMS.repository.ConversationRepository
import com.uber.autodispose.android.lifecycle.scope
import com.uber.autodispose.autoDisposable
import io.reactivex.Completable
import io.reactivex.schedulers.Schedulers
import timber.log.Timber
import javax.inject.Inject

class BlockedNumbersPresenter @Inject constructor(
@@ -39,24 +41,29 @@ class BlockedNumbersPresenter @Inject constructor(
        super.bindIntents(view)

        view.unblockAddress()
                .doOnNext { id ->
            .flatMapCompletable { id ->
                Completable.fromAction {
                    blockingRepo.getBlockedNumber(id)?.address
                        ?.let(conversationRepo::getThreadId)
                        ?.let { threadId -> markUnblocked.execute(listOf(threadId)) }
                    blockingRepo.unblockNumber(id)
                }
                .doOnNext(blockingRepo::unblockNumber)
                    .subscribeOn(Schedulers.io())
            }
            .autoDisposable(view.scope())
                .subscribe()
            .subscribe({ }, Timber::w)

        view.addAddress()
            .autoDisposable(view.scope())
            .subscribe { view.showAddDialog() }

        view.saveAddress()
            .flatMapCompletable { address ->
                Completable.fromAction { blockingRepo.blockNumber(address) }
                    .subscribeOn(Schedulers.io())
            }
            .autoDisposable(view.scope())
                .subscribe { address -> blockingRepo.blockNumber(address) }
            .subscribe({ }, Timber::w)
    }

}