am 8e15e306: am 93c75e45: Merge "Replace get*PhoneAccounts* public API methods with new method (1/3)" into lmp-dev
* commit '8e15e3060db3982adadc917dfccc4b144982dd6d':
Replace get*PhoneAccounts* public API methods with new method (1/3)
diff --git a/api/current.txt b/api/current.txt
index cbf4d67..dc1711e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -28355,11 +28355,9 @@
method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void cancelMissedCallsNotification();
method public void clearAccounts();
- method public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts();
method public android.telecom.PhoneAccountHandle getConnectionManager();
- method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
- method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
+ method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
method public boolean handleMmi(java.lang.String);
method public boolean hasMultipleCallCapableAccounts();
method public boolean isInCall();
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index 1a6c52f..b0b6fb9 100644
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -80,6 +80,15 @@
*/
public static final int STATE_CONNECTING = 9;
+ /**
+ * The key to retrieve the optional {@code PhoneAccount}s Telecom can bundle with its Call
+ * extras. Used to pass the phone accounts to display on the front end to the user in order to
+ * select phone accounts to (for example) place a call.
+ *
+ * @hide
+ */
+ public static final String AVAILABLE_PHONE_ACCOUNTS = "selectPhoneAccountAccounts";
+
public static class Details {
private final Uri mHandle;
private final int mHandlePresentation;
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index a91d92f..481e483 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -306,22 +306,16 @@
/**
* Return the {@link PhoneAccount} which is the user-chosen default for making outgoing phone
- * calls with a specified URI scheme. This {@code PhoneAccount} will always be a member of the
- * list which is returned from calling {@link #getCallCapablePhoneAccounts()}.
+ * calls with a specified URI scheme.
* <p>
* Apps must be prepared for this method to return {@code null}, indicating that there currently
- * exists no user-chosen default {@code PhoneAccount}. In this case, apps wishing to initiate a
- * phone call must either create their {@link android.content.Intent#ACTION_CALL} or
- * {@link android.content.Intent#ACTION_DIAL} {@code Intent} with no
- * {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE}, or present the user with an affordance to
- * select one of the elements of {@link #getCallCapablePhoneAccounts()}.
+ * exists no user-chosen default {@code PhoneAccount}.
* <p>
- * An {@link android.content.Intent#ACTION_CALL} or {@link android.content.Intent#ACTION_DIAL}
- * {@code Intent} with no {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} is valid, and
- * subsequent steps in the phone call flow are responsible for presenting the user with an
- * affordance, if necessary, to choose a {@code PhoneAccount}.
- *
* @param uriScheme The URI scheme.
+ * @return The {@link PhoneAccountHandle} corresponding to the user-chosen default for outgoing
+ * phone calls for a specified URI scheme.
+ *
+ * @hide
*/
public PhoneAccountHandle getDefaultOutgoingPhoneAccount(String uriScheme) {
try {
@@ -371,24 +365,6 @@
}
/**
- * Return a list of {@link PhoneAccountHandle}s which can be used to make and receive phone
- * calls.
- *
- * @see #EXTRA_PHONE_ACCOUNT_HANDLE
- * @return A list of {@code PhoneAccountHandle} objects.
- */
- public List<PhoneAccountHandle> getCallCapablePhoneAccounts() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getCallCapablePhoneAccounts();
- }
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getCallCapablePhoneAccounts", e);
- }
- return new ArrayList<>();
- }
-
- /**
* Returns the current SIM call manager. Apps must be prepared for this method to return
* {@code null}, indicating that there currently exists no user-chosen default
* {@code PhoneAccount}.
@@ -459,6 +435,8 @@
*
* @param uriScheme The URI scheme.
* @return A list of {@code PhoneAccountHandle} objects supporting the URI scheme.
+ *
+ * @hide
*/
public List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(String uriScheme) {
try {
@@ -471,6 +449,27 @@
return new ArrayList<>();
}
+
+ /**
+ * Return a list of {@link PhoneAccountHandle}s which can be used to make and receive phone
+ * calls.
+ *
+ * @see #EXTRA_PHONE_ACCOUNT_HANDLE
+ * @return A list of {@code PhoneAccountHandle} objects.
+ *
+ * @hide
+ */
+ public List<PhoneAccountHandle> getCallCapablePhoneAccounts() {
+ try {
+ if (isServiceConnected()) {
+ return getTelecomService().getCallCapablePhoneAccounts();
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getCallCapablePhoneAccounts", e);
+ }
+ return new ArrayList<>();
+ }
+
/**
* Determine whether the device has more than one account registered that can make and receive
* phone calls.
@@ -483,6 +482,22 @@
}
/**
+ * Returns a list of all {@link PhoneAccount}s registered for the calling package.
+ *
+ * @return A list of {@code PhoneAccountHandle} objects.
+ */
+ public List<PhoneAccountHandle> getPhoneAccountsForPackage() {
+ try {
+ if (isServiceConnected()) {
+ return getTelecomService().getPhoneAccountsForPackage(mContext.getPackageName());
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsForPackage", e);
+ }
+ return null;
+ }
+
+ /**
* Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes
* resources which can be used in a user interface.
*
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 77a80fe..feb09d5 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -60,6 +60,11 @@
List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme);
/**
+ * @see TelecomManager#getPhoneAccountsForPackage
+ */
+ List<PhoneAccountHandle> getPhoneAccountsForPackage(in String packageName);
+
+ /**
* @see TelecomManager#getPhoneAccount
*/
PhoneAccount getPhoneAccount(in PhoneAccountHandle account);