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

Commit f564a9c1 authored by moezbhatti's avatar moezbhatti
Browse files

Mark conversation unblocked right away when unblocking from qk client

parent f703d417
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -46,6 +46,13 @@ class BlockingRepositoryImpl @Inject constructor() : BlockingRepository {
                .findAllAsync()
    }

    override fun getBlockedNumber(id: Long): BlockedNumber? {
        val realm = Realm.getDefaultInstance()
        return realm.where(BlockedNumber::class.java)
                .equalTo("id", id)
                .findFirst()
    }

    override fun isBlocked(address: String): Boolean {
        return Realm.getDefaultInstance().use { realm ->
            realm.where(BlockedNumber::class.java)
+2 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ interface BlockingRepository {

    fun getBlockedNumbers(): RealmResults<BlockedNumber>

    fun getBlockedNumber(id: Long): BlockedNumber?

    fun isBlocked(address: String): Boolean

    fun unblockNumber(id: Long)
+14 −2
Original line number Diff line number Diff line
@@ -19,13 +19,18 @@
package com.moez.QKSMS.feature.blocking.numbers

import com.moez.QKSMS.common.base.QkPresenter
import com.moez.QKSMS.interactor.MarkUnblocked
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.schedulers.Schedulers
import javax.inject.Inject

class BlockedNumbersPresenter @Inject constructor(
    private val blockingRepo: BlockingRepository
    private val blockingRepo: BlockingRepository,
    private val conversationRepo: ConversationRepository,
    private val markUnblocked: MarkUnblocked
) : QkPresenter<BlockedNumbersView, BlockedNumbersState>(
        BlockedNumbersState(numbers = blockingRepo.getBlockedNumbers())
) {
@@ -34,7 +39,13 @@ class BlockedNumbersPresenter @Inject constructor(
        super.bindIntents(view)

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

@@ -43,6 +54,7 @@ class BlockedNumbersPresenter @Inject constructor(
                .subscribe { view.showAddDialog() }

        view.saveAddress()
                .subscribeOn(Schedulers.io())
                .autoDisposable(view.scope())
                .subscribe { address -> blockingRepo.blockNumber(address) }
    }