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

Commit 2bcb0594 authored by Moez Bhatti's avatar Moez Bhatti
Browse files

Add ability to check blacklist in spite of blacklist schedule

parent 178cccd9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -30,7 +30,9 @@ class BlockingManager @Inject constructor(

    override fun getClientCapability(): BlockingClient.Capability = client.getClientCapability()

    override fun getAction(address: String): Single<BlockingClient.Action> = client.getAction(address)
    override fun shouldBlock(address: String): Single<BlockingClient.Action> = client.shouldBlock(address)

    override fun isBlacklisted(address: String): Single<BlockingClient.Action> = client.isBlacklisted(address)

    override fun block(addresses: List<String>): Completable = client.block(addresses)

+16 −3
Original line number Diff line number Diff line
@@ -43,11 +43,24 @@ class CallBlockerBlockingClient @Inject constructor(

    override fun getClientCapability() = BlockingClient.Capability.BLOCK_WITH_PERMISSION

    override fun getAction(address: String): Single<BlockingClient.Action> = Single.fromCallable {
    override fun shouldBlock(address: String): Single<BlockingClient.Action> = Single.fromCallable {
        val uri = Uri.parse("content://com.cuiet.blockCalls.ContProvBlockCalls/lookup/is.blocked.lookup")
        val blockReason = tryOrNull {
            context.contentResolver.query(uri, arrayOf("result"), "incomingNumber",
                    arrayOf(address), null)
            context.contentResolver.query(uri, arrayOf("result"), "incomingNumber", arrayOf(address), null)
                    ?.use { cursor -> cursor.map(::LookupResult) }
                    ?.find { result -> result.blockReason != null }
        }?.blockReason

        when (blockReason) {
            "true" -> BlockingClient.Action.Block()
            else ->  BlockingClient.Action.Unblock
        }
    }

    override fun isBlacklisted(address: String): Single<BlockingClient.Action> = Single.fromCallable {
        val uri = Uri.parse("content://com.cuiet.blockCalls.ContProvBlockCalls/lookup/is.blocked.lookup")
        val blockReason = tryOrNull {
            context.contentResolver.query(uri, arrayOf("result"), "blacklistLookup", arrayOf(address), null)
                    ?.use { cursor -> cursor.map(::LookupResult) }
                    ?.find { result -> result.blockReason != null }
        }?.blockReason
+3 −1
Original line number Diff line number Diff line
@@ -48,7 +48,9 @@ class CallControlBlockingClient @Inject constructor(

    override fun getClientCapability() = BlockingClient.Capability.BLOCK_WITH_PERMISSION

    override fun getAction(address: String): Single<BlockingClient.Action> = Single.fromCallable {
    override fun shouldBlock(address: String): Single<BlockingClient.Action> = isBlacklisted(address)

    override fun isBlacklisted(address: String): Single<BlockingClient.Action> = Single.fromCallable {
        val uri = Uri.withAppendedPath(CallControl.LOOKUP_TEXT_URI, address)
        val blockReason = tryOrNull {
            context.contentResolver.query(uri, projection, null, null, null) // Query URI
+3 −1
Original line number Diff line number Diff line
@@ -31,7 +31,9 @@ class QksmsBlockingClient @Inject constructor(

    override fun getClientCapability() = BlockingClient.Capability.BLOCK_WITHOUT_PERMISSION

    override fun getAction(address: String): Single<BlockingClient.Action> = Single.fromCallable {
    override fun shouldBlock(address: String): Single<BlockingClient.Action> = isBlacklisted(address)

    override fun isBlacklisted(address: String): Single<BlockingClient.Action> = Single.fromCallable {
        when (blockingRepo.isBlocked(address)) {
            true -> BlockingClient.Action.Block()
            false -> BlockingClient.Action.Unblock
+3 −1
Original line number Diff line number Diff line
@@ -55,7 +55,9 @@ class ShouldIAnswerBlockingClient @Inject constructor(

    override fun getClientCapability() = BlockingClient.Capability.CANT_BLOCK

    override fun getAction(address: String): Single<BlockingClient.Action> {
    override fun shouldBlock(address: String): Single<BlockingClient.Action> = isBlacklisted(address)

    override fun isBlacklisted(address: String): Single<BlockingClient.Action> {
        return Binder(context, address).isBlocked()
                .map { blocked ->
                    when (blocked) {
Loading