forked from upstream-mirrors/quik
Add ability to check blacklist in spite of blacklist schedule
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user