diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-05-15 23:21:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-05-15 23:21:06 +0000 |
commit | 0c9dbf507b53a12bdf577ff3e55c1686a2e089de (patch) | |
tree | 3849f2add85d7abe11151436b3f03f99783157a8 /java/com/android/incallui/InCallActivityCommon.java | |
parent | e724c7b6376be660abf2113f97c7cbfc34515da8 (diff) | |
parent | c857f90590e7d7fcffa89511982eb33afd34805f (diff) |
Merge "Update Dialer to v10 RC32" into oc-dev
Diffstat (limited to 'java/com/android/incallui/InCallActivityCommon.java')
-rw-r--r-- | java/com/android/incallui/InCallActivityCommon.java | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/java/com/android/incallui/InCallActivityCommon.java b/java/com/android/incallui/InCallActivityCommon.java index e6c74b0a9..4b0a3cd05 100644 --- a/java/com/android/incallui/InCallActivityCommon.java +++ b/java/com/android/incallui/InCallActivityCommon.java @@ -62,6 +62,8 @@ import com.android.incallui.call.CallList; import com.android.incallui.call.DialerCall; import com.android.incallui.call.DialerCall.State; import com.android.incallui.call.TelecomAdapter; +import com.android.incallui.telecomeventui.InternationalCallOnWifiDialogFragment; +import com.android.incallui.telecomeventui.InternationalCallOnWifiDialogFragment.Callback; import com.android.incallui.wifi.EnableWifiCallingPrompt; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -80,6 +82,7 @@ public class InCallActivityCommon { private static final String TAG_SELECT_ACCOUNT_FRAGMENT = "tag_select_account_fragment"; private static final String TAG_DIALPAD_FRAGMENT = "tag_dialpad_fragment"; + private static final String TAG_INTERNATIONAL_CALL_ON_WIFI = "tag_international_call_on_wifi"; @Retention(RetentionPolicy.SOURCE) @IntDef({ @@ -107,7 +110,7 @@ public class InCallActivityCommon { private String dtmfTextToPreopulate; @DialpadRequestType private int showDialpadRequest = DIALPAD_REQUEST_NONE; - private SelectPhoneAccountListener selectAccountListener = + private final SelectPhoneAccountListener selectAccountListener = new SelectPhoneAccountListener() { @Override public void onPhoneAccountSelected( @@ -133,6 +136,25 @@ public class InCallActivityCommon { } }; + private InternationalCallOnWifiDialogFragment.Callback internationalCallOnWifiCallback = + new Callback() { + @Override + public void continueCall(@NonNull String callId) { + LogUtil.i("InCallActivityCommon.continueCall", "continuing call with id: %s", callId); + } + + @Override + public void cancelCall(@NonNull String callId) { + DialerCall call = CallList.getInstance().getCallById(callId); + if (call == null) { + LogUtil.i("InCallActivityCommon.cancelCall", "call destroyed before dialog closed"); + return; + } + LogUtil.i("InCallActivityCommon.cancelCall", "disconnecting international call on wifi"); + call.disconnect(); + } + }; + public static void setIntentExtras( Intent intent, boolean showDialpad, boolean newOutgoingCall, boolean isForFullScreen) { if (showDialpad) { @@ -210,6 +232,17 @@ public class InCallActivityCommon { } } + InternationalCallOnWifiDialogFragment existingInternationalFragment = + (InternationalCallOnWifiDialogFragment) + inCallActivity + .getSupportFragmentManager() + .findFragmentByTag(TAG_INTERNATIONAL_CALL_ON_WIFI); + if (existingInternationalFragment != null) { + LogUtil.i( + "InCallActivityCommon.onCreate", "international fragment exists attaching callback"); + existingInternationalFragment.setCallback(internationalCallOnWifiCallback); + } + inCallOrientationEventListener = new InCallOrientationEventListener(inCallActivity); } @@ -510,6 +543,18 @@ public class InCallActivityCommon { selectPhoneAccountDialogFragment.dismiss(); selectPhoneAccountDialogFragment = null; } + + InternationalCallOnWifiDialogFragment internationalCallOnWifiFragment = + (InternationalCallOnWifiDialogFragment) + inCallActivity + .getSupportFragmentManager() + .findFragmentByTag(TAG_INTERNATIONAL_CALL_ON_WIFI); + if (internationalCallOnWifiFragment != null) { + LogUtil.i( + "InCallActivityCommon.dismissPendingDialogs", + "dismissing InternationalCallOnWifiDialogFragment"); + internationalCallOnWifiFragment.dismiss(); + } } private static boolean shouldShowDisconnectErrorDialog(@NonNull DisconnectCause cause) { @@ -584,6 +629,21 @@ public class InCallActivityCommon { } } + void showInternationalCallOnWifiDialog(@NonNull DialerCall call) { + LogUtil.enterBlock("InCallActivityCommon.showInternationalCallOnWifiDialog"); + if (!InternationalCallOnWifiDialogFragment.shouldShow(inCallActivity)) { + LogUtil.i( + "InCallActivityCommon.showInternationalCallOnWifiDialog", + "InternationalCallOnWifiDialogFragment.shouldShow returned false"); + return; + } + + InternationalCallOnWifiDialogFragment fragment = + InternationalCallOnWifiDialogFragment.newInstance( + call.getId(), internationalCallOnWifiCallback); + fragment.show(inCallActivity.getSupportFragmentManager(), TAG_INTERNATIONAL_CALL_ON_WIFI); + } + public void showWifiToLteHandoverToast(DialerCall call) { if (call.hasShownWiFiToLteHandoverToast()) { return; |