summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/util
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2018-06-25 10:47:13 +0200
committerMichael Bestas <mkbestas@lineageos.org>2020-12-12 01:23:35 +0200
commitce6bc0e203c42529c1c48df398da102e99e3f2b0 (patch)
tree52f5fd9e5cea4b41c1c5f683da938ddc81191807 /java/com/android/dialer/util
parenta6593be278cc0f94387289f99607a050efe7878b (diff)
Allow per-call account selection.
Change-Id: Ieac27294f4069b2cff17bb39a0954f74320ad943
Diffstat (limited to 'java/com/android/dialer/util')
-rw-r--r--java/com/android/dialer/util/CallUtil.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java
index 89af0b9bb..160a40fd8 100644
--- a/java/com/android/dialer/util/CallUtil.java
+++ b/java/com/android/dialer/util/CallUtil.java
@@ -24,6 +24,8 @@ import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import com.android.dialer.common.LogUtil;
import com.android.dialer.phonenumberutil.PhoneNumberHelper;
+
+import java.util.ArrayList;
import java.util.List;
/** Utilities related to calls that can be used by non system apps. */
@@ -89,6 +91,25 @@ public class CallUtil {
}
/**
+ * Returns a list of phone accounts that are able to call to numbers with the supplied scheme
+ */
+ public static List<PhoneAccount> getCallCapablePhoneAccounts(Context context, String scheme) {
+ if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)) {
+ return null;
+ }
+ TelecomManager tm = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
+ final ArrayList<PhoneAccount> accounts = new ArrayList<>();
+
+ for (PhoneAccountHandle handle : tm.getCallCapablePhoneAccounts()) {
+ final PhoneAccount account = tm.getPhoneAccount(handle);
+ if (account != null && account.supportsUriScheme(scheme)) {
+ accounts.add(account);
+ }
+ }
+ return accounts;
+ }
+
+ /**
* Determines if one of the call capable phone accounts defined supports video calling.
*
* @param context The context.