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;
   }
 
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 7468b83..1dc150d 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -513,7 +513,6 @@
 
       this.inCallActivity = inCallActivity;
       this.inCallActivity.setExcludeFromRecents(false);
-      this.inCallActivity.setSpeakEasyCallManager(this.speakEasyCallManager);
 
       // By the time the UI finally comes up, the call may already be disconnected.
       // If that's the case, we may need to show an error dialog.
@@ -569,6 +568,10 @@
     Trace.endSection();
   }
 
+  public SpeakEasyCallManager getSpeakEasyCallManager() {
+    return this.speakEasyCallManager;
+  }
+
   public void setManageConferenceActivity(
       @Nullable ManageConferenceActivity manageConferenceActivity) {
     this.manageConferenceActivity = manageConferenceActivity;
