From c857f90590e7d7fcffa89511982eb33afd34805f Mon Sep 17 00:00:00 2001 From: Eric Erfanian Date: Mon, 15 May 2017 14:05:33 -0700 Subject: Update Dialer to v10 RC32 This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC32 Branch: dialer-android_release_branch/153304843.1 dialer-android_20170416.00/dialer-android_20170416.00_RC32 This release contains the following bug fixes since RC17: Bug: 33176679 33272455 3646510 36773894 37297649 37413780 37513689 37640315 37680595 37698062 37873639 37901752 37919295 37953423 38062852 38069600 38137349 38173549 38180252 38191514 Test: make, on device Change-Id: I4e4bb630082758e418ff24892b7db3142c6eb09a --- .../com/android/incallui/InCallActivityCommon.java | 62 +++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) (limited to 'java/com/android/incallui/InCallActivityCommon.java') 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; -- cgit v1.2.3