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
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index 7d9608a..7e15197 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -159,6 +159,7 @@
   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 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 @@
     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;
   }