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 Original line Diff line number Diff line
@@ -24,7 +24,9 @@ import com.moez.QKSMS.repository.BlockingRepository
import com.moez.QKSMS.repository.ConversationRepository
import com.moez.QKSMS.repository.ConversationRepository
import com.uber.autodispose.android.lifecycle.scope
import com.uber.autodispose.android.lifecycle.scope
import com.uber.autodispose.autoDisposable
import com.uber.autodispose.autoDisposable
import io.reactivex.Completable
import io.reactivex.schedulers.Schedulers
import io.reactivex.schedulers.Schedulers
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Inject


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


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


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


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


}
}