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;
}
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;