mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-02-12 01:20:49 +01:00
Merge pull request #630 from Merkost/block_hidden_numbers_feature
Added blocking calls from hidden numbers
This commit is contained in:
commit
e918621fa4
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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,17 +14,27 @@ 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())) {
|
||||
respondToCall(callDetails, isBlocked = true)
|
||||
} else if (number != null && baseConfig.blockUnknownNumbers) {
|
||||
val simpleContactsHelper = SimpleContactsHelper(this)
|
||||
val privateCursor = getMyContactsCursor(favoritesOnly = false, withPhoneNumbersOnly = true)
|
||||
simpleContactsHelper.exists(number, privateCursor) { exists ->
|
||||
respondToCall(callDetails, isBlocked = !exists)
|
||||
val number = callDetails.handle?.schemeSpecificPart
|
||||
when {
|
||||
number != null && isNumberBlocked(number.normalizePhoneNumber()) -> {
|
||||
respondToCall(callDetails, isBlocked = true)
|
||||
}
|
||||
|
||||
number != null && baseConfig.blockUnknownNumbers -> {
|
||||
val simpleContactsHelper = SimpleContactsHelper(this)
|
||||
val privateCursor = getMyContactsCursor(favoritesOnly = false, withPhoneNumbersOnly = true)
|
||||
simpleContactsHelper.exists(number, privateCursor) { exists ->
|
||||
respondToCall(callDetails, isBlocked = !exists)
|
||||
}
|
||||
}
|
||||
|
||||
number == null && baseConfig.blockHiddenNumbers -> {
|
||||
respondToCall(callDetails, isBlocked = true)
|
||||
}
|
||||
|
||||
else -> {
|
||||
respondToCall(callDetails, isBlocked = false)
|
||||
}
|
||||
} else {
|
||||
respondToCall(callDetails, isBlocked = false)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user