summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerfanian <erfanian@google.com>2018-04-04 15:27:57 -0700
committerCopybara-Service <copybara-piper@google.com>2018-04-04 16:28:50 -0700
commit612d13a1295afb0f0b9e8217fc0efb211836c949 (patch)
treed2efff2512c24fa05f9fd87c383d4da3f89d4fe9
parented677ef166d416743169a268664b072ace1fa93b (diff)
Better support for multi call.
Bug: 73775453,73775590 Test: unit tests PiperOrigin-RevId: 191657758 Change-Id: If1ae5505185191f04fd57aa828ae5bcc9c21b173
-rw-r--r--java/com/android/incallui/InCallActivity.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index 65ef323fe..44d8667ca 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -151,6 +151,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity
private boolean didShowVideoCallScreen;
private boolean didShowRttCallScreen;
private boolean didShowSpeakEasyScreen;
+ private String lastShownSpeakEasyScreenUniqueCallid = "";
private boolean dismissKeyguard;
private boolean isInShowMainInCallFragment;
private boolean isRecreating; // whether the activity is going to be recreated
@@ -1353,15 +1354,18 @@ public class InCallActivity extends TransactionSafeFragmentActivity
private boolean showSpeakEasyFragment(FragmentTransaction transaction, DialerCall call) {
- // TODO(erfanian): Support multiple speakeasy screens.
if (didShowSpeakEasyScreen) {
- return false;
+ if (lastShownSpeakEasyScreenUniqueCallid.equals(call.getUniqueCallId())) {
+ return false;
+ }
+ hideSpeakEasyFragment(transaction);
}
Optional<Fragment> speakEasyFragment = speakEasyCallManager.getSpeakEasyFragment(call);
if (speakEasyFragment.isPresent()) {
transaction.add(R.id.main, speakEasyFragment.get(), Tags.SPEAK_EASY_SCREEN);
didShowSpeakEasyScreen = true;
+ lastShownSpeakEasyScreenUniqueCallid = call.getUniqueCallId();
return true;
}
return false;