summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
authorNancy Chen <nancychen@google.com>2014-09-17 14:47:41 -0700
committerNancy Chen <nancychen@google.com>2014-09-17 17:16:39 -0700
commitdc8688bcae1455c028508ee03485c36a65efd46f (patch)
tree4ebb2885b0866b8e2df13818bbeded909840ff4c /InCallUI
parent09e78077bfc47ff4f7898c0238f564be5c384690 (diff)
Replace get*PhoneAccounts* public API methods with new method (3/3)
Hide getCallCapablePhoneAccounts and getPhoneAccountsSupportingScheme because a third party app should not be able to see all phone accounts registered. Also pass available phone accounts for the user to select from through Telecom to InCallUI so InCallUI will not be calling the Telecom API directly to get these accounts. Bug: 17510811 Change-Id: Ia0398ec35cc576b946a85a10f6f58a74fcd5191b
Diffstat (limited to 'InCallUI')
-rw-r--r--InCallUI/src/com/android/incallui/InCallActivity.java17
-rw-r--r--InCallUI/src/com/android/incallui/SelectPhoneAccountDialogFragment.java14
2 files changed, 22 insertions, 9 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index b511df467..2941e1e8d 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -30,6 +30,7 @@ import android.graphics.Point;
import android.net.Uri;
import android.os.Bundle;
import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccountHandle;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.animation.Animation;
@@ -45,6 +46,8 @@ import com.android.phone.common.animation.AnimationListenerAdapter;
import com.android.contacts.common.interactions.TouchPointManager;
import com.android.incallui.Call.State;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
/**
@@ -492,9 +495,19 @@ public class InCallActivity extends Activity {
Call pendingAccountSelectionCall = CallList.getInstance().getWaitingForAccountCall();
if (pendingAccountSelectionCall != null) {
mCallCardFragment.setVisible(false);
- Uri handle = pendingAccountSelectionCall.getHandle();
+ Bundle extras = pendingAccountSelectionCall
+ .getTelecommCall().getDetails().getExtras();
+
+ final List<PhoneAccountHandle> phoneAccountHandles;
+ if (extras != null) {
+ phoneAccountHandles = extras.getParcelableArrayList(
+ android.telecom.Call.AVAILABLE_PHONE_ACCOUNTS);
+ } else {
+ phoneAccountHandles = new ArrayList<>();
+ }
+
SelectPhoneAccountDialogFragment.showAccountDialog(getFragmentManager(),
- handle.getScheme());
+ phoneAccountHandles);
} else {
mCallCardFragment.setVisible(true);
}
diff --git a/InCallUI/src/com/android/incallui/SelectPhoneAccountDialogFragment.java b/InCallUI/src/com/android/incallui/SelectPhoneAccountDialogFragment.java
index aeb14dfbf..49f23b72b 100644
--- a/InCallUI/src/com/android/incallui/SelectPhoneAccountDialogFragment.java
+++ b/InCallUI/src/com/android/incallui/SelectPhoneAccountDialogFragment.java
@@ -46,23 +46,24 @@ public class SelectPhoneAccountDialogFragment extends DialogFragment {
private List<PhoneAccountHandle> mAccountHandles;
private boolean mIsSelected;
private TelecomManager mTelecomManager;
- private final String mUriScheme;
/**
* Shows the account selection dialog.
* This is the preferred way to show this dialog.
*
* @param fragmentManager The fragment manager.
- * @param uriScheme The URI scheme of the call we need to choose an account for.
+ * @param accountHandles The {@code PhoneAccountHandle}s available to select from.
*/
- public static void showAccountDialog(FragmentManager fragmentManager, String uriScheme) {
- SelectPhoneAccountDialogFragment fragment = new SelectPhoneAccountDialogFragment(uriScheme);
+ public static void showAccountDialog(FragmentManager fragmentManager,
+ List<PhoneAccountHandle> accountHandles) {
+ SelectPhoneAccountDialogFragment fragment =
+ new SelectPhoneAccountDialogFragment(accountHandles);
fragment.show(fragmentManager, "selectAccount");
}
- public SelectPhoneAccountDialogFragment(String uriScheme) {
+ public SelectPhoneAccountDialogFragment(List<PhoneAccountHandle> accountHandles) {
super();
- mUriScheme = uriScheme;
+ mAccountHandles = accountHandles;
}
@Override
@@ -70,7 +71,6 @@ public class SelectPhoneAccountDialogFragment extends DialogFragment {
mIsSelected = false;
mTelecomManager =
(TelecomManager) getActivity().getSystemService(Context.TELECOM_SERVICE);
- mAccountHandles = mTelecomManager.getPhoneAccountsSupportingScheme(mUriScheme);
final DialogInterface.OnClickListener selectionListener =
new DialogInterface.OnClickListener() {