Don't show blocking dialog if not necessary

This commit is contained in:
moezbhatti
2019-08-23 01:30:50 +02:00
parent 1439e3f126
commit c5fa1ce0f5
11 changed files with 103 additions and 51 deletions
@@ -34,14 +34,12 @@ class BlockingManager @Inject constructor(
override fun isAvailable(): Boolean = client.isAvailable()
override fun getClientCapability(): BlockingClientCapability = client.getClientCapability()
override fun isBlocked(address: String): Single<Boolean> = client.isBlocked(address)
override fun canBlock(): Boolean = client.canBlock()
override fun block(addresses: List<String>): Completable = client.block(addresses)
override fun canUnblock(): Boolean = client.canUnblock()
override fun unblock(addresses: List<String>): Completable = client.unblock(addresses)
override fun openSettings() = client.openSettings()
@@ -46,6 +46,8 @@ class CallControlBlockingClient @Inject constructor(
override fun isAvailable(): Boolean = context.isInstalled("com.flexaspect.android.everycallcontrol")
override fun getClientCapability() = BlockingClientCapability.BLOCK_WITH_PERMISSION
override fun isBlocked(address: String): Single<Boolean> {
val uri = Uri.withAppendedPath(CallControl.LOOKUP_TEXT_URI, address)
return Single.fromCallable {
@@ -29,18 +29,16 @@ class QksmsBlockingClient @Inject constructor(
override fun isAvailable(): Boolean = true
override fun getClientCapability() = BlockingClientCapability.BLOCK_WITHOUT_PERMISSION
override fun isBlocked(address: String): Single<Boolean> = Single.fromCallable {
blockingRepo.isBlocked(address)
}
override fun canBlock(): Boolean = true
override fun block(addresses: List<String>): Completable = Completable.fromCallable {
blockingRepo.blockNumber(*addresses.toTypedArray())
}
override fun canUnblock(): Boolean = true
override fun unblock(addresses: List<String>): Completable = Completable.fromCallable {
blockingRepo.unblockNumbers(*addresses.toTypedArray())
}
@@ -53,6 +53,8 @@ class ShouldIAnswerBlockingClient @Inject constructor(
"org.mistergroup.muzutozvednout")
.any(context::isInstalled)
override fun getClientCapability() = BlockingClientCapability.CANT_BLOCK
/**
* Return a Single<Boolean> which emits whether or not the given [address] should be blocked
*/