diff options
author | wangqi <wangqi@google.com> | 2018-03-08 18:21:50 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-08 18:26:17 -0800 |
commit | fd4c9f75aa2eba3e6a896d107f05ff370c2ad2b1 (patch) | |
tree | 229cf7328d1d4d4688749fea4cd871ccbe6fc66b /java/com/android/incallui/InCallActivity.java | |
parent | 3a6d4d6cbf720689ed725cd351649e23072a7eee (diff) |
Add support of dialpad in RTT call.
This change also dismiss overflow menu when any button is clicked inside it.
Bug: 67596257
Test: manual
PiperOrigin-RevId: 188424236
Change-Id: I90b803d592f12525cdb8727aaeebc45c3da5dcdd
Diffstat (limited to 'java/com/android/incallui/InCallActivity.java')
-rw-r--r-- | java/com/android/incallui/InCallActivity.java | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index dee5e7eb1..6f2ad8bf3 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -830,7 +830,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity // Note: onInCallScreenDialpadVisibilityChange is called here to ensure that the dialpad FAB // repositions itself. - getInCallScreen().onInCallScreenDialpadVisibilityChange(show); + getInCallOrRttCallScreen().onInCallScreenDialpadVisibilityChange(show); } private void showDialpadFragment() { @@ -842,11 +842,15 @@ public class InCallActivity extends TransactionSafeFragmentActivity FragmentTransaction transaction = dialpadFragmentManager.beginTransaction(); DialpadFragment dialpadFragment = getDialpadFragment(); if (dialpadFragment == null) { - transaction.add(getDialpadContainerId(), new DialpadFragment(), Tags.DIALPAD_FRAGMENT); + dialpadFragment = new DialpadFragment(); + transaction.add(getDialpadContainerId(), dialpadFragment, Tags.DIALPAD_FRAGMENT); } else { transaction.show(dialpadFragment); dialpadFragment.setUserVisibleHint(true); } + // RTT call screen doesn't show end call button inside dialpad, thus the space reserved for end + // call button should be removed. + dialpadFragment.setShouldShowEndCallSpace(didShowInCallScreen); transaction.commitAllowingStateLoss(); dialpadFragmentManager.executePendingTransactions(); @@ -967,7 +971,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity } public boolean getCallCardFragmentVisible() { - return didShowInCallScreen || didShowVideoCallScreen; + return didShowInCallScreen || didShowVideoCallScreen || didShowRttCallScreen; } public void dismissKeyguard(boolean dismiss) { @@ -1100,7 +1104,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity @Nullable public FragmentManager getDialpadFragmentManager() { - InCallScreen inCallScreen = getInCallScreen(); + InCallScreen inCallScreen = getInCallOrRttCallScreen(); if (inCallScreen != null) { return inCallScreen.getInCallScreenFragment().getChildFragmentManager(); } @@ -1108,7 +1112,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity } public int getDialpadContainerId() { - return getInCallScreen().getAnswerAndDialpadContainerResourceId(); + return getInCallOrRttCallScreen().getAnswerAndDialpadContainerResourceId(); } @Override @@ -1586,6 +1590,17 @@ public class InCallActivity extends TransactionSafeFragmentActivity return (RttCallScreen) getSupportFragmentManager().findFragmentByTag(Tags.RTT_CALL_SCREEN); } + private InCallScreen getInCallOrRttCallScreen() { + InCallScreen inCallScreen = null; + if (didShowInCallScreen) { + inCallScreen = getInCallScreen(); + } + if (didShowRttCallScreen) { + inCallScreen = getRttCallScreen(); + } + return inCallScreen; + } + @Override public void onPseudoScreenStateChanged(boolean isOn) { LogUtil.i("InCallActivity.onPseudoScreenStateChanged", "isOn: " + isOn); |