summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2014-12-01 15:56:50 -0800
committerAndrew Lee <anwlee@google.com>2014-12-02 15:01:03 -0800
commit6c3061091e59e9ab06b620c2615b897e2eca233c (patch)
tree4477e10499c05a9e0a409239a93681ca2bb8e61e /InCallUI
parentdabb63ef13c9ab30c54adfbbd736f76723f337c1 (diff)
Show HD audio icon.
Leveraging the same mechanism we use for indicating subscriptions. I don't think we have any cases where we need to show more than one icon for the moment; we can add functionality to show more if its necessary later. Bug: 18103173 Change-Id: I1134f6114e17d4492276dc4e19c4746fc38a3ab7
Diffstat (limited to 'InCallUI')
-rw-r--r--InCallUI/res/drawable-hdpi/ic_hd_audio.pngbin0 -> 386 bytes
-rw-r--r--InCallUI/res/drawable-mdpi/ic_hd_audio.pngbin0 -> 312 bytes
-rw-r--r--InCallUI/res/drawable-xhdpi/ic_hd_audio.pngbin0 -> 407 bytes
-rw-r--r--InCallUI/res/drawable-xxhdpi/ic_hd_audio.pngbin0 -> 564 bytes
-rw-r--r--InCallUI/res/drawable-xxxhdpi/ic_hd_audio.pngbin0 -> 638 bytes
-rw-r--r--InCallUI/src/com/android/incallui/CallCardFragment.java55
-rw-r--r--InCallUI/src/com/android/incallui/CallCardPresenter.java13
7 files changed, 42 insertions, 26 deletions
diff --git a/InCallUI/res/drawable-hdpi/ic_hd_audio.png b/InCallUI/res/drawable-hdpi/ic_hd_audio.png
new file mode 100644
index 000000000..cccaf4949
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_hd_audio.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_hd_audio.png b/InCallUI/res/drawable-mdpi/ic_hd_audio.png
new file mode 100644
index 000000000..6353b7acf
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_hd_audio.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_hd_audio.png b/InCallUI/res/drawable-xhdpi/ic_hd_audio.png
new file mode 100644
index 000000000..6d05d45f5
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_hd_audio.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_hd_audio.png b/InCallUI/res/drawable-xxhdpi/ic_hd_audio.png
new file mode 100644
index 000000000..44294ba05
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_hd_audio.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_hd_audio.png b/InCallUI/res/drawable-xxxhdpi/ic_hd_audio.png
new file mode 100644
index 000000000..459cd8f46
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_hd_audio.png
Binary files differ
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 51c058557..d3a229c9f 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -477,7 +477,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
int sessionModificationState,
DisconnectCause disconnectCause,
String connectionLabel,
- Drawable connectionIcon,
+ Drawable callStateIcon,
String gatewayNumber) {
boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber);
CharSequence callStateLabel = getCallStateLabelFromState(state, videoState,
@@ -498,44 +498,51 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
mCallStateLabel.setAlpha(1);
mCallStateLabel.setVisibility(View.VISIBLE);
- if (connectionIcon == null) {
- mCallStateIcon.setVisibility(View.GONE);
- } else {
- mCallStateIcon.setVisibility(View.VISIBLE);
- // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is
- // needed because the pulse animation operates on the view alpha.
- mCallStateIcon.setAlpha(1.0f);
- mCallStateIcon.setImageDrawable(connectionIcon);
- }
-
- if (VideoProfile.VideoState.isBidirectional(videoState)
- || (state == Call.State.ACTIVE && sessionModificationState
- == Call.SessionModificationState.WAITING_FOR_RESPONSE)) {
- mCallStateVideoCallIcon.setVisibility(View.VISIBLE);
- } else {
- mCallStateVideoCallIcon.setVisibility(View.GONE);
- }
-
if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
mCallStateLabel.clearAnimation();
- mCallStateIcon.clearAnimation();
} else {
mCallStateLabel.startAnimation(mPulseAnimation);
- mCallStateIcon.startAnimation(mPulseAnimation);
}
} else {
- Animation callStateAnimation = mCallStateLabel.getAnimation();
- if (callStateAnimation != null) {
- callStateAnimation.cancel();
+ Animation callStateLabelAnimation = mCallStateLabel.getAnimation();
+ if (callStateLabelAnimation != null) {
+ callStateLabelAnimation.cancel();
}
mCallStateLabel.setText(null);
mCallStateLabel.setAlpha(0);
mCallStateLabel.setVisibility(View.GONE);
+ }
+
+ if (callStateIcon != null) {
+ mCallStateIcon.setVisibility(View.VISIBLE);
+ // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is
+ // needed because the pulse animation operates on the view alpha.
+ mCallStateIcon.setAlpha(1.0f);
+ mCallStateIcon.setImageDrawable(callStateIcon);
+
+ if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED
+ || TextUtils.isEmpty(callStateLabel)) {
+ mCallStateIcon.clearAnimation();
+ } else {
+ mCallStateIcon.startAnimation(mPulseAnimation);
+ }
+ } else {
+ Animation callStateIconAnimation = mCallStateIcon.getAnimation();
+ if (callStateIconAnimation != null) {
+ callStateIconAnimation.cancel();
+ }
+
// Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is
// needed because the pulse animation operates on the view alpha.
mCallStateIcon.setAlpha(0.0f);
mCallStateIcon.setVisibility(View.GONE);
+ }
+ if (VideoProfile.VideoState.isBidirectional(videoState)
+ || (state == Call.State.ACTIVE && sessionModificationState
+ == Call.SessionModificationState.WAITING_FOR_RESPONSE)) {
+ mCallStateVideoCallIcon.setVisibility(View.VISIBLE);
+ } else {
mCallStateVideoCallIcon.setVisibility(View.GONE);
}
}
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index aead4c866..ceeb6b946 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -297,7 +297,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
mPrimary.getSessionModificationState(),
mPrimary.getDisconnectCause(),
getConnectionLabel(),
- getConnectionIcon(),
+ getCallStateIcon(),
getGatewayNumber());
setCallbackNumber();
}
@@ -608,7 +608,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
return getCallProviderLabel(mPrimary);
}
- private Drawable getConnectionIcon() {
+ private Drawable getCallStateIcon() {
+ // Return connection icon if one exists.
StatusHints statusHints = mPrimary.getTelecommCall().getDetails().getStatusHints();
if (statusHints != null && statusHints.getIconResId() != 0) {
Drawable icon = statusHints.getIcon(mContext);
@@ -616,6 +617,14 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
return icon;
}
}
+
+ // Return high definition audio icon if the capability is indicated.
+ if (mPrimary.getTelecommCall().getDetails().can(
+ android.telecom.Call.Details.CAPABILITY_HIGH_DEF_AUDIO)
+ && mPrimary.getState() == Call.State.ACTIVE) {
+ return mContext.getResources().getDrawable(R.drawable.ic_hd_audio);
+ }
+
return null;
}