More improvements call flow.

Bug: 73774461,73774884,73775516,73775590,73775873
Test: unit/manual
PiperOrigin-RevId: 193236364
Change-Id: I03726ed7e5a3383f6e8632fb2cf9b948c3203f87
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index 0c57dff..91f557b 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -1347,9 +1347,11 @@
 
     if (didShowSpeakEasyScreen) {
       if (lastShownSpeakEasyScreenUniqueCallid.equals(call.getUniqueCallId())) {
+        LogUtil.i("InCallActivity.showSpeakEasyFragment", "found existing fragment");
         return false;
       }
       hideSpeakEasyFragment(transaction);
+      LogUtil.i("InCallActivity.showSpeakEasyFragment", "hid existing fragment");
     }
 
     Optional<Fragment> speakEasyFragment = speakEasyCallManager.getSpeakEasyFragment(call);
@@ -1357,6 +1359,10 @@
       transaction.add(R.id.main, speakEasyFragment.get(), Tags.SPEAK_EASY_SCREEN);
       didShowSpeakEasyScreen = true;
       lastShownSpeakEasyScreenUniqueCallid = call.getUniqueCallId();
+      LogUtil.i(
+          "InCallActivity.showSpeakEasyFragment",
+          "set fragment for call %s",
+          lastShownSpeakEasyScreenUniqueCallid);
       return true;
     }
     return false;
@@ -1381,11 +1387,16 @@
     return false;
   }
 
+  @VisibleForTesting
   public void setSpeakEasyCallManager(SpeakEasyCallManager speakEasyCallManager) {
     this.speakEasyCallManager = speakEasyCallManager;
   }
 
+  @Nullable
   public SpeakEasyCallManager getSpeakEasyCallManager() {
+    if (this.speakEasyCallManager == null) {
+      this.speakEasyCallManager = InCallPresenter.getInstance().getSpeakEasyCallManager();
+    }
     return speakEasyCallManager;
   }