summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java')
-rw-r--r--java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java b/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
index f2ff0e3e3..240549ca5 100644
--- a/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
+++ b/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
@@ -26,6 +26,7 @@ import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.common.concurrent.UiListener;
+import com.android.dialer.duo.DuoComponent;
import com.android.dialer.function.Consumer;
import com.android.dialer.logging.DialerImpression.Type;
import com.android.dialer.logging.Logger;
@@ -33,6 +34,7 @@ import com.android.dialer.precall.PreCallAction;
import com.android.dialer.precall.PreCallComponent;
import com.android.dialer.precall.PreCallCoordinator;
import com.android.dialer.telecom.TelecomUtil;
+import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
@@ -101,7 +103,7 @@ public class PreCallCoordinatorImpl implements PreCallCoordinator {
LogUtil.enterBlock("PreCallCoordinatorImpl.runNextAction");
Assert.checkArgument(currentAction == null);
if (currentActionIndex >= actions.size()) {
- TelecomUtil.placeCall(activity, builder.build());
+ placeCall();
activity.finish();
return;
}
@@ -177,4 +179,20 @@ public class PreCallCoordinatorImpl implements PreCallCoordinator {
output -> successListener.accept((OutputT) output),
failureListener::accept);
}
+
+ private void placeCall() {
+ if (builder.isDuoCall()) {
+ Optional<Intent> intent =
+ DuoComponent.get(activity)
+ .getDuo()
+ .getCallIntent(builder.getUri().getSchemeSpecificPart());
+ if (intent.isPresent()) {
+ activity.startActivityForResult(intent.get(), 0);
+ return;
+ } else {
+ LogUtil.e("PreCallCoordinatorImpl.placeCall", "duo.getCallIntent() returned absent");
+ }
+ }
+ TelecomUtil.placeCall(activity, builder.build());
+ }
}