summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
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() {