summaryrefslogtreecommitdiff
path: root/java/com/android/incallui
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-05-03 18:02:10 -0700
committerCopybara-Service <copybara-piper@google.com>2018-05-04 15:59:25 -0700
commitfb2154107b6e0c29d89dd530fe05e2f94b3ae27a (patch)
tree142e50fb2ef93f0977e48e1f4a83bcca10f6bf7e /java/com/android/incallui
parent8d4afb83b0c19bf886b282de21357c9fe3be1869 (diff)
Update audio route after user select different audio route.
Bug: 79195339 Test: manual PiperOrigin-RevId: 195344623 Change-Id: I64225b781c84d363848a15bcdaa351585dce6b04
Diffstat (limited to 'java/com/android/incallui')
-rw-r--r--java/com/android/incallui/rtt/impl/AudioSelectMenu.java36
-rw-r--r--java/com/android/incallui/rtt/impl/RttChatFragment.java6
2 files changed, 25 insertions, 17 deletions
diff --git a/java/com/android/incallui/rtt/impl/AudioSelectMenu.java b/java/com/android/incallui/rtt/impl/AudioSelectMenu.java
index 01c3950e9..1c83637ea 100644
--- a/java/com/android/incallui/rtt/impl/AudioSelectMenu.java
+++ b/java/com/android/incallui/rtt/impl/AudioSelectMenu.java
@@ -17,8 +17,6 @@
package com.android.incallui.rtt.impl;
import android.content.Context;
-import android.content.res.ColorStateList;
-import android.graphics.PorterDuff.Mode;
import android.telecom.CallAudioState;
import android.view.View;
import android.widget.PopupWindow;
@@ -28,8 +26,11 @@ import com.android.incallui.incall.protocol.InCallButtonUiDelegate;
public class AudioSelectMenu extends PopupWindow {
private final InCallButtonUiDelegate inCallButtonUiDelegate;
- private final Context context;
private final OnButtonClickListener onButtonClickListener;
+ private final RttCheckableButton bluetoothButton;
+ private final RttCheckableButton speakerButton;
+ private final RttCheckableButton headsetButton;
+ private final RttCheckableButton earpieceButton;
interface OnButtonClickListener {
void onBackPressed();
@@ -40,7 +41,6 @@ public class AudioSelectMenu extends PopupWindow {
InCallButtonUiDelegate inCallButtonUiDelegate,
OnButtonClickListener onButtonClickListener) {
super(context, null, 0, R.style.OverflowMenu);
- this.context = context;
this.inCallButtonUiDelegate = inCallButtonUiDelegate;
this.onButtonClickListener = onButtonClickListener;
View view = View.inflate(context, R.layout.audio_route, null);
@@ -55,28 +55,32 @@ public class AudioSelectMenu extends PopupWindow {
this.onButtonClickListener.onBackPressed();
});
CallAudioState audioState = inCallButtonUiDelegate.getCurrentAudioState();
- initItem(
- view.findViewById(R.id.audioroute_bluetooth), CallAudioState.ROUTE_BLUETOOTH, audioState);
- initItem(view.findViewById(R.id.audioroute_speaker), CallAudioState.ROUTE_SPEAKER, audioState);
- initItem(
- view.findViewById(R.id.audioroute_headset), CallAudioState.ROUTE_WIRED_HEADSET, audioState);
- initItem(
- view.findViewById(R.id.audioroute_earpiece), CallAudioState.ROUTE_EARPIECE, audioState);
+ bluetoothButton = view.findViewById(R.id.audioroute_bluetooth);
+ speakerButton = view.findViewById(R.id.audioroute_speaker);
+ headsetButton = view.findViewById(R.id.audioroute_headset);
+ earpieceButton = view.findViewById(R.id.audioroute_earpiece);
+ initItem(bluetoothButton, CallAudioState.ROUTE_BLUETOOTH, audioState);
+ initItem(speakerButton, CallAudioState.ROUTE_SPEAKER, audioState);
+ initItem(headsetButton, CallAudioState.ROUTE_WIRED_HEADSET, audioState);
+ initItem(earpieceButton, CallAudioState.ROUTE_EARPIECE, audioState);
}
private void initItem(RttCheckableButton item, final int itemRoute, CallAudioState audioState) {
- int selectedColor =
- context.getColor(com.android.incallui.audioroute.R.color.dialer_theme_color);
if ((audioState.getSupportedRouteMask() & itemRoute) == 0) {
item.setVisibility(View.GONE);
} else if (audioState.getRoute() == itemRoute) {
- item.setTextColor(selectedColor);
- item.setCompoundDrawableTintList(ColorStateList.valueOf(selectedColor));
- item.setCompoundDrawableTintMode(Mode.SRC_ATOP);
+ item.setChecked(true);
}
item.setOnClickListener(
(v) -> {
inCallButtonUiDelegate.setAudioRoute(itemRoute);
});
}
+
+ void setAudioState(CallAudioState audioState) {
+ bluetoothButton.setChecked(audioState.getRoute() == CallAudioState.ROUTE_BLUETOOTH);
+ speakerButton.setChecked(audioState.getRoute() == CallAudioState.ROUTE_SPEAKER);
+ headsetButton.setChecked(audioState.getRoute() == CallAudioState.ROUTE_WIRED_HEADSET);
+ earpieceButton.setChecked(audioState.getRoute() == CallAudioState.ROUTE_EARPIECE);
+ }
}
diff --git a/java/com/android/incallui/rtt/impl/RttChatFragment.java b/java/com/android/incallui/rtt/impl/RttChatFragment.java
index e56715981..c393393f8 100644
--- a/java/com/android/incallui/rtt/impl/RttChatFragment.java
+++ b/java/com/android/incallui/rtt/impl/RttChatFragment.java
@@ -107,6 +107,7 @@ public class RttChatFragment extends Fragment
private PrimaryCallState primaryCallState = PrimaryCallState.empty();
private boolean isUserScrolling;
private boolean shouldAutoScrolling;
+ private AudioSelectMenu audioSelectMenu;
/**
* Create a new instance of RttChatFragment.
@@ -558,6 +559,9 @@ public class RttChatFragment extends Fragment
LogUtil.i("RttChatFragment.setAudioState", "audioState: " + audioState);
overflowMenu.setMuteButtonChecked(audioState.isMuted());
overflowMenu.setAudioState(audioState);
+ if (audioSelectMenu != null) {
+ audioSelectMenu.setAudioState(audioState);
+ }
}
@Override
@@ -573,7 +577,7 @@ public class RttChatFragment extends Fragment
@Override
public void showAudioRouteSelector() {
- AudioSelectMenu audioSelectMenu =
+ audioSelectMenu =
new AudioSelectMenu(
getContext(),
inCallButtonUiDelegate,