Merge pull request #630 from Merkost/block_hidden_numbers_feature

Added blocking calls from hidden numbers
This commit is contained in:
Tibor Kaputa 2023-06-27 17:30:02 +02:00 committed by GitHub
commit e918621fa4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 12 deletions

View File

@ -81,7 +81,7 @@ class MainActivity : SimpleActivity() {
launchSetDefaultDialerIntent()
}
if (isQPlus() && config.blockUnknownNumbers) {
if (isQPlus() && (config.blockUnknownNumbers || config.blockHiddenNumbers)) {
setDefaultCallerIdApp()
}
@ -141,6 +141,7 @@ class MainActivity : SimpleActivity() {
} else if (requestCode == REQUEST_CODE_SET_DEFAULT_CALLER_ID && resultCode != Activity.RESULT_OK) {
toast(R.string.must_make_default_caller_id_app, length = Toast.LENGTH_LONG)
baseConfig.blockUnknownNumbers = false
baseConfig.blockHiddenNumbers = false
}
}

View File

@ -1,6 +1,5 @@
package com.simplemobiletools.dialer.services
import android.net.Uri
import android.os.Build
import android.telecom.Call
import android.telecom.CallScreeningService
@ -15,19 +14,29 @@ import com.simplemobiletools.commons.helpers.SimpleContactsHelper
class SimpleCallScreeningService : CallScreeningService() {
override fun onScreenCall(callDetails: Call.Details) {
val number = Uri.decode(callDetails.handle?.toString())?.substringAfter("tel:")
if (number != null && isNumberBlocked(number.normalizePhoneNumber())) {
val number = callDetails.handle?.schemeSpecificPart
when {
number != null && isNumberBlocked(number.normalizePhoneNumber()) -> {
respondToCall(callDetails, isBlocked = true)
} else if (number != null && baseConfig.blockUnknownNumbers) {
}
number != null && baseConfig.blockUnknownNumbers -> {
val simpleContactsHelper = SimpleContactsHelper(this)
val privateCursor = getMyContactsCursor(favoritesOnly = false, withPhoneNumbersOnly = true)
simpleContactsHelper.exists(number, privateCursor) { exists ->
respondToCall(callDetails, isBlocked = !exists)
}
} else {
}
number == null && baseConfig.blockHiddenNumbers -> {
respondToCall(callDetails, isBlocked = true)
}
else -> {
respondToCall(callDetails, isBlocked = false)
}
}
}
private fun respondToCall(callDetails: Call.Details, isBlocked: Boolean) {
val response = CallResponse.Builder()