From 604e481f53eccaefc6763498b525b6e88d9e08e1 Mon Sep 17 00:00:00 2001 From: wangqi Date: Thu, 1 Mar 2018 13:58:01 -0800 Subject: Implement overflow menu for RTT call. Bug: 67596257 Test: manual PiperOrigin-RevId: 187529383 Change-Id: I6ef6593a79ef0c4fb407284eede966a1eaabcd1e --- .../android/incallui/rtt/impl/RttChatFragment.java | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'java/com/android/incallui/rtt/impl/RttChatFragment.java') diff --git a/java/com/android/incallui/rtt/impl/RttChatFragment.java b/java/com/android/incallui/rtt/impl/RttChatFragment.java index deb205ce6..396b89e75 100644 --- a/java/com/android/incallui/rtt/impl/RttChatFragment.java +++ b/java/com/android/incallui/rtt/impl/RttChatFragment.java @@ -29,6 +29,7 @@ import android.telecom.CallAudioState; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; +import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -45,6 +46,8 @@ import android.widget.TextView.OnEditorActionListener; import com.android.dialer.common.Assert; import com.android.dialer.common.FragmentUtils; import com.android.dialer.common.LogUtil; +import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment; +import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter; import com.android.incallui.call.DialerCall.State; import com.android.incallui.incall.protocol.InCallButtonUi; import com.android.incallui.incall.protocol.InCallButtonUiDelegate; @@ -68,7 +71,8 @@ public class RttChatFragment extends Fragment MessageListener, RttCallScreen, InCallScreen, - InCallButtonUi { + InCallButtonUi, + AudioRouteSelectorPresenter { private static final String ARG_CALL_ID = "call_id"; @@ -94,6 +98,7 @@ public class RttChatFragment extends Fragment private TextView nameTextView; private Chronometer chronometer; private boolean isTimerStarted; + private RttOverflowMenu overflowMenu; /** * Create a new instance of RttChatFragment. @@ -173,6 +178,10 @@ public class RttChatFragment extends Fragment inCallButtonUiDelegate.onEndCallClicked(); }); + overflowMenu = new RttOverflowMenu(getContext(), inCallButtonUiDelegate); + view.findViewById(R.id.rtt_overflow_button) + .setOnClickListener(v -> overflowMenu.showAtLocation(v, Gravity.TOP | Gravity.RIGHT, 0, 0)); + nameTextView = view.findViewById(R.id.rtt_name_or_number); chronometer = view.findViewById(R.id.rtt_timer); return view; @@ -240,6 +249,9 @@ public class RttChatFragment extends Fragment public void onStop() { LogUtil.enterBlock("RttChatFragment.onStop"); super.onStop(); + if (overflowMenu.isShowing()) { + overflowMenu.dismiss(); + } onRttScreenStop(); } @@ -360,7 +372,11 @@ public class RttChatFragment extends Fragment public void setVideoPaused(boolean isPaused) {} @Override - public void setAudioState(CallAudioState audioState) {} + public void setAudioState(CallAudioState audioState) { + LogUtil.i("RttChatFragment.setAudioState", "audioState: " + audioState); + overflowMenu.setMuteButtonChecked(audioState.isMuted()); + overflowMenu.setAudioState(audioState); + } @Override public void updateButtonStates() {} @@ -374,5 +390,16 @@ public class RttChatFragment extends Fragment } @Override - public void showAudioRouteSelector() {} + public void showAudioRouteSelector() { + AudioRouteSelectorDialogFragment.newInstance(inCallButtonUiDelegate.getCurrentAudioState()) + .show(getChildFragmentManager(), null); + } + + @Override + public void onAudioRouteSelected(int audioRoute) { + inCallButtonUiDelegate.setAudioRoute(audioRoute); + } + + @Override + public void onAudioRouteSelectorDismiss() {} } -- cgit v1.2.3