summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-03-21 08:51:11 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-03-21 08:51:11 -0700
commit4fd0ca9427637e23e546854fce2b1e8d6e8a92eb (patch)
treec10c5ea53dbd86a4b6cb1f81c8aa0f31175670b4
parent52ee1bd87ecb7af5fe4fe2de18f9f4fc97248f63 (diff)
parenteb01a1f7768720ff46d7a86f0c5320ea060dd3cd (diff)
downloadandroid_packages_apps_InCallUI-4fd0ca9427637e23e546854fce2b1e8d6e8a92eb.tar.gz
android_packages_apps_InCallUI-4fd0ca9427637e23e546854fce2b1e8d6e8a92eb.tar.bz2
android_packages_apps_InCallUI-4fd0ca9427637e23e546854fce2b1e8d6e8a92eb.zip
Merge "Show HD audio icon."
-rw-r--r--res/drawable-hdpi/ic_hd_audio.pngbin0 -> 386 bytes
-rw-r--r--res/drawable-mdpi/ic_hd_audio.pngbin0 -> 312 bytes
-rw-r--r--res/drawable-xhdpi/ic_hd_audio.pngbin0 -> 407 bytes
-rw-r--r--res/drawable-xxhdpi/ic_hd_audio.pngbin0 -> 564 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_hd_audio.pngbin0 -> 638 bytes
-rw-r--r--src/com/android/incallui/CallCardFragment.java57
-rw-r--r--src/com/android/incallui/CallCardPresenter.java15
7 files changed, 46 insertions, 26 deletions
diff --git a/res/drawable-hdpi/ic_hd_audio.png b/res/drawable-hdpi/ic_hd_audio.png
new file mode 100644
index 00000000..cccaf494
--- /dev/null
+++ b/res/drawable-hdpi/ic_hd_audio.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hd_audio.png b/res/drawable-mdpi/ic_hd_audio.png
new file mode 100644
index 00000000..6353b7ac
--- /dev/null
+++ b/res/drawable-mdpi/ic_hd_audio.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hd_audio.png b/res/drawable-xhdpi/ic_hd_audio.png
new file mode 100644
index 00000000..6d05d45f
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hd_audio.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hd_audio.png b/res/drawable-xxhdpi/ic_hd_audio.png
new file mode 100644
index 00000000..44294ba0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_hd_audio.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hd_audio.png b/res/drawable-xxxhdpi/ic_hd_audio.png
new file mode 100644
index 00000000..459cd8f4
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_hd_audio.png
Binary files differ
diff --git a/src/com/android/incallui/CallCardFragment.java b/src/com/android/incallui/CallCardFragment.java
index 717094cf..3154f19d 100644
--- a/src/com/android/incallui/CallCardFragment.java
+++ b/src/com/android/incallui/CallCardFragment.java
@@ -650,7 +650,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
int sessionModificationState,
DisconnectCause disconnectCause,
String connectionLabel,
- Drawable connectionIcon,
+ Drawable callStateIcon,
String gatewayNumber,
boolean isWaitingForRemoteSide) {
boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber);
@@ -681,44 +681,55 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
mCallStateLabel.setAlpha(1);
mCallStateLabel.setVisibility(View.VISIBLE);
- if (connectionIcon == null) {
- mCallStateIcon.clearAnimation();
- mCallStateIcon.setVisibility(View.GONE);
+ if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
+ mCallStateLabel.clearAnimation();
} 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);
+ mCallStateLabel.startAnimation(mPulseAnimation);
}
-
- if (VideoProfile.VideoState.isVideo(videoState)
- || (state == Call.State.ACTIVE && sessionModificationState
- == Call.SessionModificationState.WAITING_FOR_RESPONSE)) {
- mCallStateVideoCallIcon.setVisibility(View.VISIBLE);
- } else {
- mCallStateVideoCallIcon.setVisibility(View.GONE);
+ } else {
+ mCallStateLabel.clearAnimation();
+ Animation callStateLabelAnimation = mCallStateLabel.getAnimation();
+ if (callStateLabelAnimation != null) {
+ callStateLabelAnimation.cancel();
}
+ mCallStateLabel.setText(null);
+ mCallStateLabel.setAlpha(0);
+ mCallStateLabel.setVisibility(View.GONE);
+ }
- if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
- mCallStateLabel.clearAnimation();
+ 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 {
- mCallStateLabel.startAnimation(mPulseAnimation);
if (mCallStateIcon.getVisibility() == View.VISIBLE) {
mCallStateIcon.startAnimation(mPulseAnimation);
}
}
} else {
- mCallStateLabel.clearAnimation();
- mCallStateLabel.setText(null);
- mCallStateLabel.setAlpha(0);
- mCallStateLabel.setVisibility(View.GONE);
+ 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.clearAnimation();
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/src/com/android/incallui/CallCardPresenter.java b/src/com/android/incallui/CallCardPresenter.java
index b152eb51..d3a83da0 100644
--- a/src/com/android/incallui/CallCardPresenter.java
+++ b/src/com/android/incallui/CallCardPresenter.java
@@ -330,7 +330,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
mPrimary.getSessionModificationState(),
mPrimary.getDisconnectCause(),
getConnectionLabel(),
- getConnectionIcon(),
+ getCallStateIcon(),
getGatewayNumber(),
mPrimary.isWaitingForRemoteSide());
setCallbackNumber();
@@ -717,7 +717,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);
@@ -725,7 +726,15 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
return icon;
}
}
- return getCallProviderIcon(mPrimary);
+
+ // 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;
}
private boolean hasOutgoingGatewayCall() {