diff options
author | 2024-11-25 14:54:33 -0800 | |
---|---|---|
committer | 2024-11-25 15:09:26 -0800 | |
commit | 313830cc236fcd220b6a2b4963b24d1593e683f0 (patch) | |
tree | 05e38a088e03cbdce120f2e7815148c6a195c417 /service | |
parent | e88c565f7274465f941a1add6410a8b9db6ac326 (diff) |
Catch errors related to Telephony being unavailable in ECMService
On some devices, like tablets, there may be telecom calls (from things
like VOIP apps), but not telephony (sim cards). These exceptions should
be caught when checking for emergency numbers
Fixes: 380718851
Test: manual
Flag: none
Change-Id: I1a6de95b114d7d206d583f2d79f6ab34011e9220
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/ecm/EnhancedConfirmationService.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/service/java/com/android/ecm/EnhancedConfirmationService.java b/service/java/com/android/ecm/EnhancedConfirmationService.java index 1bbba1079..dde9fe2fd 100644 --- a/service/java/com/android/ecm/EnhancedConfirmationService.java +++ b/service/java/com/android/ecm/EnhancedConfirmationService.java @@ -158,9 +158,16 @@ public class EnhancedConfirmationService extends SystemService { private @CallType int getCallType(Call call) { String number = getPhoneNumber(call); - if (number != null && mTelephonyManager.isEmergencyNumber(number)) { - return CALL_TYPE_EMERGENCY; - } else if (number != null) { + try { + if (number != null && mTelephonyManager.isEmergencyNumber(number)) { + return CALL_TYPE_EMERGENCY; + } + } catch (IllegalStateException | UnsupportedOperationException e) { + // If either of these are thrown, the telephony service is not available on the current + // device, either because the device lacks telephony calling, or the telephony service + // is unavailable. + } + if (number != null) { return hasContactWithPhoneNumber(number) ? CALL_TYPE_TRUSTED : CALL_TYPE_UNTRUSTED; } else { return hasContactWithDisplayName(call.getDetails().getCallerDisplayName()) |