diff options
Diffstat (limited to 'java/com/android/incallui/InCallActivity.java')
-rw-r--r-- | java/com/android/incallui/InCallActivity.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index bda003ccc..cc9a8e438 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -694,8 +694,13 @@ public class InCallActivity extends TransactionSafeFragmentActivity if (didShowInCallScreen) { return false; } - InCallScreen inCallScreen = InCallBindings.createInCallScreen(); - transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN); + InCallScreen inCallScreen = getInCallScreen(); + if (inCallScreen == null) { + inCallScreen = InCallBindings.createInCallScreen(); + transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN); + } else { + transaction.show(inCallScreen.getInCallScreenFragment()); + } Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this); didShowInCallScreen = true; return true; @@ -707,7 +712,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity } InCallScreen inCallScreen = getInCallScreen(); if (inCallScreen != null) { - transaction.remove(inCallScreen.getInCallScreenFragment()); + transaction.hide(inCallScreen.getInCallScreenFragment()); } didShowInCallScreen = false; return true; |