From fb0cfff5fc540ec5872464f812f730349fb1e5ad Mon Sep 17 00:00:00 2001 From: wangqi Date: Tue, 5 Jun 2018 11:51:01 -0700 Subject: Dismiss RTT request dialog if RTT is already active. On VZW, RTT request will be accepted by modem automatically, in which case the dialog will be useless and should be dismissed. User won't see the dialog in this case since it's not visible yet when dismissed. This is a workaround since change in modem/telecom is not feasible at this point. Bug: 80259700 Test: manual PiperOrigin-RevId: 199334017 Change-Id: Ie5fb40e7a11975a423135ad7e5e6ef2dddbac56b --- java/com/android/incallui/InCallActivity.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'java') diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index 7d9608a56..7e1519724 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -159,6 +159,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity private int[] backgroundDrawableColors; @DialpadRequestType private int showDialpadRequest = DIALPAD_REQUEST_NONE; private SpeakEasyCallManager speakEasyCallManager; + private DialogFragment rttRequestDialogFragment; public static Intent getIntent( Context context, boolean showDialpad, boolean newOutgoingCall, boolean isForFullScreen) { @@ -1175,8 +1176,8 @@ public class InCallActivity extends TransactionSafeFragmentActivity public void showDialogForRttRequest(DialerCall call, int rttRequestId) { LogUtil.enterBlock("InCallActivity.showDialogForRttRequest"); - DialogFragment fragment = RttRequestDialogFragment.newInstance(call.getId(), rttRequestId); - fragment.show(getSupportFragmentManager(), Tags.RTT_REQUEST_DIALOG); + rttRequestDialogFragment = RttRequestDialogFragment.newInstance(call.getId(), rttRequestId); + rttRequestDialogFragment.show(getSupportFragmentManager(), Tags.RTT_REQUEST_DIALOG); } public void setAllowOrientationChange(boolean allowOrientationChange) { @@ -1564,6 +1565,13 @@ public class InCallActivity extends TransactionSafeFragmentActivity transaction.add(R.id.main, rttCallScreen.getRttCallScreenFragment(), Tags.RTT_CALL_SCREEN); Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this); didShowRttCallScreen = true; + // In some cases such as VZW, RTT request will be automatically accepted by modem. So the dialog + // won't make any sense and should be dismissed if it's already switched to RTT. + if (rttRequestDialogFragment != null) { + LogUtil.i("InCallActivity.showRttCallScreenFragment", "dismiss RTT request dialog"); + rttRequestDialogFragment.dismiss(); + rttRequestDialogFragment = null; + } return true; } -- cgit v1.2.3